OVH Cloud OVH Cloud

Automatisation d'importation de données

23 réponses
Avatar
Txl
Bonjour =E0 tous,

Sous Access 2003 j'utilise la fonction d'importation de donn=E9es pour
rentrer du texte dans une base.

J'ai r=E9ussi =E0 faire un mod=E8le d'importation mais il n'est pas complet=
,
je veux =E0 chaque fois importer les donn=E9es dans la meme table dont les
donn=E9es seraient effac=E9es auparavant.

J'ai une requete de suppression des donn=E9es qui marche tr=E8s bien (je
la lance avec une macro) mais je n'arrive pas =E0 automatiser
l'importation, il veut toujours importer dans une nouvelle table et il
faut =E0 chaque fois que j'aille cliquer dans la liste d=E9roulante des
tables pour lui dire d'importer dans l'existante.

Est-ce qu'il existe une astuce pour ca ?

Dans l'absolu je voudrais un bouton qui me lance la proc=E9dure
d'importation, qui m'ouvre l'explorateur windows pour s=E9lectionner le
fichier texte que je veux importer et qui fasse tout le travail tout
seul.

Merci d'avance de votre aide

10 réponses

1 2 3
Avatar
3stone
Salut,

"Txl"
> J'ai fait mon mod le, que j'ai appel "GPS", ma table s'appele
> "tblspeed" et donc j'ai fait un bouton dans un form qui me lance le
> cde siivant

> DoCmd.TransferText acImportDelim, "GPS", "tblspeed"

> Et j'ai une erreur 2522 qui me dit que la m thode requiert un argument
> 'nom fichier'

> Je me suis tromp ou ?

Dis, comment est configur ton Access ? ? ;-)

Tu ne dispose pas de l'intellisense ?
Cette m thode qui d s les premi res frappes, te pr sente les param tres et les valeurs possibles ?

docmd.TransferText,"gps","tblspeed","montexte.txt"

Hmmm ?

;-)

--
A+
Pierre (3stone) Access MVP
Perso:http://www.3stone.be/
MPFA:http://www.mpfa.info/ (infos g n rales)



Ben euuuu :)

J'ai un access 2003 (parce que la bande de menu 2K7 et 2K10 je peux
pas la supporter) "normal" je pense...


Le "intellisense" existait déjà dans Access 97 ;-)


Pour le fichier .txt que je voudrais importer en fait il faudrait que
le bouton ouvre la fenetre de selection de fichier parce que les
fichiers n'ont jamais le meme nom vu que le nom du fichier dépend de
l'heure à laquelle il est généré.

Pour sélectionner un fichier, il existe une série de méthodes dont celle-ci :
http://www.3stone.be/access/articles.php?lng=fr&pg3

Est-ce que je peux farfouiller dans la base pour trouver un bout de
code qui pourrait expliquer ou est le problème ?

tu veux quoi ? farfouiller ou ?


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
Txl
On May 27, 2:38 pm, "3stone" wrote:
Salut,

"Txl"





> > J'ai fait mon mod le, que j'ai appel "GPS", ma table s'appele
> > "tblspeed" et donc j'ai fait un bouton dans un form qui me lance le
> > cde siivant

> > DoCmd.TransferText acImportDelim, "GPS", "tblspeed"

> > Et j'ai une erreur 2522 qui me dit que la m thode requiert un argumen t
> > 'nom fichier'

> > Je me suis tromp ou ?

> Dis, comment est configur ton Access ? ? ;-)

> Tu ne dispose pas de l'intellisense ?
> Cette m thode qui d s les premi res frappes, te pr sente les param tres et les valeurs possibles ?

> docmd.TransferText,"gps","tblspeed","montexte.txt"

> Hmmm ?

> ;-)

> --
> A+
> Pierre (3stone) Access MVP
> Perso:http://www.3stone.be/
> MPFA:http://www.mpfa.info/(infos g n rales)

Ben euuuu :)

J'ai un access 2003 (parce que la bande de menu 2K7 et 2K10 je peux
pas la supporter) "normal" je pense...

    Le "intellisense" existait d j dans Access 97 ;-)

