OVH Cloud OVH Cloud

Délai d'un import dans Access

1 réponse
Avatar
Bruno
Bonjour,
Je fais un pg VB6 qui attaque un fichier CSV et une base=20
Access.

Dim Access As Access.Application
Dim BaseAccess As Database
Dim Requete As String

Access.DoCmd.TransferText acImportDelim, "Format=20
d'importation", "Table_Tempo", "D:\Test.csv", False

Requete =3D "INSERT INTO Table_Finale (Champ1, Champ2,=20
Champ3) "
Requete =3D Requete & "SELECT 'Id', Champ1, Champ2 "
Requete =3D Requete & "FROM Table_Tempo"
BaseAccess.Execute Requete

Requete =3D "DELETE * FROM Table_Tempo"
BaseAccess.Execute Requete

J'ai le soucis suivant :

Quand je le lance en pas =E0 pas, =E7a marche nickel. Quand je=20
le lance normalement rien n'est ins=E9r=E9 dans ma table=20
finale.

J'ai l'impression que =E7a va tellement vite que Access n'a=20
pas le temps de mettre =E0 jour l'import dans la table tempo=20
que le pg VB est d=E9j=E0 pass=E9 =E0 la suite donc mon select ne=20
me retourne rien et je n'ins=E8re rien dans la table finale.

Quelqu'un aurait une solution autre que de faire un timer=20
de plusieurs dizaines de secondes (je ne sais jamais=20
combien j'ai de ligne dans mon fichier CSV) ???

Merci.

1 réponse

Avatar
benak
Bojour bruno,

j'ai peut etre une solution pour toi qui serait de tester si le fichier est
toujours ouvert ou non en fait tant que le fichier est ouvert l'importation
se fait quand l'import est fini le fichier est fermer et la tu peux commencer
à executer le reste de ton programme.

j'ai aussi une chose à te demander, j'ai remarqué que dans ton programme tu
arrivais à utiliser des fonction d'access comme docmd.transfertext dont j'ai
justement besoin pourrais tu stp m'expliquer ta methode en détail en fait
comment tu fais pour créer un type access.application

cordialement

a bientot

"Bruno" a écrit :

Bonjour,
Je fais un pg VB6 qui attaque un fichier CSV et une base
Access.

Dim Access As Access.Application
Dim BaseAccess As Database
Dim Requete As String

Access.DoCmd.TransferText acImportDelim, "Format
d'importation", "Table_Tempo", "D:Test.csv", False

Requete = "INSERT INTO Table_Finale (Champ1, Champ2,
Champ3) "
Requete = Requete & "SELECT 'Id', Champ1, Champ2 "
Requete = Requete & "FROM Table_Tempo"
BaseAccess.Execute Requete

Requete = "DELETE * FROM Table_Tempo"
BaseAccess.Execute Requete

J'ai le soucis suivant :

Quand je le lance en pas à pas, ça marche nickel. Quand je
le lance normalement rien n'est inséré dans ma table
finale.

J'ai l'impression que ça va tellement vite que Access n'a
pas le temps de mettre à jour l'import dans la table tempo
que le pg VB est déjà passé à la suite donc mon select ne
me retourne rien et je n'insère rien dans la table finale.

Quelqu'un aurait une solution autre que de faire un timer
de plusieurs dizaines de secondes (je ne sais jamais
combien j'ai de ligne dans mon fichier CSV) ???

Merci.