Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/03/2011, 15h59   #1
Membre à l'essai
 
Inscription : octobre 2004
Messages : 84
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : octobre 2004
Messages : 84
Points : 21
Points : 21
Par défaut SQL import CSV

Bonjour,

Existe-il une requete SQL qui permette d'importer un fichier CSV dans une table.
La table est déjà définie, le fichier CSV a la même structure.

Les méthodes vba qui inserent 1 à 1 chaque lignes ne sont pas performantes et je ne désire pas faire des tables liées (je suis exigent non? )

Merci

Olivier
zitoune92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2011, 17h59   #2
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Bonjour Zitoune92,

Regardes, plutôt, du côté des macros, l'instruction : TransférerFeuilleCalcul.

Renseignes les éléments en bas de la fenêtre, c'est compréhensible.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2011, 18h06   #3
Nouveau Membre du Club
 
Inscription : août 2003
Messages : 163
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 163
Points : 31
Points : 31
SAlut

Moi, j'ai lier le fichier avec access et j'ai fait une requête ajout de donnée dans la table.

Tu c'est faire un lie un fichier?
__________________
Commandeur
Commandeur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2011, 18h49   #4
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Bonjour,

Citation:
Envoyé par Commandeur
Moi, j'ai lier le fichier avec access et j'ai fait une requête ajout de donnée dans la table.
==> cela fonctionne bien également, mais ce n'est pas conforme au "cahier des charges" :

Citation:
Envoyé par Zitoune92
.../...je ne désire pas faire des tables liées.../...
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 15h12   #5
Membre à l'essai
 
Inscription : octobre 2004
Messages : 84
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : octobre 2004
Messages : 84
Points : 21
Points : 21
Citation:
Envoyé par Richard_35 Voir le message
Bonjour Zitoune92,

Regardes, plutôt, du côté des macros, l'instruction : TransférerFeuilleCalcul.

Renseignes les éléments en bas de la fenêtre, c'est compréhensible.
Ah oui, j'ai oublié de préciser que les macros ne sont pas autorisées; du SQL seulement et pour les bases Access (pas de SQL server qui a une instruction pour faire ça)

Merci
zitoune92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 16h08   #6
Membre éprouvé
 
Avatar de dumas.blr
 
Homme Jean-Yves DUMAS
Consultant informatique
Inscription : juin 2010
Messages : 325
Détails du profil
Informations personnelles :
Nom : Homme Jean-Yves DUMAS
Âge : 48
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : juin 2010
Messages : 325
Points : 447
Points : 447
Dans ce cas, tu ne pourras pas le faire,

As-tu le droit d'exécuter du code VBA dans don appli ?
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!
si tout est OK, n'oubliez pas de cliquer sur
dumas.blr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 16h14   #7
Membre éprouvé
 
Avatar de dumas.blr
 
Homme Jean-Yves DUMAS
Consultant informatique
Inscription : juin 2010
Messages : 325
Détails du profil
Informations personnelles :
Nom : Homme Jean-Yves DUMAS
Âge : 48
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : juin 2010
Messages : 325
Points : 447
Points : 447
autre possibilité, mais c'est plutôt "bidouille" ...

Au lieu de lier la table, tu la crée, et après la recopie, tu la supprimes...
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!
si tout est OK, n'oubliez pas de cliquer sur
dumas.blr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 19h18   #8
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonsoir,

