| 2 blux, le 12 fév 2007 à 17:20:48Salut,
il faut déjà commencer par créer un format d'importation (menu fichier/données externes/importer, aller dans la procédure et enregistrer le format d'import). C'est le truc le plus ch... à faire car il faut presque aller au bout de la procédure...
On peut ensuite récupérer le contenu d'un fichier et le mettre dans une table avec : DoCmd.TransferText acImportDelim, "nom_du_format_d_import", "nom_de_la_table_destination", "c:\monfichier.txt" Ca irait ?
A+ Blux "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait" Répondre à blux | 3 _goni, le 12 fév 2007 à 17:53:12En fait, l'idéal serait que ce soit entièrement automatisé donc aucune manip manuel du fichier text. C'est possible ?
Benoit.
Enlèves tes doigts sales de mon clavier. Répondre à _goni |
| 4 blux, le 13 fév 2007 à 08:38:14C'est ce que j'ai dit, ou alors je n'ai pas été clair...
- tu crées un format d'import, et tu l'enregistres, une fois pour toutes
- tu t'en sers avec du VBA autat de fois que tu veux
Pas de manipulation du fichier texte...
Ca te va ? Ou j'ai rien compris... :-)
A+ Blux "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait" Répondre à blux | 5 _goni, le 13 fév 2007 à 09:25:37Salut,
J'avais pas compris le coté permanant de la manip à effectuer. Je vais mettre ca en place ce matin. En tout cas, je te remercie pour ton aide et je te tiens au courant
Benoit.
Enlèves tes doigts sales de mon clavier. Répondre à _goni |
| 6 _goni, le 13 fév 2007 à 10:13:31Je n'arrive pas à créer un format d'importation. Sais tu ou je peux trouver la marche à suivre ? Je cherche sur Goofle en meme temps
Benoit.
Enlèves tes doigts sales de mon clavier. Répondre à _goni |
| 7 blux, le 13 fév 2007 à 10:35:41- Fichier/données externes/importer
- tu choisis ton fichier .txt sur disque
- il t'ouvre l'assistant d'importation
- et là, tu cliques sur 'avancé'
- tu saisis tes paramètres (séparateurs, type de données, champs à ne pas importer...)
- tu cliques sur 'enregistrer sous', tu donnes un nom
- tu reprends le nom dans ton VBA
Si tu souhaites ensuite réouvrir/modifier/renommer le format d'import, tu cliques sur le bouton 'paramètres' quand tu es dans les spécifications...
A+ Blux "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait" Répondre à blux | 8 _goni, le 13 fév 2007 à 10:47:34Le problème c'est qu'il ne m'ouvre pas l'assistant.
Benoit.
Enlèves tes doigts sales de mon clavier. Répondre à _goni |
| 9 blux, le 13 fév 2007 à 10:58:04Réinstaller ACCESS avec les assistants par défaut ?
A+ Blux "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait" Répondre à blux |
| 10 _goni, le 13 fév 2007 à 11:01:30Je peux pas, c'est ma boite qui gère l'installation d'access et ça leur prendrait deux semaines pour me faire ça.
Benoit.
Enlèves tes doigts sales de mon clavier. Répondre à _goni |
| 12 _goni, le 13 fév 2007 à 11:35:46Si je te donne un exemple de fichier texte, pourais tu me guider dans ma démarche ?
Disons que mon fichier texte s'appel : bal_GL_IFRS_passif_bilan_provision.txt
et ce fichier ce present sous la forme suivante : EXERCICE;MEGA ENTITE;COMPTE ASSOCIE;Nom COMPTE ASSOCIE;PRODUIT Cnp;Nom PRODUIT;TARIF Cnp;ETAT Cnp;Solde N 12 avec 998 BASE (R+P)
Le séparateur de champ est le ";"
Benoit.
Enlèves tes doigts sales de mon clavier. Répondre à _goni |
| 13 _goni, le 13 fév 2007 à 11:42:01J'aimerais bien comprendre ce que je fais en fait. Et sur tes liens, je ne capte rien.
Benoit.
Enlèves tes doigts sales de mon clavier. Répondre à _goni |
| 14 blux, le 13 fév 2007 à 12:27:55Ben on décrit comment est le fichier :
[Import_MonFichier.txt]
ColNameHeader = False
CharacterSet = ANSI
Format = delimited(;)
Col1="exercice" integer width 4
Col2="mega entite" char width 50
Col3="compte associe" integer width 8
etc etc...
Ici :
- pas d'entête de colonne
- codage ANSI
- format délimité avec ; comme séparateur
- description de chaque colonne (nom, type, taille)
Et pour l'import tu fais une requête...
http://www.vbfrance.com/...
A+ Blux "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait" Répondre à blux |
| 15 _goni, le 13 fév 2007 à 13:47:39Voila ce que j’ai fais
.
Shema.ini :
[Import_MonFichier.txt]
ColNameHeader = False
CharacterSet = ANSI
Format = delimited(;)
Col1="EXERCICE" integer width 4
Col2="MEGA ENTITE" char width 50
Col3="COMPTE ASSOCIE" char width 50
Col4="Nom COMPTE ASSOCIE" char width 50
Col5="PRODUIT Cnp" char width 50
Col6="Nom PRODUIT" char width 50
Col7="TARIF Cnp" char width 50
Col8="ETAT Cnp" char width 50
Col9="Solde N 12 avec 998 BASE (R+P)" char width 50
Code d’exécution :
Set db = CurrentDb()
db.Execute _
"SELECT * INTO " & maTable & " FROM [Text;;;DATABASE=B:\A\B\FC\APPLI_FC25\Appli annexe IFRS;].[bal_GL_IFRS_passif_bilan_provision.txt];", _
dbFailOnError
db.TableDefs.Refresh
Erreur :
Erreur d'exécution '3141':
Dans l'instruction SELECT, un mot réservé ou un argument est mal orthographié ou absent, ou la ponctuation est incorrecte
Je ne vois pas trop ce que je fais de mal.
Benoit.
Enlèves tes doigts sales de mon clavier. Répondre à _goni | 16 blux, le 13 fév 2007 à 15:21:35Je verrais bien un loup avec :
[Text;;;DATABASE="B:\A\B\FC\APPLI_FC25\Appl...
Je remplacerais par :
[Text;;;DATABASE=B:\A\B\FC\APPLI_FC25\Appli annexe\bal_GL_IFRS_passif_bilan_provision.txt";]
ou un truc comme ça, voire une chaine qui contient le nom du fichier, pour ne pas avoir à gérer les "
Str = "B:\A\B\FC\APPLI_FC25\Appli annexe\bal_GL_IFRS_passif_bilan_provision.txt"
[Text;;;DATABASE=" & Str & ";]"
A+ Blux "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait" Répondre à blux |
| 17 _goni, le 13 fév 2007 à 15:40:13Je tombe à ce moment la sur une erreur :
Erreur d'exécution '3078':
Le moteur de base de données Microsoft Jet ne peut pas trouver la table ou la requête source 'False'. Assurez-vous qu'elle existe et qu'elle est correctement orthographiée.
Benoit.
Enlèves tes doigts sales de mon clavier. Répondre à _goni | 19 _goni, le 13 fév 2007 à 15:54:52Le code :
Dim Str As String
Set db = CurrentDb()
db.Execute _
Str = "B:\A\B\FC\APPLI_FC25\Appli annexe\bal_GL_IFRS_passif_bilan_provision.txt"
[Text;;;DATABASE=" & Str & ";] " "
db.TableDefs.Refresh
Le .ini :
[Import_MonFichier.txt]
ColNameHeader = "False"
CharacterSet = ANSI
Format = delimited(;)
textDelimiter="none"
Col1="EXERCICE" char width 50
Col2="MEGA ENTITE" char width 50
Col3="COMPTE ASSOCIE" char width 50
Col4="Nom COMPTE ASSOCIE" char width 50
Col5="PRODUIT Cnp" char width 50
Col6="Nom PRODUIT" char width 50
Col7="TARIF Cnp" char width 50
Col8="ETAT Cnp" char width 50
Col9="Solde N 12 avec 998 BASE (R+P)" char width 50
Benoit.
Enlèves tes doigts sales de mon clavier. Répondre à _goni |
| 20 blux, le 13 fév 2007 à 16:03:55Ca ne peut pas marcher, tu n'as pas de select et le nom du fichier doit être dans le schema.ini... Dim Str As String
Str = "B:\A\B\FC\APPLI_FC25\Appli annexe\bal_GL_IFRS_passif_bilan_provision.txt"
Set db = CurrentDb()
db.Execute _
"SELECT * INTO " & maTable & " FROM [Text;;;DATABASE=" & str &"];", _
dbFailOnError
db.TableDefs.Refresh
A+ Blux "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait" Répondre à blux |
| 21 _goni, le 13 fév 2007 à 16:15:46Je retombe sur l'erreur précédente :
Erreur d'exécution '3141':
Dans l'instruction SELECT, un mot réservé ou un argument est mal orthographié ou absent, ou la ponctuation est incorrecte
Benoit.
Enlèves tes doigts sales de mon clavier. Répondre à _goni |
| 22 blux, le 13 fév 2007 à 16:43:22Dim Str As String
Str = "B:\A\B\FC\APPLI_FC25\Appli annexe IFRS;].[bal_GL_IFRS_passif_bilan_provision.txt];"
Set db = CurrentDb()
db.Execute _
"SELECT * INTO " & maTable & " FROM [Text;;;DATABASE=" & str , _
dbFailOnError
db.TableDefs.Refresh Avec le nom du fichier dans schema.ini
A+ Blux "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait" Répondre à blux | 23 _goni, le 13 fév 2007 à 16:47:05Toujours la même erreur.
schema.ini :
[bal_GL_IFRS_passif_bilan_provision.txt]
ColNameHeader = "False"
CharacterSet = ANSI
Format = delimited(;)
textDelimiter="none"
Col1="EXERCICE" char width 50
Col2="MEGA ENTITE" char width 50
Col3="COMPTE ASSOCIE" char width 50
Col4="Nom COMPTE ASSOCIE" char width 50
Col5="PRODUIT Cnp" char width 50
Col6="Nom PRODUIT" char width 50
Col7="TARIF Cnp" char width 50
Col8="ETAT Cnp" char width 50
Col9="Solde N 12 avec 998 BASE (R+P)" char width 50
Benoit.
Enlèves tes doigts sales de mon clavier. Répondre à _goni |
| 24 blux, le 13 fév 2007 à 16:49:50Je sèche...
A+ Blux "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait" Répondre à blux | 25 _goni, le 13 fév 2007 à 16:53:26Tu sèche tout de même bien après moi.
Je te remercie pour tout ce temps que tu viens de passer pour moi. C'est vraiment cool et ça m'avance déjà beaucoup.
Merci.
Benoit.
Enlèves tes doigts sales de mon clavier. Répondre à _goni |
| 26 blux, le 13 fév 2007 à 17:19:55J'aime pas rester sur un échec..
J'ai testé chez moi, c'est les ordres sql qui vont pas !!! J'ai pas regardé assez finement : db.Execute "INSERT INTO import SELECT * FROM [Text;;;DATABASE=C:\Documents and Settings\moi\Mes documents;].[import.txt];", dbFailOnError
Ca marche nickel !
A+ Blux "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait" Répondre à blux | 27 _goni, le 13 fév 2007 à 17:30:00Je dirais juste qu'il n'y a pas assé de mecs comme toi.
Peace et merci
Benoit.
Enlèves tes doigts sales de mon clavier. Répondre à _goni |
|
|
|
|
|
|
|
|