Pour le fichier .txt que je voudrais importer en fait il faudrait que
le bouton ouvre la fenetre de selection de fichier parce que les
fichiers n'ont jamais le meme nom vu que le nom du fichier d pend de
l'heure laquelle il est g n r .

    Pour s lectionner un fichier, il existe une s rie de m thodes don t celle-ci :
   http://www.3stone.be/access/articles.php?lng=fr&pg3

Est-ce que je peux farfouiller dans la base pour trouver un bout de
code qui pourrait expliquer ou est le probl me ?

    tu veux quoi ?  farfouiller ou ?

--
A+
Pierre (3stone) Access MVP
Perso:http://www.3stone.be/
MPFA:http://www.mpfa.info/ (infos g n rales)



Ah, donc le intellisense c'est le machin qui complète les docmd. dans
l'éediteur VBA :) J'ai encore appris un truc ajourd'(hui, merci
Pierre.

BOn, j'ai mis ton code que j'ai modifié pour ne rentrer que des
fichiers txt et bien sur je pense que je l'ai pas mis au bon endroit
parce que j'ai tout de suite une erreur...

Private Sub Commande3_Click()
Function fOpenFiles() As String
'Nécessite la référence microsoft office x.x object library
Dim Dialogue As FileDialog
Dim Fichier As Variant
Set Dialogue = FileDialog(msoFileDialogOpen)
With Dialogue
.AllowMultiSelect = False
.ButtonName = "Load"
.InitialFileName = "*.txt"
.Filters.Clear
.InitialView = msoFileDialogViewList
.title = "Choose speed file ..."
If .Show Then
For Each Fichier In .SelectedItems
fOpenFiles = fOpenFiles & Fichier & ";"
Next
End If
End With
If Len(fOpenFiles) > 0 Then
fOpenFiles = Left(fOpenFiles, Len(fOpenFiles) - 1)
End If
Set Dialogue = Nothing
End Function
DoCmd.TransferText , "gps", "tblspeed", Fichier
End Function


Merci d'avance

Signé : Le boulet
Avatar
Gloops
Txl a écrit, le 27/05/2011 16:40 :
Set Dialogue = FileDialog(msoFileDialogOpen)
With Dialogue
.AllowMultiSelect = False
.ButtonName = "Load"
.InitialFileName = "*.txt"
.Filters.Clear



Bonjour,

Je n'ai rien pour tester là maintenant, mais ça ne me plaît pas, ce que
je vois, là.
"*.txt", ce n'est pas un nom de fichier.
Je verrais plutôt
.InitialFileName = ""
.Filters = "Fichiers texte (*.txt)" + Chr$(0) + "*.txt"


Attention, selon les versions, à la place du caractère nul c'est un
point-virgule qu'il faut mettre.

Il ne me semble pas qu'il soit nécessaire d'en mettre un autre à la f in
de la liste de filtres ?

Par ailleurs, il y a un truc pas très cohérent : tu mets
AllowMultiSelect = False, alors que tu codes une usine à gaz à la s ortie
pour exploiter plusieurs fichiers sélectionnés.

Psst, quand tu dis que tu as une erreur, ça peut toujours servir de dir e
laquelle ... ;)
Avatar
3stone
Salut,

Txl wrote:
[...]
BOn, j'ai mis ton code que j'ai modifié pour ne rentrer que des
fichiers txt et bien sur je pense que je l'ai pas mis au bon endroit
parce que j'ai tout de suite une erreur...




Et il y a vraiment une bonne raison :-))


Private Sub Commande3_Click()
Function fOpenFiles() As String
'Nécessite la référence microsoft office x.x object library
Dim Dialogue As FileDialog
Dim Fichier As Variant
Set Dialogue = FileDialog(msoFileDialogOpen)
With Dialogue
.AllowMultiSelect = False
.ButtonName = "Load"
.InitialFileName = "*.txt"
.Filters.Clear
.InitialView = msoFileDialogViewList
.title = "Choose speed file ..."
If .Show Then
For Each Fichier In .SelectedItems
fOpenFiles = fOpenFiles & Fichier & ";"
Next
End If
End With
If Len(fOpenFiles) > 0 Then
fOpenFiles = Left(fOpenFiles, Len(fOpenFiles) - 1)
End If
Set Dialogue = Nothing
End Function
DoCmd.TransferText , "gps", "tblspeed", Fichier
End Function




