D?ajouter un nouvel enregistrement dans une table

sergeszebe Messages postés 180 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 8 octobre 2009 - 19 janv. 2006 à 11:19
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 19 janv. 2006 à 14:06
Bonjour,seul il n'est pas facile de voir les milier de virgule,sauf si ma s'intaxe n'est pas bonne: je veux creer un nouvel enregistrement dans la table Défaut contenant les valeur ecrite dans un formulaire: voila ma requette (qui ne marche pas:

vsql= vsql & "'"& init & "','"& Nom & "','" & Prénom & "','" & Adresse & "','" _

vsql= vsql & "'"&[Code Postal] & "','" & Ville & "','" & [Numéro Tel] & "','" & [E-Mail] & "','" & Values _vsql=vsql&"'"& me![txtinit_n_p].value & '",'" & Me!
[txtnom_n_p].Value & "','"&Me![txtprenom_n_p].Value _

vsql= vsql & "'"& Me![txtadresse_n_p].Value & "','" & Me![txtcp_n_p].Value & "','" _
vsql= vsql & "'"& Me![txt_Ville_n_p].Value & "'," & Me![txt_tel_n_p].Value & "','" me![txtmail_n_p].value &"'"

Docmd.run sql


Booba


Booba

2 réponses

olixelle Messages postés 506 Date d'inscription vendredi 30 juillet 2004 Statut Membre Dernière intervention 3 mars 2008 2
19 janv. 2006 à 13:16
ca ne serait pas:
Docmd.run Vsql ?

Sinon, affiche dans un msgbox la variable vsql avant de faire ton docmd.run et donne nous la requete générée

Rollerman
0
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
19 janv. 2006 à 14:06
Salut
Rappel, car je t'ai déjà répondu à ce sujet.
Essaye de reflechir et de te renseigner en chargeant quelques sources.


Syntaxe SQL pour insertion dans DB :
Insert Into maTable ([Champ1], [Champ2], ..., [ChampX]) Values ('valeur du Champ1', ''valeur du Champ2', ..., 'valeur du ChampX')


Tu noteras que :
- je n 'ai pas mis de ' pour encadrer les NOMs des champs, mais pour encadrer les valeurs des champs de type texte (tels que définis dans la database)
- les crochets droits [ et ] ne sont obligatoires que lorsqu'un NOM de champ comporte des espaces ou des caractères spéciaux comme les accents français

Pour couper la syntaxe SQL pour y insérer des valeurs de variables VB, il faut :
- fermer les guillemets de VB, donc les "
- mettre un espace derrière, puis le symbole &
- penser qu'il est impératif de respecter les espaces dans la syntaxe SQL. Exemple, entre Values et la (, même si tu changes de ligne !

D'autre part, pour être plus facile à lire, je te conseille de ne mettre qu'une seule valeur par ligne.
Exemple :
vSQL = "Insert Into maTable "
vSQL = vSQL & "([Champ1], [Champ2], ..., [ChampX]) Values ("
vSQL = vSQL & "'" & Me!LeNomDeMonComposant1 & "', "
vSQL = vSQL & "'" & Me!LeNomDeMonComposant2 & "', " ' ...

vSQL = vSQL & "'" & Me!LeNomDeMonComposantX & "')"

Les noms LeNomDeMonComposantX sont des noms de composants dans ton Excel ou Word.
Ils ne peuvent pas comporter d'espace : donc inule de surcharger avec des [ ].

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