Pb_requete_access_VBA
Bonjour j'ai un problème de syntaxe dans ma requête et je ne vois pas d'ou cela provient, pourriez vous m'aider svp.
COde : les types de ma table sont Date pour DateTest , et varchar(90) pour Code et valeur.
Sub Insere_Lignes_Generique()
Dim col As Integer, lig As Long, i As Long
Dim BDD As String, Head As String, S As String, Req As String, Nomtable As String, IntReq
Dim Cnx As Object, Rst As Object
Dim A As Date, B As String, C As String, D As String, E As Double
Dim nbrow
Dim ListeNomColonnes(250) As String
Dim ListeLignes(250, 250) As String
Dim j As Integer
Dim nbcol As Integer, nblig As Integer
Dim Valuesreq As String
BDD = ActiveWorkbook.Path & "\BaseTestGenerique.accdb"
Nomtable = UserForm2.TextBox1.Value
With ActiveSheet
nbcol = Range("A2").SpecialCells(xlCellTypeLastCell).Column
nblig = Range("A2").SpecialCells(xlCellTypeLastCell).Row
For i = 1 To nbcol
ListeNomColonnes(i) = Cells(1, i).Value
Next i
IntReq = ""
For i = 1 To nbcol - 1
IntReq = IntReq + ListeNomColonnes(i) + " ,"
MsgBox (IntReq)
Next i
IntReq = IntReq + ListeNomColonnes(nbcol)
MsgBox (IntReq)
For i = 1 To nbcol
If Cells(2, i).Value = "" Then
Cells(2, i).Value = "NULL"
ListeLignes(1, i) = Cells(2, i).Value
Else
ListeLignes(1, i) = Cells(2, i).Value
End If
Next i
For j = 2 To nblig
If Cells(j, 1).Value = "" Then
Cells(j, i).Value = "NULL"
ListeLignes(j, 1) = Cells(j, 1).Value
Else
ListeLignes(j, 1) = Cells(j, 1).Value
End If
Next j
For j = 1 To nblig
For i = 1 To nbcol - 1
Valuesreq = Valuesreq & "'" & ListeLignes(j, i) & "'" & " ,"
Next i
Valuesreq = Valuesreq & "'" & ListeLignes(j, i)
Req = "INSERT INTO TableTest2 (" & IntReq & ") VALUES ( '" & Valuesreq & "')"
Set Cnx = CreateObject("ADODB.Connection")
Cnx.Open "DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=" & BDD
Set Rst = Cnx.Execute(Req)
Valuesreq = ""
Next j
Set Cnx = CreateObject("ADODB.Connection")
Cnx.Open "DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=" & BDD
Set Rst = Cnx.Execute(Req)
Cnx.Close
Set Cnx = Nothing
Set Rst = Nothing
End With
End Sub
Bonjour,
Pour insérer une date dans une table Access, la date doit être :
* au format mm/jj/aaaa
* entourée de diése
Pour le 11 mai 2017 la requête serait donc du genre :
Req= "INSERT INTO TableTest2 (DateTest, Code, Valeur) VALUES (#05/11/2017#, 'code machin123', 'valeur bidule456')"
Pierre
Merci pour ta réponse,
Mais l'erreur ne vient pas de là, j'ai une erreur ' Erreur de syntaxe ( operateur absent dans l'expression )
J'ai testé d'inserer une valeur dans DateTest sans les # et cela fonctionne meme si ça ne rentre pas la bonne valeur dans ma table.
Donc je pense que l'erreur vient d'ailleurs :/