OVH Cloud OVH Cloud

Module et table

4 réponses
Avatar
chris
Bonjour,
j'ai un module où est stockée la procédure suivante

Function FICHEPERS()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim intFichier As Long

'choisir la fiche
DoCmd.OpenQuery "Ajout fiche au tampon", acNormal, acEdit
DoCmd.Close acQuery, "Ajout fiche au tampon"

'Ouvrir le recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("TAMPON")

'Ouvrir le fichier texte en écriture
intFichier = FreeFile
Open "c:\fiche.txt" For Output As intFichier

'Parcourir les champs et écrire les infos
While Not rst.EOF

Print #intFichier, "nom" & Nz(rst("nom"))
Print #intFichier, "adresse" & Nz(rst("adresse"))
etc...
Beep
MsgBox "Fiche prête à être envoyée", vbInformation, "Fin"
' passer à l'enregistrement suivant
rst.MoveNext
Wend

'on ferme
Close intFichier
rst.Close
Set rst = Nothing
Set db = Nothing
End Function

Ceci permet de créer un fichier texte formatté comme je le souhaite avec
tous mes champs
Mon souci est le suivant : la base utilisée dans les 14 postes(distants de
plusieurs centaines de km et pas en réseau bien entendu) est au format MDE,
et j'ai la source en MDB. Si j'ai besoin de modifier la fonctinon dans le
module(pour une évolution quelconque du format texte)
je suis obligé de récupérer les données des 14 postes puis de leur renvoyer
la base complète
ma question :

Est-il possible stocker les lignes
Print #intFichier, "nom" & Nz(rst("nom"))
Print #intFichier, "adresse" & Nz(rst("adresse"))
etc....
dans une table nommée Format (ayant un champ mémo par exemple),
pour pouvoir modifier à souhait le format (rajout de lignes, modifications
de champs...)
sans avoir à remodifier le module.
ça je peux le faire mais surtout quelles lignes de commande dois-je mettre
dans le module pour faire référence à cette table format?
Merci
Chris

4 réponses

Avatar
chris
Apparement, il est également possible de formatter un export vers un fichier
texte en ayant un "modèle" prédéfini stocké en dehors de la base
pour dire à access, utilise ce modèle pour exporter mes données avec ce
format
quelqu'un aurait-il un exemple ou une piste de recherche?


"chris" a écrit dans le message de news:
%
Bonjour,
j'ai un module où est stockée la procédure suivante

Function FICHEPERS()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim intFichier As Long

'choisir la fiche
DoCmd.OpenQuery "Ajout fiche au tampon", acNormal, acEdit
DoCmd.Close acQuery, "Ajout fiche au tampon"

'Ouvrir le recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("TAMPON")

'Ouvrir le fichier texte en écriture
intFichier = FreeFile
Open "c:fiche.txt" For Output As intFichier

'Parcourir les champs et écrire les infos
While Not rst.EOF

Print #intFichier, "nom" & Nz(rst("nom"))
Print #intFichier, "adresse" & Nz(rst("adresse"))
etc...
Beep
MsgBox "Fiche prête à être envoyée", vbInformation, "Fin"
' passer à l'enregistrement suivant
rst.MoveNext
Wend

'on ferme
Close intFichier
rst.Close
Set rst = Nothing
Set db = Nothing
End Function

Ceci permet de créer un fichier texte formatté comme je le souhaite avec
tous mes champs
Mon souci est le suivant : la base utilisée dans les 14 postes(distants de
plusieurs centaines de km et pas en réseau bien entendu) est au format
MDE, et j'ai la source en MDB. Si j'ai besoin de modifier la fonctinon
dans le module(pour une évolution quelconque du format texte)
je suis obligé de récupérer les données des 14 postes puis de leur
renvoyer la base complète
ma question :

Est-il possible stocker les lignes
Print #intFichier, "nom" & Nz(rst("nom"))
Print #intFichier, "adresse" & Nz(rst("adresse"))
etc....
dans une table nommée Format (ayant un champ mémo par exemple),
pour pouvoir modifier à souhait le format (rajout de lignes, modifications
de champs...)
sans avoir à remodifier le module.
ça je peux le faire mais surtout quelles lignes de commande dois-je mettre
dans le module pour faire référence à cette table format?
Merci
Chris



Avatar
3stone
Salut,

"chris"
| Apparement, il est également possible de formatter un export vers un fichier
| texte en ayant un "modèle" prédéfini stocké en dehors de la base
| pour dire à access, utilise ce modèle pour exporter mes données avec ce
| format
| quelqu'un aurait-il un exemple ou une piste de recherche?


Je te conseillerai plutôt de créer une requête avec les champs et critères qui vont bien,
ensuite, tu fais une exportation (menu Fichier, Exporter...) en choisissant le format CSV.
Clique sur enregistrer et dans la fenêtre suivante sur le bouton "Avancé..."

Là, tu pourras définir finement ton format et le sauver sous un nom parlant
via le bouton "Enregistrer sous..."

Tu peux ainsi te créer plusieurs formats, chacun avec son nom propre
et les utiliser à ta guise en spécifiant le nom du format souhaité lors de l'export:

DoCmd.TransferText acExportDelim, "Nom du format", "nom requête", "nom du fichier"


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
chris
Merci, je vais chercher dans ce sens
"3stone" a écrit dans le message de news:

Salut,

"chris"
| Apparement, il est également possible de formatter un export vers un
fichier
| texte en ayant un "modèle" prédéfini stocké en dehors de la base
| pour dire à access, utilise ce modèle pour exporter mes données avec ce
| format
| quelqu'un aurait-il un exemple ou une piste de recherche?


Je te conseillerai plutôt de créer une requête avec les champs et critères
qui vont bien,
ensuite, tu fais une exportation (menu Fichier, Exporter...) en
choisissant le format CSV.
Clique sur enregistrer et dans la fenêtre suivante sur le bouton
"Avancé..."

Là, tu pourras définir finement ton format et le sauver sous un nom
parlant
via le bouton "Enregistrer sous..."

Tu peux ainsi te créer plusieurs formats, chacun avec son nom propre
et les utiliser à ta guise en spécifiant le nom du format souhaité lors de
l'export:

DoCmd.TransferText acExportDelim, "Nom du format", "nom requête", "nom du
fichier"


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



Avatar
chris
Merci
Je vais essayer ça
"3stone" a écrit dans le message de news:

Salut,

"chris"
| Apparement, il est également possible de formatter un export vers un
fichier
| texte en ayant un "modèle" prédéfini stocké en dehors de la base
| pour dire à access, utilise ce modèle pour exporter mes données avec ce
| format
| quelqu'un aurait-il un exemple ou une piste de recherche?


Je te conseillerai plutôt de créer une requête avec les champs et critères
qui vont bien,
ensuite, tu fais une exportation (menu Fichier, Exporter...) en
choisissant le format CSV.
Clique sur enregistrer et dans la fenêtre suivante sur le bouton
"Avancé..."

Là, tu pourras définir finement ton format et le sauver sous un nom
parlant
via le bouton "Enregistrer sous..."

Tu peux ainsi te créer plusieurs formats, chacun avec son nom propre
et les utiliser à ta guise en spécifiant le nom du format souhaité lors de
l'export:

DoCmd.TransferText acExportDelim, "Nom du format", "nom requête", "nom du
fichier"


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