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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.