Bon, ton Commande3_Click est un bouton, c'est ca ?
Donc, tu commence par placer la fonction dans un module
général... via le menu Insertion, Module !
tu colles le code, tu compiles (Débogage, Compiler DB)
tu sauve sous un nom style "mod_gestion_fichier".

Ensuite, tu reviens à ton bouton, et tu écris entre les
deux lignes :


Private Sub Commande3_Click()
dim sFichier as String
sFichier = fOpenFiles()
DoCmd.TransferText, "gps", "tblspeed", sFichier
End Sub

Tu compiles pour t'assurer que tu n'as pas d'erreur de saisie
et hop...


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
3stone
Salut Gloops ;-)

Gloops wrote:
Txl a écrit, le 27/05/2011 16:40 :
Set Dialogue = FileDialog(msoFileDialogOpen)
With Dialogue
.AllowMultiSelect = False
.ButtonName = "Load"
.InitialFileName = "*.txt"
.Filters.Clear



Bonjour,

Je n'ai rien pour tester là maintenant, mais ça ne me plaît pas, ce
que je vois, là.



cela ne doit pas te plaire, mais être correct... et cela l'est !

"*.txt", ce n'est pas un nom de fichier.
Je verrais plutôt
.InitialFileName = ""
.Filters = "Fichiers texte (*.txt)" + Chr$(0) + "*.txt"




c'est quoi ce chinois ? tu as lu la fonction ?
tu as lu le fil pour savoir d'où vient la fonction ?
de plus, en VBA Access le signe de contaténation est le signe "&"




Attention, selon les versions, à la place du caractère nul c'est un
point-virgule qu'il faut mettre.




hein ?!?



Il ne me semble pas qu'il soit nécessaire d'en mettre un autre à la
fin de la liste de filtres ?

Par ailleurs, il y a un truc pas très cohérent : tu mets
AllowMultiSelect = False, alors que tu codes une usine à gaz à la
sortie pour exploiter plusieurs fichiers sélectionnés.



Cette fonction permet AUSSI la multi-sélection :-)

Trois pistes et trois erreurs... il ne s'en sortira jamais, le Txl :-))

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
Txl
J'ai déja assez de mal comme ca ha ha ha

Bon, j'ai fait le module de code mais quand je le compile j'ai une
erreur "type defini par l'utilisateur non defini" sur la ligne dim
dialogue as file dialog

Voila le code du module complet


Function fOpenFiles() As String
'Nécessite la référence microsoft office x.x object library
Dim Dialogue As FileDialog
Dim Fichier As Variant
Set Dialogue = FileDialog(msoFileDialogOpen)
With Dialogue
.AllowMultiSelect = False
.ButtonName = "Load"
.InitialFileName = "*.txt"
.Filters.Clear
.InitialView = msoFileDialogViewList
.title = "Choose speed file ..."
If .Show Then
For Each Fichier In .SelectedItems
fOpenFiles = fOpenFiles & Fichier & ";"
Next
End If
End With
If Len(fOpenFiles) > 0 Then
fOpenFiles = Left(fOpenFiles, Len(fOpenFiles) - 1)
End If
Set Dialogue = Nothing
End Function


Et le code du bouton...

Private Sub Commande3_Click()
Dim sFichier As String
sFichier = fOpenFiles()
DoCmd.TransferText , "gps", "tblspeed", sFichier
End Sub



Merci de votre aide à tous :)

PS : La F1 à Monaco c'était pas mal cette fois :)


Trois pistes et trois erreurs... il ne s'en sortira jamais, le Txl :-))

--
A+
Pierre (3stone) Access MVP
Perso:http://www.3stone.be/
MPFA:http://www.mpfa.info/ (infos générales)
Avatar
3stone
Salut,

"Txl"
Bon, j'ai fait le module de code mais quand je le compile j'ai une
erreur "type defini par l'utilisateur non defini" sur la ligne dim
dialogue as file dialog

