Recordet mise à jour base de données Excel problème syntaxe

creal69360

XLDnaute Junior
Bonjour,

je suis en train de créer une application qui va modifier des données dans un classeur fermé à l'aide d'userforms dans lequel on saisit les données. Je me sers de la fonction SQL Update pour mettre à jour ma base mais j'ai un soucis au niveau de la syntaxe. Au départ j'ai fait un test en métant à jour un seul champ, cela fonctionne:

texte_SQL = "UPDATE [" & onglet_source & "$] set GMR='" & Modifier_Postes.zt_gmr & "'"

Mais quand je mets tout les champs j'ai une erreur de syntaxe:

texte_SQL = "UPDATE [" & onglet_source & "$] set GMR='" & Modifier_Postes.zt_gmr & "', " & _
"Manager='" & Modifier_Postes.zt_mdp & "', " & _
"Libellé immos='" & Modifier_Postes.zt_libimmo & "', " & _
"Date MES='" & Modifier_Postes.zt_date_mes & "', " & _
"Dérog° prév#+Date de résor°_='" & Modifier_Postes.zt_derog & "', " & _
"IP-HT='" & Modifier_Postes.zt_ipht & "', " & _
"IP-CC='" & Modifier_Postes.zt_ipcc & "', " & _
"'IP Infrastructure='" & Modifier_Postes.zt_infra & "', " & _
"Willy Doc Poste HT='" & Modifier_Postes.zt_wdht & "', " & _
"Willy Doc Poste CC='" & Modifier_Postes.zt_wdcc & "', " & _
"WD (3 mois après)='" & Modifier_Postes.zt_wd3mois & "', " & _
"Entreprises Travaux et Ensembliers='" & Modifier_Postes.zt_entreprise_travaux & "', " & _
"Date ouverture externalisation='" & Modifier_Postes.zt_date_ouverture & "', " & _
"Date fermeture externalisation='" & Modifier_Postes.zt_date_fermeture & "', " & _
"Matériels à déposer O/N='" & Modifier_Postes.zt_materiels_deposes & "', " & _
"Matériels à déplacer O/N='" & Modifier_Postes.zt_materiels_deplaces & "', " & _
"Commentaires Matériels déplacés ou déposés='" & Modifier_Postes.zt_commentaires & "'"

Voici ci-dessous le code permettant la mise à jour:

Sub modifier()


Dim cn, cn1 As ADODB.Connection
Dim rst, rstmanager As ADODB.Recordset
Dim texte_SQL As String



Set cn = New ADODB.Connection

cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & chemin_base & ";Extended Properties=Excel 8.0;"

Set rst = New ADODB.Recordset
MsgBox (texte_SQL)
Set rst = cn.Execute(texte_SQL)
Set rst = Nothing
cn.close
set cn=nothing
end sub
 
G

Guest

Guest
Re : Recordet mise à jour base de données Excel problème syntaxe

Bonjour,

Sans les exemples classeurs source et destination, difficile à vue de nez (surtout à lire). Mais je vois que tu as des noms de champs avec espace: "Dérog° prév#+Date de résor°_"

Essaie de le entourer de brackets [Dérog° prév#+Date de résor°_]
Evite également les + et - ou autre signes particulier dans les noms de champs.

A+
 

Discussions similaires

Réponses
3
Affichages
746
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 202
Messages
2 086 180
Membres
103 152
dernier inscrit
Karibu