OVH Cloud OVH Cloud

mettre en forme la champs clé

4 réponses
Avatar
azmustafa
Bonjour le groupe
mon probleme est le suivant : j'utilise le code ci-dessous pour
exporter les tables d'une base de donn=E9 au format excel : =E7a marche
tr=E8s bien, est ce que quelqu'un peut m'aider =E0 mettre en forme le
champs cl=E9 primaire et cl=E9 secondaire d'une table (mettre en Gras ,
Italique) : je serais tr=E8s reconnaissant :

Dim f As Integer
Dim chemin As String
Dim nomfichier As String
Dim t As DAO.TableDef, bd As DAO.Database
Dim fld As Field, chaine As String
Set bd =3D CurrentDb
Dim mms As String

chemin =3D "c:\" & Left(CodeProject.Name, Len(CodeProject.Name) -
4)

For Each t In bd.TableDefs
If Left(t.Name, 4) <> "MSys" Then
Set t =3D bd.TableDefs(t.Name)
f =3D FreeFile
nomfichier =3D chemin & "\" & t.Name & ".xls"
Open nomfichier For Output As #f
For Each fld In t.Fields
If Len(chaine) =3D 0 Then
chaine =3D fld.Name
Else
chaine =3D chaine & ";" & fld.Name
End If
Next fld
Print #f, chaine
Close #f
chaine =3D ""
End If
Next t
Set t =3D Nothing
bd.Close
Set bd =3D Nothing

4 réponses

Avatar
Eric
Bonjour,

Je me lance car tu n'as pas eu beaucoup de réponse ;-)

Je ne crois pas qu'il soit possible de mettre un style (gras ou autre)
aux éléments d'un fichier séquentiel de texte. Je pense que les styles
sont gérés par l'applicatif qui exploite le fichier texte. Il faudrait
donc connaitre comment sont gérés ces styles en interne par ton
applicatif (ici Excel) pour pouvoir insérer selon le cas des balises
autour de tes champs-clé. Il faudrait, dans ce cas là, modifier ta
procédure en testant les propriétés Primary et Foreign des champs des
tables.
Si quelqu'un infirme, je serai preneur de la solution.

Bonjour le groupe
mon probleme est le suivant : j'utilise le code ci-dessous pour
exporter les tables d'une base de donné au format excel : ça marche
très bien, est ce que quelqu'un peut m'aider à mettre en forme le
champs clé primaire et clé secondaire d'une table (mettre en Gras ,
Italique) : je serais très reconnaissant :

Dim f As Integer
Dim chemin As String
Dim nomfichier As String
Dim t As DAO.TableDef, bd As DAO.Database
Dim fld As Field, chaine As String
Set bd = CurrentDb
Dim mms As String

chemin = "c:" & Left(CodeProject.Name, Len(CodeProject.Name) -
4)

For Each t In bd.TableDefs
If Left(t.Name, 4) <> "MSys" Then
Set t = bd.TableDefs(t.Name)
f = FreeFile
nomfichier = chemin & "" & t.Name & ".xls"
Open nomfichier For Output As #f
For Each fld In t.Fields
If Len(chaine) = 0 Then
chaine = fld.Name
Else
chaine = chaine & ";" & fld.Name
End If
Next fld
Print #f, chaine
Close #f
chaine = ""
End If
Next t
Set t = Nothing
bd.Close
Set bd = Nothing



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
azmustafa
Salut ERIC
je te remercie infiniment de votre réponse, tu as raison dans ta
réponse, ce qui me parait possible c'est de mettre en forme les champs
dans le fichier Excel, celà est possible si j'arrive à indiquer à
Excel qu'un tel champs est une clé dans une table access(clé primaire
ou secondaire), si vous avez une idée merci de votre aide

Merci bcp






Bonjour,

Je me lance car tu n'as pas eu beaucoup de réponse ;-)

Je ne crois pas qu'il soit possible de mettre un style (gras ou autre)
aux éléments d'un fichier séquentiel de texte. Je pense que les sty les
sont gérés par l'applicatif qui exploite le fichier texte. Il faudrait
donc connaitre comment sont gérés ces styles en interne par ton
applicatif (ici Excel) pour pouvoir insérer selon le cas des balises
autour de tes champs-clé. Il faudrait, dans ce cas là, modifier ta
procédure en testant les propriétés Primary et Foreign des champs d es
tables.
Si quelqu'un infirme, je serai preneur de la solution.

