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 :
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 : 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 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
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).
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 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
Merci
Partager