Voila le code du module complet


Function fOpenFiles() As String
'Nécessite la référence microsoft office x.x object library
____________


Seconde ligne du module...

'Nécessite la référence microsoft office x.x object library

as-tu coché cette référence ?

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
Txl
On May 29, 5:57 pm, "3stone" wrote:
Salut,

"Txl"
Bon, j'ai fait le module de code mais quand je le compile j'ai une
erreur "type defini par l'utilisateur non defini" sur la ligne dim
dialogue as file dialog

Voila le code du module complet

Function fOpenFiles() As String
'Nécessite la référence microsoft office x.x object librar y
____________

Seconde ligne du module...

'Nécessite la référence microsoft office x.x object librar y

as-tu coché cette référence ?

--
A+
Pierre (3stone) Access MVP
Perso:http://www.3stone.be/
MPFA:http://www.mpfa.info/ (infos générales)



Donc évidemment la question suivante :)

Ca se vérifie ou ?

Ca me dit RIEN, mais alors RIEN du tout donc si c'est pas coché par
défaut je l'ai pas fait.

J'ai cherché dans l'éditeur VBA, dans access mais j'ai rien trouvé à
part que le module de compléments n'est pas installé chez moi...

Merci
Avatar
Txl
On May 29, 6:15 pm, Txl wrote:
On May 29, 5:57 pm, "3stone" wrote:





> Salut,

> "Txl"
> Bon, j'ai fait le module de code mais quand je le compile j'ai une
> erreur "type defini par l'utilisateur non defini" sur la ligne dim
> dialogue as file dialog

> Voila le code du module complet

> Function fOpenFiles() As String
> 'Nécessite la réfà ƒÂ©rence microsoft office x.x object library
> ____________

> Seconde ligne du module...

> 'Nécessite la réfà ƒÂ©rence microsoft office x.x object library

> as-tu coché cette réfà ƒÆ’Ã‚Â©rence ?

> --
> A+
> Pierre (3stone) Access MVP
> Perso:http://www.3stone.be/
> MPFA:http://www.mpfa.info/ (infos gén érales)

Donc évidemment la question suivante :)

Ca se vérifie ou ?

Ca me dit RIEN, mais alors RIEN du tout donc si c'est pas cochà© par
défaut je l'ai pas fait.

J'ai cherché dans l'éditeur VBA, dans access mais j 'ai rien trouvé à
part que le module de compléments n'est pas installà© chez moi...

Merci



En farfouillant sur google et sur le site de support de MS j'ai vu que
je n'ai RIEN d'installé, dans l'éditeur VBA dans outils le choix
référence est grisé...

Donc on change de question, comment j'installe les dll qu'il faut pour
avoir les références nécéssaires ?

Merci
Avatar
3stone
Salut,

Txl wrote:
On May 29, 5:57 pm, "3stone" wrote:
Salut,

"Txl"
Bon, j'ai fait le module de code mais quand je le compile j'ai une
erreur "type defini par l'utilisateur non defini" sur la ligne dim
dialogue as file dialog

Voila le code du module complet

Function fOpenFiles() As String
'Nécessite la référence microsoft office x.x object library
____________

Seconde ligne du module...

'Nécessite la référence microsoft office x.x object library

as-tu coché cette référence ?

--
A+
Pierre (3stone) Access MVP
Perso:http://www.3stone.be/
MPFA:http://www.mpfa.info/ (infos générales)



Donc évidemment la question suivante :)

Ca se vérifie ou ?

Ca me dit RIEN, mais alors RIEN du tout donc si c'est pas coché par
défaut je l'ai pas fait.

J'ai cherché dans l'éditeur VBA, dans access mais j'ai rien trouvé à
part que le module de compléments n'est pas installé chez moi...




Dans l'éditeur VBA, menu Outils, Références... tu cherches dans la liste.

Evidemment, il faut que MS-Office soit installé sur le poste, ce qui en
principe le cas lorsque l'on travaille avec Access.


PS: pour gagner une question...
tu te retrouve dans l'éditeur en ouvrant n'importe quel code VBA,
même celui créé par l'assistant qui pose un bouton ;-)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
1 2 3