Erreur d’exécution à l'insertion
Bonjour,
mon problème aujourd'hui se trouve lorsque j'effectue un INSERT INTO. Mon code est stocké dans un fichier excel et la base de données est un autre fichier excel
Lorsque j'effectue mon code comme ci dessous l'insertion s'effectue comme il faut et je le retrouve bien dans ma base de donnée :
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
| Public Const users = "Utilisateurs$"
Public Sub OpenConnexion(Fichier)
Set Connexion = CreateObject("ADODB.Connection")
With Connexion
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& Fichier & ";Extended Properties=""Excel 12.0;HDR=YES"";"
.Open
End With
End Sub
Public Function Insert_Creation() As Boolean
On Error GoTo Err_Insert
Dim adoCMD As Object
Dim adoRS As Object
Dim strSQL As String
'Définir la requête à effectuer pour l'insertion
strSQL = "INSERT INTO [" & users & "] ([Login], [Nom])" & vbCrLf & _
"VALUES (p1,p2);"
OpenConnexion (Fichier)
'Définition des parametres à affecter à chaque valeur (p1,p2,...,px)
Set adoCMD = CreateObject("ADODB.Command")
With adoCMD
.ActiveConnection = Connexion
.CommandType = adCmdText
.Parameters.Append .CreateParameter("p1", adVarChar, adParamInput, 50, "Ctoto")
.Parameters.Append .CreateParameter("p2", adVarChar, adParamInput, 50, "toto")
.CommandText = strSQL
Set adoRS = .Execute
End With
'Retourne vrai quand l'execution s'effectue sans erreur
Insert_Creation = True
Exit_Insert:
'Fermeture des connections
Set adoRS = Nothing
Set adoCMD = Nothing
Exit Function
Err_Insert:
'En cas d'erreur renvoi d'un msgbox
MsgBox ("Function: Insert() err")
Insert_Creation = False
Resume Exit_Insert
End Function |
or quand j'utilise le code avec une autre feuille le code ne fonctionne plus et s’arrête lors de l’exécution comme dans ce code :
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
| Public Const ano = "Anomalies$"
Public Function Insert_Creation() As Boolean
On Error GoTo Err_Insert
Dim adoCMD As Object
Dim adoRS As Object
Dim strSQL As String
'Définir la requête à effectuer pour l'insertion
strSQL = "INSERT INTO [" & ano & "] ([IdAnom], [Libelle])" & vbCrLf & _
"VALUES (p1,p2);"
OpenConnexion (Fichier)
'Définition des parametres à affecter à chaque valeur (p1,p2,...,px)
Set adoCMD = CreateObject("ADODB.Command")
With adoCMD
.ActiveConnection = Connexion
.CommandType = adCmdText
.Parameters.Append .CreateParameter("p1", adVarChar, adParamInput, 50, "CME1251")
.Parameters.Append .CreateParameter("p2", adVarChar, adParamInput, 50, "toto")
.CommandText = strSQL
Set adoRS = .Execute
End With
'Retourne vrai quand l'execution s'effectue sans erreur
Insert_Creation = True
Exit_Insert:
'Fermeture des connections
Set adoRS = Nothing
Set adoCMD = Nothing
Exit Function
Err_Insert:
'En cas d'erreur renvoi d'un msgbox
MsgBox ("Function: Insert() err")
Insert_Creation = False
Resume Exit_Insert
End Function |
Si vous avez des raisons possibles pour la résolution de mon problème je suis preneur (j'ai déjà bien regarder si les noms étaient bien les mêmes et je vais encore vérifier).
Merci