Essaie un truc dans ce genre
Code :
1
2
3
SELECT MessagersTxt.[N° messager], MessagersTxt.[Nom du messager], MessagersTxt.Téléphone
INTO Messagers
FROM [Messagers#txt] AS MessagersTxt IN '' [Text;FMT=Delimited;HDR=YES;IMEX=2;CharacterSet=1252;Database=C:\Dossier1\Dossier2];
Dans cet exemple la table Messagers est créée à partir du fichier Messagers.txt (Messagers#txt) se trouvant dans C:\Dossier1\Dossier2

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 15h33   #9
Membre à l'essai
 
Inscription : octobre 2004
Messages : 84
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : octobre 2004
Messages : 84
Points : 21
Points : 21
Citation:
Envoyé par LedZeppII Voir le message
Bonsoir,

Essaie un truc dans ce genre
Code :
1
2
3
SELECT MessagersTxt.[N° messager], MessagersTxt.[Nom du messager], MessagersTxt.Téléphone
INTO Messagers
FROM [Messagers#txt] AS MessagersTxt IN '' [Text;FMT=Delimited;HDR=YES;IMEX=2;CharacterSet=1252;Database=C:\Dossier1\Dossier2];
Dans cet exemple la table Messagers est créée à partir du fichier Messagers.txt (Messagers#txt) se trouvant dans C:\Dossier1\Dossier2

A+

ça marche super ! un grand Merci LedZeppII
Aller, pour faire mon chieur :
1: les delimiteurs en "Tab" semblent ne pas fonctionner
2: dois-je obligatoirement inclure les headers dans mon fichier texte ? (j'ai essayé de mettre HDR=NO mais du coup il me demande d'entrer MessagersTxt.[N° messager], MessagersTxt.[Nom du messager] puis MessagersTxt.Téléphone)


Pour le point 2, j'ai testé:
Code :
1
2
3
SELECT MessagersTxt.*
INTO Messagers
FROM [Messagers#txt] AS MessagersTxt IN '' [Text;FMT=Delimited;HDR=NO;IMEX=2;CharacterSet=1252;Database=C:\Dossier1\Dossier2];
et ça marche !

Reste le point 1
zitoune92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 15h38   #10
Membre à l'essai
 
Inscription : octobre 2004
Messages : 84
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : octobre 2004
Messages : 84
Points : 21
Points : 21
Citation:
Envoyé par dumas.blr Voir le message
Dans ce cas, tu ne pourras pas le faire,

As-tu le droit d'exécuter du code VBA dans don appli ?
En fait je cherchais une solution SQL/Access car je ne travaille pas sous Access (Delphi avec base MDB/Jet)

Merci
zitoune92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 22h12   #11
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonsoir,
Citation:
Envoyé par zitoune92 Voir le message
1: les delimiteurs en "Tab" semblent ne pas fonctionner
On ne peut pas spécifier le délimiteur.
On peut juste spécifier si le fichier est de type délimité ou de type largeur fixe.
Et de le cas où il est en largeur fixe, il faut une spécification d'importation (que l'on ne peut créer qu'avec le logiciel Access via un assistant).
Pour un fichier délimité, c'est le délimiteur de champ par défaut, défini dans la base de registre, qui est utilisé.
Pour utiliser autre chose je pense qu'il faut avoir recours à un fichier schema.ini.
Le fichier schema.ini doit être dans le même dossier que le fichier délimité.
schema.ini pour fichier texte Messagers.tab :
Code :
1
2
3
4
5
[Messagers.tab]
ColNameHeader=True
Format=TabDelimited
MaxScanRows=20
CharacterSet=1252
Requête SELECT
Code :
1
2
SELECT T.*
FROM [Messagers#tab] AS T IN '' [Text;Database=C:\Dossier1\Dossier2];
Citation:
Envoyé par zitoune92 Voir le message
2: dois-je obligatoirement inclure les headers dans mon fichier texte ? (j'ai essayé de mettre HDR=NO mais du coup il me demande d'entrer MessagersTxt.[N° messager], MessagersTxt.[Nom du messager] puis MessagersTxt.Téléphone)
S'il n'y a pas de ligne d'en-tête de colonnes, les champs s'appelleront F1, F2, F3, ...

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 22h33   #12
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Par défaut schema.ini

Pour voir tous les mot-clés utilisables dans schema.ini : Initializing the Text Data Source Driver
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 09h28   #13
Membre à l'essai
 
Inscription : octobre 2004
Messages : 84
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : octobre 2004
Messages : 84
Points : 21
Points : 21
Citation:
Envoyé par LedZeppII Voir le message
Pour voir tous les mot-clés utilisables dans schema.ini : Initializing the Text Data Source Driver

Merci de ton aide précieuse. Crois moi que j'ai cherché avant...(peut être mal mais quand même)


<MODE Honte>
En cherchant des examples de prog Delphi pour créer des schema.ini, je viens de tomber sur le post de Laurent Dardenne:
http://delphi.developpez.com/faq/?page=access
qui parle de ça. Preuve que je cherche mal...
</MODE Honte>
zitoune92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 12h52   #14
Membre habitué
 
Inscription : janvier 2006
Messages : 317
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 317
Points : 106
Points : 106
Merci à LedZeppII,

A la recherche d'infos sur le fichier schema.ini découvert en utilisant Transfertext (délimité), j'ai trouvé cette discussion qui date de plusieurs mois, mais d'actualité pour moi !

J'ai un fichier txt délimité par point-virgule et lors du transfert, chaque ligne se place en entier dans la première colonne de la table de destination.

Je souhaiterais done créer un fichier schema.ini ad-hoc.

Pas moyen de trouver dans ma machine le fichier ini en question.
Il y en a un dans C:\program files\H... P...\...; mias il ne concerne que le phonebook.
Où se cache le fichier pour access ?
Pour voir comment il est bêti et le copier pour mes besoins actuels.
Merci de votre aide
Amitiés
AndréPe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2011, 15h29   #15
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,
Citation:
Envoyé par AndréPe Voir le message
J'ai un fichier txt délimité par point-virgule et lors du transfert, chaque ligne se place en entier dans la première colonne de la table de destination.
Et si tu crées une spécification d'importation, dans laquelle tu définis le point-virgule comme délimiteur ?


Citation:
Envoyé par AndréPe Voir le message
Pas moyen de trouver dans ma machine le fichier ini en question.
Il y en a un dans C:\program files\H... P...\...; mias il ne concerne que le phonebook.
Où se cache le fichier pour access ?
Pour voir comment il est bâti et le copier pour mes besoins actuels.
Le fichier schema.ini n'est pas propre à Access. Il en faut un par dossier.
Pour le pilote texte, un dossier est une base de données, un fichier texte est une table.
Le fichier schema.ini contient une ou plusieurs spécifications de fichiers textes.
Chaque spécification débute par le nom du fichier texte, entre crochets droits.
Code :
1
2
3
4
5
[fichier 1.txt]
...

[fichier 2.txt]
...

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/07/2011, 16h21   #16
Membre habitué
 
Inscription : janvier 2006
Messages : 317
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 317
Points : 106
Points : 106
Merci de ton idée.
J'ai créé une spécification d'importation avec l'assistant en lui donnant le nom original "MaSpec", sauvegardée avec l'assistant dans une partition de mon DD.
J'ai employé ce nom dans transfertext et ça fonctionne bien.

Mais où est donc passée cette spécification ?
Je ne la retrouve pas dans le répertoire où l'assistant dit l'avoir sauvegardé !

C'est uniquement de la curiosité....
Amitiés
AndréPe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2011, 17h00   #17
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Salut,

C'est plus simple d'utiliser les spécifications d'import/export d'Access, plutôt que le fichier schema.ini.

Citation:
Envoyé par AndréPe Voir le message
Mais où est donc passée cette spécification ?
Elle est enregistrée dans la base de données.
Dans les tables systèmes MSysIMEXSpecs et MSysIMEXColumns.

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/07/2011, 11h31   #18
Membre habitué
 
Inscription : janvier 2006
Messages : 317
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 317
Points : 106
Points : 106
Je viens d'apprendre encore quelque chose !
Merci à tous
Amicalement
AndréPe est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h32.


 
 
 
 
Partenaires

Hébergement Web