OVH Cloud OVH Cloud

Import Texte et extension de fichier .txt

2 réponses
Avatar
Gripoil
Bonjour,

j'utilise la commande DoCmd.TransferText pour importer un fichier texte dans
ma base

A l'origine, le fichier texte (issu d'un système de requêtage interne à mon
entreprise) ne comporte pas d'extension ".txt", qu'il faut donc que je
rajoute manuellement.

J'ai remarqué que la commande TransfertText ne fonctionnait pas si on lui
donnait en argument un fichier texte sans extension ".txt". Est-ce que
quelq'un peut confirmer cela ?

Dans un soucis d'automatisation (je veux éviter le maximum d'actions
manuelles pour les utilisateurs), existe-t-il un moyen pour contourner ce
problème, et travailler donc directement sur ce fichier texte sans extension
.txt ?

J'ai toujours la solution de renommer le fichier via VBA mais j'aimerais
trouver plus simple (contrôles d'erreur : fichier existant avec le même nom,
etc...)

Merci pour vos réponses

2 réponses

Avatar
Raymond [mvp]
bonsoir.

tu peux très bien passer par les fonctions FileSystemObjects (si peu de
lignes) et passer par une copie du fichier en txt avec un nom qui ne peut
pas exister et écrasement du fichier, tout en conservant l'ancien fichier
sous son nom sans le txt:
(cocher la librairie Microsoft scripting Runtime)
Option Compare Database
Option Explicit

Dim fso As New filesystemobject
Dim Fso_File As File
Private Sub Commande0_Click()
On Error Resume Next
DoCmd.DeleteObject acTable, "Tablex"
If FileCopy("Table1", "Table1_Import.txt") Then
DoCmd.TransferText acImportDelim, , "Tablex", "Table1_Import.txt",
True
Else
MsgBox "erreur...."
End If
End Sub

Function FileCopy(PathName As String, NewPathName As String, Optional
OverWrite As Boolean = True) As Boolean
FileCopy = False
If Not fso.FileExists(PathName) Then Exit Function
If (fso.FileExists(NewPathName)) And (Not OverWrite) Then Exit Function
Set Fso_File = fso.GetFile(PathName)
Fso_File.Copy NewPathName, OverWrite
FileCopy = True
End Function


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Gripoil" a écrit dans le message de
news:40f2d374$0$9670$
Bonjour,

j'utilise la commande DoCmd.TransferText pour importer un fichier texte
dans

ma base

A l'origine, le fichier texte (issu d'un système de requêtage interne à
mon

entreprise) ne comporte pas d'extension ".txt", qu'il faut donc que je
rajoute manuellement.

J'ai remarqué que la commande TransfertText ne fonctionnait pas si on lui
donnait en argument un fichier texte sans extension ".txt". Est-ce que
quelq'un peut confirmer cela ?

Dans un soucis d'automatisation (je veux éviter le maximum d'actions
manuelles pour les utilisateurs), existe-t-il un moyen pour contourner ce
problème, et travailler donc directement sur ce fichier texte sans
extension

.txt ?

J'ai toujours la solution de renommer le fichier via VBA mais j'aimerais
trouver plus simple (contrôles d'erreur : fichier existant avec le même
nom,

etc...)

Merci pour vos réponses




Avatar
Gripoil
Ok merci, je vais essayer


"Raymond [mvp]" a écrit dans le message de
news:%
bonsoir.

tu peux très bien passer par les fonctions FileSystemObjects (si peu de
lignes) et passer par une copie du fichier en txt avec un nom qui ne peut
pas exister et écrasement du fichier, tout en conservant l'ancien fichier
sous son nom sans le txt:
(cocher la librairie Microsoft scripting Runtime)
Option Compare Database
Option Explicit

Dim fso As New filesystemobject
Dim Fso_File As File
Private Sub Commande0_Click()
On Error Resume Next
DoCmd.DeleteObject acTable, "Tablex"
If FileCopy("Table1", "Table1_Import.txt") Then
DoCmd.TransferText acImportDelim, , "Tablex", "Table1_Import.txt",
True
Else
MsgBox "erreur...."
End If
End Sub

Function FileCopy(PathName As String, NewPathName As String, Optional
OverWrite As Boolean = True) As Boolean
FileCopy = False
If Not fso.FileExists(PathName) Then Exit Function
If (fso.FileExists(NewPathName)) And (Not OverWrite) Then Exit
Function

Set Fso_File = fso.GetFile(PathName)
Fso_File.Copy NewPathName, OverWrite
FileCopy = True
End Function


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Gripoil" a écrit dans le message de
news:40f2d374$0$9670$
Bonjour,

j'utilise la commande DoCmd.TransferText pour importer un fichier texte
dans

ma base

A l'origine, le fichier texte (issu d'un système de requêtage interne à
mon

entreprise) ne comporte pas d'extension ".txt", qu'il faut donc que je
rajoute manuellement.

J'ai remarqué que la commande TransfertText ne fonctionnait pas si on
lui


donnait en argument un fichier texte sans extension ".txt". Est-ce que
quelq'un peut confirmer cela ?

Dans un soucis d'automatisation (je veux éviter le maximum d'actions
manuelles pour les utilisateurs), existe-t-il un moyen pour contourner
ce


problème, et travailler donc directement sur ce fichier texte sans
extension

.txt ?

J'ai toujours la solution de renommer le fichier via VBA mais j'aimerais
trouver plus simple (contrôles d'erreur : fichier existant avec le même
nom,

etc...)

Merci pour vos réponses