Dim iden As String
Dim ddat As String
Dim hd As String
Dim hf As String
hf =3D Time
Open "c:\windows\temp\utilisateur.txt" For Input As #1
Line Input #1, iden
Line Input #1, ddat
Line Input #1, hd
Close #1
DoCmd.RunSQL "insert into utilisateurs (id,dat,[heure=20
d'ouverture],[heure de fermeture]) values=20
(iden,ddat,hd,hf)"
DoCmd.RunMacro "fermer_travaux"
Il ya une incompatibilit=E9 entre les variables sql et vb il=20
ne les prend pas comme si c t les mm. Cmt faire?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fred M.
Tu ne peux pas insérer directement les références de tes variables à l'intérieur de ta chaine SQL : Tu dois faire une concaténation de chaine pour que la syntaxe soit correcte. De plus, comme tes variables sont de type String tu dois ajouter des côtes pour compenser les guillemets.
Donc en somme tu devrais avoir qlqchose qui devrait ressembler à ça :
Dim ChaineSQL as string ChaineSQL = "insert into utilisateurs (id,dat,[heure d'ouverture],[heure de fermeture]) values ('" & iden & "','" & ddat& "','" & hd& "','" & hf & "')" DoCmd.RunSQL ChaineSQL
Conseil : Aide toi tu débogueur pour vérifier la validité des valeurs de tes variables et celle de ta chaine SQL.
Bon courage. Fred
-----Message d'origine----- Dim iden As String Dim ddat As String Dim hd As String Dim hf As String hf = Time Open "c:windowstemputilisateur.txt" For Input As #1 Line Input #1, iden Line Input #1, ddat Line Input #1, hd Close #1 DoCmd.RunSQL "insert into utilisateurs (id,dat,[heure d'ouverture],[heure de fermeture]) values (iden,ddat,hd,hf)" DoCmd.RunMacro "fermer_travaux"
Il ya une incompatibilité entre les variables sql et vb il
ne les prend pas comme si c t les mm. Cmt faire?
Help !
Mci .
Tu ne peux pas insérer directement les références de tes
variables à l'intérieur de ta chaine SQL : Tu dois faire
une concaténation de chaine pour que la syntaxe soit
correcte. De plus, comme tes variables sont de type String
tu dois ajouter des côtes pour compenser les guillemets.
Donc en somme tu devrais avoir qlqchose qui devrait
ressembler à ça :
Dim ChaineSQL as string
ChaineSQL = "insert into utilisateurs (id,dat,[heure
d'ouverture],[heure de fermeture]) values ('" & iden
& "','" & ddat& "','" & hd& "','" & hf & "')"
DoCmd.RunSQL ChaineSQL
Conseil : Aide toi tu débogueur pour vérifier la validité
des valeurs de tes variables et celle de ta chaine SQL.
Bon courage.
Fred
-----Message d'origine-----
Dim iden As String
Dim ddat As String
Dim hd As String
Dim hf As String
hf = Time
Open "c:windowstemputilisateur.txt" For Input As #1
Line Input #1, iden
Line Input #1, ddat
Line Input #1, hd
Close #1
DoCmd.RunSQL "insert into utilisateurs (id,dat,[heure
d'ouverture],[heure de fermeture]) values
(iden,ddat,hd,hf)"
DoCmd.RunMacro "fermer_travaux"
Il ya une incompatibilité entre les variables sql et vb
il
Tu ne peux pas insérer directement les références de tes variables à l'intérieur de ta chaine SQL : Tu dois faire une concaténation de chaine pour que la syntaxe soit correcte. De plus, comme tes variables sont de type String tu dois ajouter des côtes pour compenser les guillemets.
Donc en somme tu devrais avoir qlqchose qui devrait ressembler à ça :
Dim ChaineSQL as string ChaineSQL = "insert into utilisateurs (id,dat,[heure d'ouverture],[heure de fermeture]) values ('" & iden & "','" & ddat& "','" & hd& "','" & hf & "')" DoCmd.RunSQL ChaineSQL
Conseil : Aide toi tu débogueur pour vérifier la validité des valeurs de tes variables et celle de ta chaine SQL.
Bon courage. Fred
-----Message d'origine----- Dim iden As String Dim ddat As String Dim hd As String Dim hf As String hf = Time Open "c:windowstemputilisateur.txt" For Input As #1 Line Input #1, iden Line Input #1, ddat Line Input #1, hd Close #1 DoCmd.RunSQL "insert into utilisateurs (id,dat,[heure d'ouverture],[heure de fermeture]) values (iden,ddat,hd,hf)" DoCmd.RunMacro "fermer_travaux"
Il ya une incompatibilité entre les variables sql et vb il
ne les prend pas comme si c t les mm. Cmt faire?
Help !
Mci .
Papy Frenchie
La 1ère chose simple à effectuer est de faire la requête de manière simple avec l'assistant des requêtes quand ta requête fonctionne bien tu passes en mode sql afin de copier la syntaxe puis après tu vas travailler avec tout cela dans vb.....
Ensuite Attention aux caractères interdit !!!! du type " et - ainsi que les . , ! etc .... la liste est longue, en clair tous les caractères pouvant être interprété différemment dans sql .
il y a aussi les astuces de déclaration du Vguil comme je l'appelle qui donne ceci dim vguil as string
vguil ="""" cela permet les concaténations de ta requête sql sans générer d'erreur quand cette dernière est executé en vb
j'utilise pour ma part souvent cette méthode il y en a bien d'autres et de meilleures sûrement mais dans mon cas j'ai toujours grâce à elle compris mes bugs
la commande debug.print est souvent très utile ou encore un msgbox avant d'exécuter la requête en VB (afin de visualiser son contenu et comprendre les messages qui ne tardent pas à venir)
voici un exemple : non pas pour le commenter mais pour montrer un chaine qui peut apparaitre complexe à 1ère vue ------------------------------------------------------------------- Function ReqVentil(NuMCourr, NumCorresp As Long, ActionInfo As Boolean) DoCmd.SetWarnings False
On Error GoTo Erreur Dim StrSql As String Dim ActionInfoFinal As Variant
' ce fonction ajoute un correspondant If ActionInfo = False Then ActionInfoFinal = 0 Else ActionInfoFinal = -1
StrSql = "" StrSql = StrSql & "INSERT INTO t3VentilTemp ( LienT0Corres, Lient2Cour, Lient0ListeDiff, actioninfo ) " StrSql = StrSql & "SELECT " & NumCorresp & " as val1, " & NuMCourr & " as val2 , 1 as val3," & ActionInfoFinal & " as val4 ;" DoCmd.RunSQL StrSql Exit Function
Erreur: MsgBox "Erreur dans la requete de ventilation reqventil" End Function
La 1ère chose simple à effectuer
est de faire la requête de manière simple avec l'assistant des requêtes
quand ta requête fonctionne bien tu passes en mode sql afin de copier la
syntaxe
puis après tu vas travailler avec tout cela dans vb.....
Ensuite
Attention aux caractères interdit !!!!
du type " et -
ainsi que les . , !
etc ....
la liste est longue, en clair tous les caractères pouvant
être interprété différemment dans sql .
il y a aussi les astuces de déclaration du Vguil comme je l'appelle qui
donne ceci
dim vguil as string
vguil =""""
cela permet les concaténations de ta requête sql
sans générer d'erreur quand cette dernière est executé
en vb
j'utilise pour ma part souvent cette méthode il y en a bien d'autres et de
meilleures sûrement mais dans mon cas
j'ai toujours grâce à elle compris mes bugs
la commande debug.print est souvent très utile
ou encore un msgbox avant d'exécuter la requête
en VB (afin de visualiser son contenu et comprendre les
messages qui ne tardent pas à venir)
voici un exemple :
non pas pour le commenter mais pour montrer un chaine qui peut apparaitre
complexe à 1ère vue
-------------------------------------------------------------------
Function ReqVentil(NuMCourr, NumCorresp As Long, ActionInfo As Boolean)
DoCmd.SetWarnings False
On Error GoTo Erreur
Dim StrSql As String
Dim ActionInfoFinal As Variant
' ce fonction ajoute un correspondant
If ActionInfo = False Then ActionInfoFinal = 0 Else ActionInfoFinal = -1
StrSql = ""
StrSql = StrSql & "INSERT INTO t3VentilTemp ( LienT0Corres, Lient2Cour,
Lient0ListeDiff, actioninfo ) "
StrSql = StrSql & "SELECT " & NumCorresp & " as val1, " & NuMCourr & " as
val2 , 1 as val3," & ActionInfoFinal & " as val4 ;"
DoCmd.RunSQL StrSql
Exit Function
Erreur:
MsgBox "Erreur dans la requete de ventilation reqventil"
End Function
La 1ère chose simple à effectuer est de faire la requête de manière simple avec l'assistant des requêtes quand ta requête fonctionne bien tu passes en mode sql afin de copier la syntaxe puis après tu vas travailler avec tout cela dans vb.....
Ensuite Attention aux caractères interdit !!!! du type " et - ainsi que les . , ! etc .... la liste est longue, en clair tous les caractères pouvant être interprété différemment dans sql .
il y a aussi les astuces de déclaration du Vguil comme je l'appelle qui donne ceci dim vguil as string
vguil ="""" cela permet les concaténations de ta requête sql sans générer d'erreur quand cette dernière est executé en vb
j'utilise pour ma part souvent cette méthode il y en a bien d'autres et de meilleures sûrement mais dans mon cas j'ai toujours grâce à elle compris mes bugs
la commande debug.print est souvent très utile ou encore un msgbox avant d'exécuter la requête en VB (afin de visualiser son contenu et comprendre les messages qui ne tardent pas à venir)
voici un exemple : non pas pour le commenter mais pour montrer un chaine qui peut apparaitre complexe à 1ère vue ------------------------------------------------------------------- Function ReqVentil(NuMCourr, NumCorresp As Long, ActionInfo As Boolean) DoCmd.SetWarnings False
On Error GoTo Erreur Dim StrSql As String Dim ActionInfoFinal As Variant
' ce fonction ajoute un correspondant If ActionInfo = False Then ActionInfoFinal = 0 Else ActionInfoFinal = -1
StrSql = "" StrSql = StrSql & "INSERT INTO t3VentilTemp ( LienT0Corres, Lient2Cour, Lient0ListeDiff, actioninfo ) " StrSql = StrSql & "SELECT " & NumCorresp & " as val1, " & NuMCourr & " as val2 , 1 as val3," & ActionInfoFinal & " as val4 ;" DoCmd.RunSQL StrSql Exit Function
Erreur: MsgBox "Erreur dans la requete de ventilation reqventil" End Function