Access extraire table ds un fichier text/envo

Fermé
pitchounette - 21 oct. 2003 à 13:08
 snoop - 9 juin 2009 à 09:32
bonjour je souhaiterai avoir des renseignement pr ecrir un programme qui me permet de lire une table sous access ,une fois lue,de recopier cette derniere dans un fichier texte et d'envoyer ce fichier text a une personne.
j'airegardé l'aide mais j'aimerai avoir plus de renseignement sur la structure.
merci d'avance a ttes les personnes qui peuvent me repondre.
(urgent)
A voir également:

8 réponses

blux Messages postés 26543 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 21 décembre 2024 3 318
21 oct. 2003 à 17:33
Salut,

pour lire le contenu d'une table tu peux utiliser ce code :

Dim Db As Database
Dim Rs As Recordset
Dim StrSql As String
Set Db = CurrentDb
Set Rs = Db.OpenRecordset("Listes", dbOpenForwardOnly)
With Rs
Do While Not .EOF
If Rs!Nom_Liste = "toto" Then
MsgBox "La liste existe déjà !!!", vbCritical
GoTo Fin:
End If
.MoveNext
Loop
End With
Rs.Close
Rs.Close
Db.Close
Set Rs = Nothing
Set Db = Nothing
Fin:
End Sub

Le nom de la table à lire est "listes" et elle contient entre autres un champ nommé Nom_Liste.

Mais comme le recordset ne parcourt la table que ligne à ligne, il faut que tu insères à chaque lecture une écriture dans un fichier.

Pour ouvrir un fichier en écriture :
Ecr = FreeFile(0)
Open StrEcr For Output Access Write As #Ecr

Pour écrire dedans :
Print #Ecr, champ1,champ2...

Pour fermer :
Close #Ecr

Regarde l'aide, elle est bien faite pour les accès aux fichiers.

Pour l'envoi des données, deux solutions : tu crées un objet de type outlook et tu joues avec, ou tu récupères un contrôle ActiveX sur le net et tu le programmes pour attaquer directement ton serveur SMTP (solution bien plus élégante, un gratos que j'utilise et qui est là :
http://www.ostrosoft.com/smtp.asp )

Ca irait comme explications ?

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
1
Utilisateur anonyme
21 oct. 2003 à 13:30
Salut,

Tu dois procéder de la manière suivante:
A. Définir to format d'export:
1. Tu ouvre la table que tu veux exporter
2. Dans le menu File, tu choisis Save As/Export
3. Tu choisis comme type de fichier "Text"
4. Un dialogue apparaît dans le quel tu spécifies le format d'export
5. Tu cliques sur "Advanced" et tu sauvegardes ces spécifications

B. Das un form, tu crées un boutons auquel tu lies la commande suivante:
DoCmd.TransferText acExportFixed, Nom_de_tes_specs, Nom_de_ta_table, Nom_du_fichier_texte

Pour ce qui est de l'envoi par mail, je ne sais pas.

Rien n'est plus dangereux qu'une idée quand on a 
qu'une idée
  :-)
0
pitchounettedu95
21 oct. 2003 à 15:38
c'est gentil mais c pas vraiment ça que je veux c avec les
recordset,opendatbase......

merci pour ton aide ms si tu peu encore m'aider ça serait encore plus gentil.
ciao
0
bonjour,
je me permet de t'ecrire en direct parce que ta réponse me fait penser que tu as la sol à mon probleme

je prends un autre exemple pour que ce soit plus facile a expliquer:
j'ai une base access qui regroupe toutes les factures de tous mes clients.
je voudrais pour chaque client, exporter 1 fichier .txt qui regroupe toutes ses factures.
en gros, je fais un requete selection, j'isole un client, j'exporte le fichier .txt et je recommence pour le 2eme client et ainsi de suite. 250 fois la meme manip super simple.
je suis sure qu'il y a moyen de faire une macro simple pour automatiser tout ca mais je n'y connais rien en macro.
quelqu'un pourrait il m'aider SVP?
Merci beaucoup
jb
0
Utilisateur anonyme
21 oct. 2003 à 15:58
Je crois que tu n'as pas compris mon explication. Il est inutile d'utiliser Openddatabase ou recordset pour faire ce que tu veux. Une seule ligne de commande suffit à faire ce que tu désires (partie export).

