OVH Cloud OVH Cloud

Problème avec querydef.name

4 réponses
Avatar
Geronimo99
Bonjour
Ayant besoin de lister les noms de requête de ma base, je n'obtiens pas les
noms des requêtes, mais des infos bizarres.
Ci après le code, tout ce qu'il ya de plus classiques et qui marche pour les
tables, Forms, report et Module.

Dim Qry As DAO.QueryDef
For Each Qry In db.QueryDefs
Me.Nom_Objet.AddItem Qry.name

je récupère ce genre de texte :
~sq_cfrm_Analyse des Stocks~sq_cchoix_Concession
alors que mes requêtes ont pour nom : rqt_xxxxxxx

J'ai compacté la base mais rien n'y fait.

version Access : 2003 SP1
quelqu'un a t il une idée ?
merci

4 réponses

Avatar
Eric
Bonjour,

Une idée ...

Tu devrais faire un test sur le 1er caractère du nom de la requête car
le tilde désigne une requête temporaire. Je ne crois pas que ces
requêtes temporaires soient effacées même après un compactage, fermeture
et réouverture de la bd (c'est mon cas en A2000). Elles correspondent
aux sources de contrôles inclus dans des formulaires, du moins c'est
l'idée que je m'en fais. Avec le code modifié ci-dessous, je n'ai plus
que la liste des 'vraies' requêtes.

Dim Qry As DAO.QueryDef

For Each Qry In db.QueryDefs
If left(qry.name,1)<>"~" then
Me.Nom_Objet.AddItem Qry.name
end if
...

~sq_cfrm_Analyse des Stocks~sq_cchoix_Concession doit correspondre au
Select du contenu d'une liste déroulante choix_Concession sur le
formulaire frm_Analyse des Stock

Par exemple:
~sq_cFormulaire3~sq_ctClient correspond au select du sous-fom tClient
contenu dans Formulaire3


Bonjour
Ayant besoin de lister les noms de requête de ma base, je n'obtiens pas les
noms des requêtes, mais des infos bizarres.
Ci après le code, tout ce qu'il ya de plus classiques et qui marche pour les
tables, Forms, report et Module.

Dim Qry As DAO.QueryDef
For Each Qry In db.QueryDefs
Me.Nom_Objet.AddItem Qry.name

je récupère ce genre de texte :
~sq_cfrm_Analyse des Stocks~sq_cchoix_Concession
alors que mes requêtes ont pour nom : rqt_xxxxxxx

J'ai compacté la base mais rien n'y fait.

version Access : 2003 SP1
quelqu'un a t il une idée ?
merci


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

Avatar
Geronimo99
Bingo

Merci eric c'est exactement cela
Interressant de savoir que le tilde donne accès aux requêtes des list box -
on doit pouvoir changer alors en chaine des valeurs, quand par exemple on
duplique un formulaire très dense et où on a beaucoup de requery avec des
contrôles du formulaires - on doit pourvoir alors remettre le nom du nouveau
formulaire en automatique.

Merci encore
à+
Patrick


Bonjour,

Une idée ...

Tu devrais faire un test sur le 1er caractère du nom de la requête car
le tilde désigne une requête temporaire. Je ne crois pas que ces
requêtes temporaires soient effacées même après un compactage, fermeture
et réouverture de la bd (c'est mon cas en A2000). Elles correspondent
aux sources de contrôles inclus dans des formulaires, du moins c'est
l'idée que je m'en fais. Avec le code modifié ci-dessous, je n'ai plus
que la liste des 'vraies' requêtes.

Dim Qry As DAO.QueryDef

For Each Qry In db.QueryDefs
If left(qry.name,1)<>"~" then
Me.Nom_Objet.AddItem Qry.name
end if
...

~sq_cfrm_Analyse des Stocks~sq_cchoix_Concession doit correspondre au
Select du contenu d'une liste déroulante choix_Concession sur le
formulaire frm_Analyse des Stock

Par exemple:
~sq_cFormulaire3~sq_ctClient correspond au select du sous-fom tClient
contenu dans Formulaire3


Bonjour
Ayant besoin de lister les noms de requête de ma base, je n'obtiens pas les
noms des requêtes, mais des infos bizarres.
Ci après le code, tout ce qu'il ya de plus classiques et qui marche pour les
tables, Forms, report et Module.

Dim Qry As DAO.QueryDef
For Each Qry In db.QueryDefs
Me.Nom_Objet.AddItem Qry.name

je récupère ce genre de texte :
~sq_cfrm_Analyse des Stocks~sq_cchoix_Concession
alors que mes requêtes ont pour nom : rqt_xxxxxxx

J'ai compacté la base mais rien n'y fait.

version Access : 2003 SP1
quelqu'un a t il une idée ?
merci


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




Avatar
J-Pierre
"Geronimo99" a écrit dans le message de news:

Bingo

Merci eric c'est exactement cela
Interressant de savoir que le tilde donne accès aux requêtes des list box -
on doit pouvoir changer alors en chaine des valeurs, quand par exemple on
duplique un formulaire très dense et où on a beaucoup de requery avec des
contrôles du formulaires - on doit pourvoir alors remettre le nom du nouveau
formulaire en automatique.

Merci encore
à+
Patrick


Bonjour,

Une idée ...

Tu devrais faire un test sur le 1er caractère du nom de la requête car
le tilde désigne une requête temporaire. Je ne crois pas que ces
requêtes temporaires soient effacées même après un compactage, fermeture
et réouverture de la bd (c'est mon cas en A2000). Elles correspondent
aux sources de contrôles inclus dans des formulaires, du moins c'est
l'idée que je m'en fais. Avec le code modifié ci-dessous, je n'ai plus
que la liste des 'vraies' requêtes.

Dim Qry As DAO.QueryDef

For Each Qry In db.QueryDefs
If left(qry.name,1)<>"~" then
Me.Nom_Objet.AddItem Qry.name
end if
...

~sq_cfrm_Analyse des Stocks~sq_cchoix_Concession doit correspondre au
Select du contenu d'une liste déroulante choix_Concession sur le
formulaire frm_Analyse des Stock

Par exemple:
~sq_cFormulaire3~sq_ctClient correspond au select du sous-fom tClient
contenu dans Formulaire3


Bonjour
Ayant besoin de lister les noms de requête de ma base, je n'obtiens pas les
noms des requêtes, mais des infos bizarres.
Ci après le code, tout ce qu'il ya de plus classiques et qui marche pour les
tables, Forms, report et Module.

Dim Qry As DAO.QueryDef
For Each Qry In db.QueryDefs
Me.Nom_Objet.AddItem Qry.name

je récupère ce genre de texte :
~sq_cfrm_Analyse des Stocks~sq_cchoix_Concession
alors que mes requêtes ont pour nom : rqt_xxxxxxx

J'ai compacté la base mais rien n'y fait.

version Access : 2003 SP1
quelqu'un a t il une idée ?
merci


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






Avatar
J-Pierre
Bonsoir,

Autre possibilité:
Dim obj As AccessObject
Dim bda As Object
Set bda = Access.Application.CurrentData

For Each obj In bda.AllQueries.......

A condition d'avoir Access 2000 au moins

J-Pierre