Excel vers Mysql INSERT INTO
Bonjour à tous,
Je souhaite faire une insertion dans une table MySQL. C'est quelque chose que je fais déjà avec d'autres fichiers Excel et cela fonctionne.
Voici le début de code pour faire un test.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| Sub ImpressionFac()
Dim rs As ADODB.Recordset
Dim strsql As String
Dim WS As Worksheet
Dim MonOnglet As String
Dim sSociete As String
Dim dDateFacture As Date
Dim i As Long
Dim sRefFacture As String
Dim sSite As String
Dim nMontant As Long
Dim bExonere
MonOnglet = ActiveSheet.Name
Set WS = ThisWorkbook.Worksheets(MonOnglet)
For i = 18 To 39
sSociete = Sheets(MonOnglet).Range("J24")
dDateFacture = Sheets(MonOnglet).Range("P21")
sSite = WS.Cells(i, "A")
sRefFacture = WS.Cells(i, "C")
nMontant = WS.Cells(i, "D")
bExonere = WS.Cells(i, "E")
If sSite <> "" Then
If bExonere = "" Then
bExonere = 1
Else
bExonere = 0
End If
'MsgBox sSite
'INSERT MySQL table facturedaftools
Set rs = New ADODB.Recordset
ConnectDB
Debug.Print strsql
strsql = "INSERT INTO facturesdaftools (Societe) VALUES ('" & (sSociete) & "')"
rs.Open strsql, PConn, adOpenDynamic, adLockOptimistic
Else
MsgBox "Ligne vide"
Exit For
End If
Next i
End Sub |
Malheureusement, j'ai une erreur 3001 à chaque fois. A noter que si j'utilise l'éditeur de MySQL en tapant exactement la requête que me retourne le debug.print, cela fonctionne.
J'ajoute que le champ societe de la table visée est un varchar de 75.
Même si je remplace la variable par un mot, idem.
Il y a 2 champs date dans la table avec une valeur par défaut à 0000-00-00. Est-ce que cela peut venir de la ?
Le débogage me surligne la ligne 46.
Je sèche un peu.
Dans l'attente de vos observations.
Merci d'avance.
Excel vers MySQL insert into
Après avoir cherché partout, il s'avère que c'était tout simplement le fichier Excel qui était endommagé.
Problème résolu