Bonjour,
Je développe une base sous Access avec des menus sous forme de formulaire qui vont bien et j'ai un soucis depuis aujourd'hui (lundi) avec l'exécution du formulaire d'import que j'ai créé et qui était fonctionnel vendredi dernier.
Ce formulaire est composé d'onglets, un pour chaque étape de la procédure d'utilisation.
Le premier onglet correspond donc à l'étape d'import des extraction SAP dans la base avec l'exécution d'un certain nombre de requête d'ajout, de mise à jour et de suppression...
Ainsi donc, la première partie du code de la "Form" permet de sélectionner les fichier d'import dans une zone de texte à l'aide d'un bouton poussoir pour chacun des 4 fichiers à importer.
Les zone de texte sont respectivement nommée txt_path1, txt_path2, txt_path3 et txt_path4.
les boutons poussoirs sont nommés btn_browser1, btn_browser2, btn_browser3 et btn_browser4.
Ci-dessous le code VBA correspondant au premier bouton poussoir (les 3 autres fonctionnent de la même manière):
La ou la macro bug c'est lorsque les commandes d'import et d'exécution des requêtes sont invoqués, et ce dès la deuxième ligne de 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 Private Sub btn_browser1_Click() Dim fd As Office.FileDialog ' Créer un objet FileDialog Set fd = Application.FileDialog(msoFileDialogOpen) ' Titre de la boîte de dialogue fd.Title = "texte de la boîte de dialogue" ' Ne pas autoriser la sélection multiple ' (donc 1 seul fichier est sélectionnable à la fois) fd.AllowMultiSelect = False ' Définir les types de fichiers autorisés en ajoutant un filtre fd.Filters.Clear fd.Filters.Add "Fichiers Excel", "*.xls; *.xlsx" ' Présélectionner le filtre fd.FilterIndex = 0 ' Afficher la boîte de dialogue If fd.Show() Then Me.txt_path1 = fd.SelectedItems(1) End If Set fd = Nothing End Sub
L'erreur renvoyé est la suivante : "Erreur d'exécution '3275': Erreur inatendue du pilote de données externe (1)".
Code : Sélectionner tout - Visualiser dans une fenêtre à part DoCmd.TransferSpreadsheet acImport, 8, "Nom table d'import", Me.txt_path1, True
Ci-dessous le code en question :
Je suis ouvert à tout élément pouvant éclairer mon problème donc n'hésitez pas,
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 Private Sub btn_import_Click() DoCmd.TransferSpreadsheet acImport, 8, "Nomtabled'import1", Me.txt_path1, True DoCmd.TransferSpreadsheet acImport, 8, "Nomtabled'import2", Me.txt_path2, True DoCmd.TransferSpreadsheet acImport, 8, "Nomtabled'import3", Me.txt_path3, True DoCmd.TransferSpreadsheet acImport, 8, "Nomtabled'import4", Me.txt_path4, True DoCmd.SetWarnings False DoCmd.OpenQuery "Ajout Nomtableendur1" DoCmd.OpenQuery "Ajout Nomtableendur2" DoCmd.OpenQuery "Ajout Nomtableendur3" DoCmd.OpenQuery "Ajout Nomtableendur4" DoCmd.OpenQuery "Maj Nomtableendur1" DoCmd.OpenQuery "Maj Nomtableendur2" DoCmd.OpenQuery "Maj Nomtableendur3" DoCmd.OpenQuery "Maj Nomtableendur4" DoCmd.OpenQuery "Suppr Nomtabled'import1" DoCmd.OpenQuery "Suppr Nomtabled'import2" DoCmd.OpenQuery "Suppr Nomtabled'import3" DoCmd.OpenQuery "Suppr Nomtabled'import4" DoCmd.SetWarnings True End Sub
Bien à vous.
Partager