Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

contenu liste basé sur une requête VBA

2 réponses
Avatar
debdrai
Re-Coucou (2e demande de la journée)

Disons que j'ai une zone de texte Section et deux zones de listes non
modifiables. La 1ère liste contient un ensemble de puits de forage. Le
but est que l'usager crée un nom de section et indique quels puits
appartiennent à cette section en cliquant sur certains puits de la
1ere liste et en les faisant passer dans la seconde liste. Puis
l'usager change d'enregistrement, crée une nouvelle section et
re-belote ! Mon problème est quand l'usager retourne dans son
formulaire pour savoir quels uits appartiennent à la section X. J'ai
d'abord basé le contenu de ma 2e table sur une requete s'executant sur
activation du formulaire et disnat en gros d'afficher les
enregistrements de puits pour lesquels la section (dans la table
sous-jacente) est égale au contenu du champ Section dans le
formulaire. Mais ça ne marche pas. Si je base le contenu de cette
liste sur l'ensemble des enregistrements de la table sou-jacente, pas
de probleme. Mais si je filtre, ca ne marche pas.

On m'a donc conseiller de ne plus mettre ma requete dans la propriété
Contenu de ma liste, mais de basée cette liste sur le résultat d'une
requête Sélection en VBA. J'essaie mais sans succès. Voici mon code:


Private Sub Form_Current()

Dim strReq As String
Dim objRs As DAO.Database

strReq = "SELECT tblSecPuits.NomPuits FROM tblSecPuits WHERE _
tblSecPuits.Section=[forms].[frmSection].[Section];"
Set objRs = CurrentDb()
objRs.Execute (strReq)
objRs.Close

Me.lstChoixPuits.RowSource = strReq

End Sub

Quelqu'un aurait-il une idée ? Merci.

Deb

2 réponses

Avatar
G Roydor
j'ai un pb similaire sans réponse (en remplaçant tri par filtre)
voir le post : formulaire tri et ajout d'enregistrement
si vous obtenez une réponse satsifaisante .. d'avance merci


La p'tite Deb a écrit:
Re-Coucou (2e demande de la journée)

Disons que j'ai une zone de texte Section et deux zones de listes non
modifiables. La 1ère liste contient un ensemble de puits de forage. Le
but est que l'usager crée un nom de section et indique quels puits
appartiennent à cette section en cliquant sur certains puits de la
1ere liste et en les faisant passer dans la seconde liste. Puis
l'usager change d'enregistrement, crée une nouvelle section et
re-belote ! Mon problème est quand l'usager retourne dans son
formulaire pour savoir quels uits appartiennent à la section X. J'ai
d'abord basé le contenu de ma 2e table sur une requete s'executant sur
activation du formulaire et disnat en gros d'afficher les
enregistrements de puits pour lesquels la section (dans la table
sous-jacente) est égale au contenu du champ Section dans le
formulaire. Mais ça ne marche pas. Si je base le contenu de cette
liste sur l'ensemble des enregistrements de la table sou-jacente, pas
de probleme. Mais si je filtre, ca ne marche pas.

On m'a donc conseiller de ne plus mettre ma requete dans la propriété
Contenu de ma liste, mais de basée cette liste sur le résultat d'une
requête Sélection en VBA. J'essaie mais sans succès. Voici mon code:


Private Sub Form_Current()

Dim strReq As String
Dim objRs As DAO.Database

strReq = "SELECT tblSecPuits.NomPuits FROM tblSecPuits WHERE _
tblSecPuits.Section=[forms].[frmSection].[Section];"
Set objRs = CurrentDb()
objRs.Execute (strReq)
objRs.Close

Me.lstChoixPuits.RowSource = strReq

End Sub

Quelqu'un aurait-il une idée ? Merci.

Deb


Avatar
Sylvain Lafontaine
Je ne suis pas sûr mais d'après moi, vous avez simplement oublié d'ajouter
un Me.lstChoixPuits.Requery après modification de la source.

Je ne vois pas non plus l'utilité de votre requête d'exécution pour objRs:
que vient faire ce recordset dans le portrait?

J'imagine aussi que [forms].[frmSection].[Section] représente la bonne
valeur. Vous pouvez toujours vérifier en remplaçant cette valeur
directement par sa valeur numérique dans votre chaîne SQL.

Finalement, je ne vois pas l'utilité réelle de tout ce code. Une fois
correctement ajusté, vos sous-formulaires devraient afficher directement les
bonnes valeurs mais je suis d'accord avec vous, ce n'est pas toujours
évident sous Access.

S. L.

"La p'tite Deb" wrote in message
news:
Re-Coucou (2e demande de la journée)

Disons que j'ai une zone de texte Section et deux zones de listes non
modifiables. La 1ère liste contient un ensemble de puits de forage. Le
but est que l'usager crée un nom de section et indique quels puits
appartiennent à cette section en cliquant sur certains puits de la
1ere liste et en les faisant passer dans la seconde liste. Puis
l'usager change d'enregistrement, crée une nouvelle section et
re-belote ! Mon problème est quand l'usager retourne dans son
formulaire pour savoir quels uits appartiennent à la section X. J'ai
d'abord basé le contenu de ma 2e table sur une requete s'executant sur
activation du formulaire et disnat en gros d'afficher les
enregistrements de puits pour lesquels la section (dans la table
sous-jacente) est égale au contenu du champ Section dans le
formulaire. Mais ça ne marche pas. Si je base le contenu de cette
liste sur l'ensemble des enregistrements de la table sou-jacente, pas
de probleme. Mais si je filtre, ca ne marche pas.

On m'a donc conseiller de ne plus mettre ma requete dans la propriété
Contenu de ma liste, mais de basée cette liste sur le résultat d'une
requête Sélection en VBA. J'essaie mais sans succès. Voici mon code:


Private Sub Form_Current()

Dim strReq As String
Dim objRs As DAO.Database

strReq = "SELECT tblSecPuits.NomPuits FROM tblSecPuits WHERE _
tblSecPuits.Section=[forms].[frmSection].[Section];"
Set objRs = CurrentDb()
objRs.Execute (strReq)
objRs.Close

Me.lstChoixPuits.RowSource = strReq

End Sub

Quelqu'un aurait-il une idée ? Merci.

Deb