Requete vb

NYC -  
 NYC -
Bonjour,
Je suis sous access 2003, j'ai réalisé un code vb qui me permet d'effectuer différente requet SQL, aprés avoir sélectionnée un enregistrement je souhaite l'inserer dans une autre table, j'ai pour cela appeller une requete INSERT, mais quand j'execute le programme un message me dissant qu'il ya a une erreur de syntaxe sur ma requete SQL; je ne vois pas ou est le probléme alos si vous pouviez m'aider...

voici le bout de code (requete selection +insert) :

Dim db As Database
Dim Rs As Recordset
Dim sql, sql2, sql3, sql4 As String
Dim n, No, ct, cD, S, A, CP, V, Sec, Imput, AC, Com, Ré, Date_D As String
Dim dde, Tel_dde, Dos, EBL, Interlo, Tel_Interlo, Date_M As String

'Récupération du numero de tel dans formulaire
N_D = Forms!FrmPrincipal!No

'Execution de la requete de sélection
Set db = CurrentDb
sql = "Select Tel_Archive.[No],* from Tel_Archive where Tel_Archive.No = " & Chr(34) & N_D & Chr(34)
Set Rs = db.OpenRecordset(sql)

'Récuperation du résultats de la requête

Rs.MoveFirst
While Not Rs.EOF

n = Rs.Fields("Numéro")
No = Rs.Fields("No")
ct = Rs.Fields("Cpt")
cD = Rs.Fields("Code D")
A = Rs.Fields("Adresse")
CP = Rs.Fields("CP")
V = Rs.Fields("Ville")
Sec = Rs.Fields("Secteur")
Imput = Rs.Fields("Imputation")
Com = Rs.Fields("Commentaires")
Ré = Rs.Fields("Résiliation")
Date_D = Rs.Fields("Date demande")
dde = Rs.Fields("demandeur")
Tel_dde = Rs.Fields("Tel Demandeur")
Dos = Rs.Fields("Dossier")
EBL = Rs.Fields("EBL")
Interlo = Rs.Fields("Interlocuteur")
Tel_Interlo = Rs.Fields("Tel Inerlocuteur")
Date_M = Now

'Création des données dans la table PDA
sql2 = "INSERT INTO Tel (Numéro, No, Cpt, Code_D, Site, Adresse, CP, Ville, Secteur, Imputation, Autre_Code, Commentaires, Résiliation, Date demande, Demandeur, Tel_Demandeur, Dossier, EBL, Interlocuteur, Tel_Inerlocuteur, Date_creation) VALUES ('" & n & "','" & No & "','" & ct & "','" & cD & "','" & S & "','" & A & "','" & CP & "','" & V & "','" & Sec & "','" & Imput & "','" & AC & "','" & Com & "','" & Ré & "','" & Date_D & "','" & dde & "','" & Tel_dde & "','" & Dos & "','" & EBL & "','" & Interlo & "','" & Tel_Interlo & "','" & Date_M & "')"
db.Execute (sql2)
A voir également:

1 réponse

michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Bonjour,

1/Tu as un espace dans ton SQL et il n'aime pas du tout!
INSERT INTO Tel (Numéro, No, Cpt, Code_D, Site, Adresse, CP, Ville, Secteur, Imputation, Autre_Code, Commentaires, Résiliation, Date demande, Demandeur, Tel_Demandeur...

2/ces espaces dans le nom de champs sont à supprimer et à remplacer par des underscores dans la structure de ta base
(de m^me que les accents, caractères spéciaux, apostrophes, guillemets, points...)

Tel_dde = Rs.Fields("Tel Demandeur")
Dos = Rs.Fields("Dossier")
EBL = Rs.Fields("EBL")
Interlo = Rs.Fields("Interlocuteur")
Tel_Interlo = Rs.Fields("Tel Interlocuteur")
etc.

3/ Tu as des dates issues de variables? attention, il estt souvent nécessaire (j'ai pas regardé de trop le code) de les encadrer par des #

4/Tes déclarations: par ex
Dim sql, sql2, sql3, sql4 As String
seul sql4 est déclaré string, les autres sont considérées comme variant
il faut écrire
dim sql1 as string, sql2 as string....

Michel
0
NYC
 
Merci pour ces explications
ça marche
0