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.
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.
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
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.
Partager