Bonjour le groupe
mon probleme est le suivant : j'utilise le code ci-dessous pour
exporter les tables d'une base de donné au format excel : ça marche
très bien, est ce que quelqu'un peut m'aider à mettre en forme le
champs clé primaire et clé secondaire d'une table (mettre en Gras ,
Italique) : je serais très reconnaissant :

Dim f As Integer
Dim chemin As String
Dim nomfichier As String
Dim t As DAO.TableDef, bd As DAO.Database
Dim fld As Field, chaine As String
Set bd = CurrentDb
Dim mms As String

chemin = "c:" & Left(CodeProject.Name, Len(CodeProject.Name) -
4)

For Each t In bd.TableDefs
If Left(t.Name, 4) <> "MSys" Then
Set t = bd.TableDefs(t.Name)
f = FreeFile
nomfichier = chemin & "" & t.Name & ".xls"
Open nomfichier For Output As #f
For Each fld In t.Fields
If Len(chaine) = 0 Then
chaine = fld.Name
Else
chaine = chaine & ";" & fld.Name
End If
Next fld
Print #f, chaine
Close #f
chaine = ""
End If
Next t
Set t = Nothing
bd.Close
Set bd = Nothing



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl= fr



Avatar
Eric
re,

Le principe dans les grandes lignes

Il faudrait modifier ta procédure pour que, pour chaque table, tu
parcours sa collection d'index. Tu verifies si la propriété Primary
(respectivement Foreign) de l'index est à True. Si c'est le cas, tu dois
rechercher le(s) champ(s) constituant l'index, les stocker dans un
tableau et gérer une variable qui contiendrait PK ou FK pour chaque
champ faisant partie d'une clé primaire/étrangère, variable que tu
concatènerais à son nom.

ex de code très simplifié qui permet de trouver les champs composant une
clé primaire:
Dim idx as DAO.Index
For Each idx In t.Indexes
If idx.Primary = True Then
For Each fld In idx.Fields
Debug.Print fld.Name & " -" & t.Name
Next fld
End If
Next idx

Puis sous Excel avec du code, tu recherches les champs dont les 2
derniers caractères sont PK ou FK pour mettre en gras ou en italique.

Salut ERIC
je te remercie infiniment de votre réponse, tu as raison dans ta
réponse, ce qui me parait possible c'est de mettre en forme les champs
dans le fichier Excel, celà est possible si j'arrive à indiquer à
Excel qu'un tel champs est une clé dans une table access(clé primaire
ou secondaire), si vous avez une idée merci de votre aide

Merci bcp



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
azmustafa
SALUT ERIC
merci de votre réponse, je vais tester ce que tu m'as dis et je te
réponds le plus proche
1000... merci




re,

Le principe dans les grandes lignes

Il faudrait modifier ta procédure pour que, pour chaque table, tu
parcours sa collection d'index. Tu verifies si la propriété Primary
(respectivement Foreign) de l'index est à True. Si c'est le cas, tu dois
rechercher le(s) champ(s) constituant l'index, les stocker dans un
tableau et gérer une variable qui contiendrait PK ou FK pour chaque
champ faisant partie d'une clé primaire/étrangère, variable que tu
concatènerais à son nom.

ex de code très simplifié qui permet de trouver les champs composant une
clé primaire:
Dim idx as DAO.Index
For Each idx In t.Indexes
If idx.Primary = True Then
For Each fld In idx.Fields
Debug.Print fld.Name & " -" & t.Name
Next fld
End If
Next idx

Puis sous Excel avec du code, tu recherches les champs dont les 2
derniers caractères sont PK ou FK pour mettre en gras ou en italique.

Salut ERIC
je te remercie infiniment de votre réponse, tu as raison dans ta
réponse, ce qui me parait possible c'est de mettre en forme les champs
dans le fichier Excel, celà est possible si j'arrive à indiquer à
Excel qu'un tel champs est une clé dans une table access(clé primai re
ou secondaire), si vous avez une idée merci de votre aide

Merci bcp



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl= fr