Bonjour,
J’ai créé une requête sur Access 2013 qui extrait d’une table importée d’un fichier txt des valeurs et qui a pour but de les ajouter à une autre Table(Table1).
J’ai ensuite transformé cette requête au format sql, afin de pouvoir traiter les 100 tables importées tous les jours de fichiers txt ; mais étant débutante sur VBA et après avoir consulté de nombreux forums, je suis bloquée si près du but.
J’ai réussi à créer le script d’importation automatique de toutes les fichiers txt, également le script d’ajout d’une colonne « id » à chaque table créées après l’importation (grâce à votre aide cet été), et aussi le script de suppression de toutes les tables une fois la requête exécutée(ne fonctionne pas).
Voici le code qui ne fonctionne pas et me provoque l’erreur suivante : Erreur d'exécution 3067 : la requête doit être construite à partir d'au moins une table ou une requête source.
Je sens que je ne suis pas loin, il y a certainement un problème de syntaxe ou autre, et je tourne en rond. Merci de votre aide.
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 Public Sub Table1_SQL() Dim strSQL As String Dim db As DAO.Database Dim tdf As DAO.TableDef Dim Table1 As DAO.TableDef Set db = CurrentDb For Each tdf In db.TableDefs If tdf.Name Like "G10*" Then strSQL = "INSERT INTO Table1 ( Ligne, DateJ, Heure, CodPro, Pds_insuf, Pds_Acc )" _ & "SELECT Max(IIf([ID]=7,[Champ1])) AS Ligne, Max(IIf([ID]=9,Right(Left$([Champ1],17),10))) AS DateJ," _ & "Max(IIf([ID]=9,Right([Champ1],8))) AS Heure, Max(IIf([ID]=15,Right([Champ1],6))) AS CodPro," _ & "Max(IIf([ID]=43,Right(Left$([Champ1],30),9))) AS Pds_insuf, Max(IIf([ID]=45,Right(Left$([Champ1],30),9))) AS Pds_Acc" _ & "FROM tdf.name;" DoCmd.RunSQL strSQL End If Next MsgBox ("terminé") End Sub
Partager