Insert into dans VBA

sergeszebe Messages postés 180 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 8 octobre 2009 - 18 janv. 2006 à 17:21
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 18 janv. 2006 à 18:45
Quelqu'un pourrait m'aider à chercher l'erreur qui se cache dans mon code:
"erreur dans l'instruction insert into:"

apres clic sur un boutons VALIDER L'INSCRIPTION:
OUI/NON
Si OUI:
If reponse = vbYes Then
Set rs = New ADODB.Recordset
vsql = "INSERT INTO Défaut " // defaut: table dans laquel inserer les nouvelles valeures
vsql = vsql + "[Défaut.Init],[Défaut.Nom],[Défaut.Prénom],[Défaut.Adresse].value,[Code Postal].value,[Défaut.ville].value,[Défaut.Numéro Tel].value,[Défaut.E-mail].Value,[me!txtinit_n_p].value,[me!txtnom_n_p].value,[me!txtprenom_n_p].values,[me!txtadresse_n_p].value,[me!txtcp_n_p].values,[me!txt_Ville_n_p).values,[me!txt_tel_n_p].value,[me!txtmail_n_p].value"



DoCmd.RunSQL vsql
Set bd = CurrentDb
Set tdef = bd.OpenRecordset("Défaut", dbOpenDynaset)
MsgBox ("Enregistrement effectué")


Booba

1 réponse

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
18 janv. 2006 à 18:45
La syntaxe SQL complète est :
Insert Into nomTable
(Champ1, Champ2, ... ChampX)
Values (Valeur1, Valeur2, ... ValeurX)

De plus, les valeurs des champs de type (de type tels que définis dans la DB) :
Texte : doivent être encadrés par des '
Date : doivent être encadrés par des #
Chiffres : pas d'encadrement
Mettre des crochets [ et ] quand le nom d'un champ comporte des espaces ou des caractères non standards (comme les accents) - tu peux en mettre partout, mais faut penser à les refermer ! (voir me!txt_Ville_n_p)

Si tu veux insérer des valeurs issues de ton programme, il faudra sortir de la syntaxe SQL pour prendre en compte les variables. Exemple
vsql = vsql & "'" & me!txtadresses_n_p.Value & "', '" & [Défaut.E-mail].Value & ...

En VB, la concaténation de chaine se fait avec le symbole &, pas le + (avec +, ça marche ... jusqu'au jour où ça marchera pas)

Tout ceci, tu aurais pu l'apprendre en chageant quelsues sources qui parlent de DB sous VB ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
Rejoignez-nous