Pour pouvoir exporter une table en VBA il faut que tu définisses préalablement ton format d'export. Tu utilises en suite ce format pour créer ton fichier texte.

Il est inutile d'ouvrir la table avec un Opendatabase ou Openrecordset. La commande Docmd.TransferText le fait sans aucun problème.

La table ne doit pas être lues pour être exportée.

Donc si tu crées un Form avec un bouton que tu nomes "Envoyer", cela donnera quelque chose comme ça:

Sub Envoyer_Click()

DoCmd.TransferText acExportFixed, Nom_de_tes_specs, Nom_de_ta_table, Nom_du_fichier_texte

Code permettant d'envoyer le fichier par mail (que je ne connais pas)

End Sub



Rien n'est plus dangereux qu'une idée quand on a 
qu'une idée
  :-)
0
pitchounette
21 oct. 2003 à 16:24
en fait on me demande de faire ça avec recordset car je devrai faire exactement la meme manip sur vb.
a la base j'ai commancé a le faire avec vb ms comme on ne voit pas ou vient l'errreur on m'a demander de le faire sur access.

voila je dois m 'exercer en ligne de commande.
helpppp apres j'arrete de t'enbetter
0
pitchounette
21 oct. 2003 à 18:09
merci bcp t'es un amour
0
blux Messages postés 26543 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 21 décembre 2024 3 318
22 oct. 2003 à 08:17
Merci, c'est ce que me dit ma petite femme tous les matins... ;-)

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
J'aimerais savoir comment a partir d'un texte, je peux supprimer les mots inutiles (du, de, la, un,...) et ensuite sauvegarder les mots restants en leur attribuant un numero. ( le langage que j'utilise est le C++ et je debute)
0
Salut à tous,
J'aimerais lire/écrire une classe Qt (QMap) dans un fichier. Si quelqu'un peut m'aider, ce serait pas mal du tout. Merci.
0
Bonjour à tous,

J'aimerais savoir s'il est possible de faire la démarche inverse:
- je souhaite partir d'un fichier texte structuré mais non séquentiel, ni indexé
- extraire les données qui m'interesse et les mettre dans une table access.

Est ce nécessaire à votre avis de passer par du code VB pour lire le texte et le reformater ?

Merci pour votre aide

YB
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
1 juin 2006 à 19:34
Salut,

Les données que tu les obtiendra serront enregistrées dans un fichier .txt qui normalement peuvent être importé dans une table Access.

Donc l'étape la plus difficile c'est de parser le fichier .txt

En ce cas essaie avec un langage script Perl, Python avec leur regex et oublie le parsing de text avec VB.

Si tu as la structure de ton fichier et ce que tu veux obtenir tu n'as qu'à le dire et on verra si on peut le traiter pour obtenir ce que tu veux.

Ca peut être une bonne experience. A toi de voir.

lami20j
0
salut a tous.

je suis developpeur debutant, et j'aimerais un petit renseignement:

on me demande pour mon stage de faire une appli en vba (sous access) permettant d'extraire une table access, vers un fichier texte mais selon certaine sépicificités.

pour le moment on ne m'a pas donnée les spécificité.
ce que je veux dire par spécificité, c'est doit on rajouter des caractere entre deux champs de la table, ou si on doit mettre un espace entre deux champs, etc etc.
si c'est possible de le faire, pourriez vous m'aider? pour que je fasse des test seuls, et puis lorsque j'aurais les spécificité, je saurais plus ou moins comment faire.

Merci a tous
0