Pour cela nous devons connaitre les types des champs
Donc on va dire que
NumClient : Numérique
NumProduit : Numérique
DateAchate : Date
Statut : Texte
Et que tes zones de texte contiennent :
NumClient : 300
NumProduit : 12
La requête SQL devant être exécutée par le moteur JET sera :
insert into fact(numclient,numprodui,dateachat,statut) values (300,12,#05/04/2005#,"regle")
Donc en VBA il faut construire cette chaine de caractère qui sera envoyé au moteur de base de données via la commande docmd.RunSQL
Donc on déclare une chaine de caractère
Que l'on rempli avec le début de la requête :
strSQL="insert into fact(numclient,numprodui,dateachat,statut) values ("
on y ajoute la valeur de la zone de texte numclient
strSQL="insert into fact(numclient,numprodui,dateachat,statut) values (" & me.numclient.value
puis la virgule et la zone de texte de reference produit
strSQL="insert into fact(numclient,numprodui,dateachat,statut) values (" & me.numclient.value & "," & me.numprodui.value
puis la virgule et la date d'aujourd'hui encadrée par des #. (Enfait les # seront à coté des virgules de chaque coté de la date)
strSQL="insert into fact(numclient,numprodui,dateachat,statut) values (" & me.numclient.value & "," & me.numprodui.value & ",#" & Date() & "#,"
puis enfin le mot regle encadré par des guillemets. Comme les guillemets serve aussi en VBA, VBA va les interprété comme une ouverture/fin de chaine au lieu de les inclure dans la chaine de caractère pour cela soit on double les " soit, on utilise la fonction Chr(X) qui retourne le caractère ascii X (X=34 pour avoir ")
strSQL="insert into fact(numclient,numprodui,dateachat,statut) values (" & me.numclient.value & "," & me.numprodui.value & ",#" & Date() & "#," & Chr(34) & "regle" & Chr(34) & ")"
Pourquoi nous écrivons "relge" et non regle parce qu'il s'agit d'une chaine de caractères et non une variable.
A ce stade tu peux utiliser
afin d'afficher la requête construite. Elle correspond à ce que l'on attendait. On peut alors l'éxecuter.
Il s'agit là des bases de la programmation et c'est inutile d'aller plus loin si tu n'arrives pas à concevoir le principe de Variable/Valeur/Opérateur et la différence SQL/VBA
Partager