Fonction test

computerist Messages postés 7 Date d'inscription mardi 26 juillet 2005 Statut Membre Dernière intervention 24 mars 2006 - 27 juil. 2005 à 12:25
computerist Messages postés 7 Date d'inscription mardi 26 juillet 2005 Statut Membre Dernière intervention 24 mars 2006 - 29 juil. 2005 à 12:17
bonjour,
je m'adresse a vous pour m'aider a trouver la solution concernant une base de données access 2.0 je veux une fonction test qui sert a controler l'existence d'un produit avant de valider l'enregistrement de ce dernier eviter le double enregistrement d'un meme produit.

c'est une fonction dans le module de access

6 réponses

cs_Tene Messages postés 28 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 2 décembre 2005
28 juil. 2005 à 11:59
tu sais que ta question n'est pas clair?

Pour éviter les doublons: lorsque tu as ta table en mode création, il y a une propriété s'appelant Indexé, tu choisi Oui - Sans doublon et le problème est réglé.

Pour vérifier l'existence d'un produit, voici une solution exploitant le DAO (ajouter la référence si besoin) :

Dim myRS as DAO.Recordset
Dim SQL as String
SQL "SELECT * FROM Produit WHERE Ref'"+ myValue +"';"
Set myRS = CurretnDb.Openrecordset(SQL, DAO.dbopendynaset)

if not myRS.EOF then
'La référence existait
else
'La référence n'existait pas => Ajout dans la base de données
SQL = "INSERT INTO Produit..."
CurrentDb.Execute SQL
end if

Set myRS = Nothing
0
computerist Messages postés 7 Date d'inscription mardi 26 juillet 2005 Statut Membre Dernière intervention 24 mars 2006
28 juil. 2005 à 17:43
bonjour,
je te remercie pour ton interet a mon probleme.
oui vous avez raison ma question n'est pas assez clair parce que je n'ai pas pu avoir une idée sur certaine chose mais maintenant j'ai avancé dans ma recherche et je souhaiterai te partager ce que j'ai eu comme idée.
je réexplique: je travaille sur une base de donnée access c'est une application qui gère l'activité d'une clientèle de banque,mon probleme est le suivant:
quand l'utilisateur veut ajouter un produit a un client il click sur le bouton créer apres ca lui sort un formulaire de saisie qui permet a l'utilisateur de selectionner le produit dans une liste deroulante apres c'est la saisie de la date d'operation en suite c'est le numero de compte,le montant le nom,le nombre de benificiaire etc...
alors moi ce que je veux c'est que quand je selectionne le produit assurance dans ma liste deroulante et que je saisis le numero_compte du client a ce moment la je veux une action ,un evenement qui teste l'existence du produit(assurance) attribué a ce numero de compte saisie en affichant un msgbox"stop contrat deja souscrit" comme ca on bloque l'enregistrement et l'utilisateur a travers ce message il saura que le client a deja souscrit le contrat donc pour conclure un numero de compte peut avoir un et un seul contrat d'assurance.
peux tu m'aider a resoudre ce probleme merci d'avance
0
computerist Messages postés 7 Date d'inscription mardi 26 juillet 2005 Statut Membre Dernière intervention 24 mars 2006
28 juil. 2005 à 18:33
autre chose a signaler je ne sais pas quel evenement je pourrai choisir sur le champ Num_Compte perte focus,sortie,entrée..... et je ne sais pas ce que tu ma donnait ca na pas marché je l'ai modifié en fonction de mes champs et mes tables ca donne ca:

Dim myRS as DAO.Recordset
Dim SQL as String


SQL = "select DISTINCTROW
X_Transactions.Numero_compte from Transactions WHERE ((X_Transactions.Numero_compte = 'Numero_Compte') AND
(X_Transactions.code_produit = 8))"
Set myRS = CurretnDb.Openrecordset(SQL, DAO.dbopendynaset)


if not myRS.EOF then
'Le contrat d'assurance est déja souscrit pour le client
else
'La référence n'existait pas => Ajout dans la base de données
SQL = "INSERT INTO Produit..."
CurrentDb.Execute SQL
end if


Set myRS = Nothing
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
29 juil. 2005 à 11:03
Avec un dlookup tu peux vite t'en rendre compte.

Regarde dans l'aide Access...

Tu peux faire le test si un des n° existe déjà, ou encore mieux tu peux
définir dans ta table un champ unique comme un numéro de sorte que si
ce mm numéro est donné, l'enregistrement ne fait pas, tout simplement.



Sinon tu peux tester le numéro par dlookup

ex:

if isnull(Dlookup("Numéro","Table ou rq","critère")) then lancer la rq d'enregistrement
TBBUIM
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
computerist Messages postés 7 Date d'inscription mardi 26 juillet 2005 Statut Membre Dernière intervention 24 mars 2006
29 juil. 2005 à 11:34
oui mais le probleme c'est qu'il s'agit pas d'un seul produit pour declarer le champ unique.
c'est un formulaire de saisie pour ajouter un produit selectionner a partir d'une liste deroulante et ce qui me concerne c'est juste un et un seul produit que je veux qu'il soit bloquer en affichant un message qui informe l'utilisateur que ce client a deja souscrit pour ce produit(contrat d'assurance).

et ca je vais le mettre ne place quand on finis la saisie du champ numero de compte (test avec un bon evenement /event procedure/requete sql vba etc....
j'ai fait un effort et c'est grace a des participant au forum que j'ai arrivé a mettre en place ce code
Dim oRst as DAO.Records
Dim oDb as DAO.Database Set oDb=CurrentDb Set oRst=oDb.OpenRecordset("select DISTINCTROW
X_Transactions.Numero_compte from Transactions WHERE ((X_Transactions.Numero_compte = 'Numero_Compte') AND
(X_Transactions.code_produit = 8)) quot;,dbOpenDynaset)
If oRst.RecordCount=0 then MsgBox "STOP CONTRAT DEJA SOUSCRIT POUR CE CLIENT", 48
0
computerist Messages postés 7 Date d'inscription mardi 26 juillet 2005 Statut Membre Dernière intervention 24 mars 2006
29 juil. 2005 à 12:17
franchement apres avoir chercher dlookup sur le help d'access j'ai trouvé que c'est tres interessant comme fonction et si je veux la mettre en place vis a vis de mes besoins ca va nous donner ce code:X DLookup("[Numero_Compte]", "X_Transactions", "[Code_Produit] 8")
comme ca la fonction va me trouver les numero de compte qui ont un code_produit=8

et il me sort le message stop deja souscrit mais je ne sais pas ou la mettre dans quel evenement
merci pour votre aide
0
Rejoignez-nous