comment récupérer les enregistrements d'un sous-formulaire
2 réponses
Flo
Bonjour,
j'ai une base de données Access de gestion d'adhérents et j'ai fait un
formulaire de recherche multi critères qui affiche tous les adhérents dans
un sous-formulaire à l'ouverture puis les enregistrements sont filtrés en
fonction des sélections ; ça, ça fonctionne
mon problème est qu'ensuite je voudrais pouvoir faire une boucle sur les
enregistrements du sous-formulaire pour récupérer toutes les adresses mail,
par exemple ; et là je ne sais pas comment faire, ni si c'est possible (je
suis pas très douée en Access :-) )
ai-je un moyen de m'en sortir ou faut-il que je m'y prenne autrement,
c'est-à-dire, plutôt créer une requête SQL à partir des choix fait dans le
formulaire ?
si ça peut aider, voici le code VBA :
- mon problème est dc que je voudrais récupérer les enregistrements
contenus dans le sous-formulaire frm_ls_adh
si quelqu'un peut m'aiguiller, ce serait super, merci d'avance
Option Compare Database
Public strFiltre As String
Private Sub btnOK_Click()
Dim strStatut As String
' Filtre sur le Classement
On Error Resume Next
strFiltre = ""
If Not IsNull(Me.Classement) Then
strFiltre = "([Classement]='" & Me.Classement & "')"
End If
' Filtre sur la catégorie d'âge
If Not IsNull(Me.catégorie) Then
If strFiltre <> "" Then strFiltre = strFiltre & " AND "
strFiltre = strFiltre & "([Annee_Naiss]>=" & Me!catégorie.Column(1) & "
AND [Annee_Naiss]<=" & Me!catégorie.Column(2) & ")"
End If
' Filtre sur le code équipe (Championnat)
If Not IsNull(Me.Championnat) Then
strFiltre = strFiltre & "([code_eq1]=" & Me.Championnat & " OR
[code_eq2]=" & Me.Championnat & ")"
End If
' Filtre sur le statut
Select Case Me.Sexe
Case 1: strStatut = "F"
Case 2: strStatut = "H"
Case 3: strStatut = Null
Case Else: strStatut = ""
End Select
If strStatut <> "" Then
If strFiltre <> "" Then strFiltre = strFiltre & " AND "
strFiltre = strFiltre & "([Sexe]='" & strStatut & "')"
End If
' Afficher le résultat
Me.lblSQL.Caption = strFiltre
' Filtrer le sous-formulaire
With Me.frm_ls_adh.Form
.Filter = strFiltre
.FilterOn = True
End With
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Raymond [mvp]
Bonjour.
tu peux passer par un recordset basé sur ton sous-formulaire et faire une boucle pour récupérer toutes tes données. Dim Rs As DAO.Recordset Set Rs = Forms!formulaireprincipal!sous_formulaire.Form.Recordset Rs.MoveFirst Do Until Rs.EOF MsgBox Rs!monchamp ' par exemple Loop Set Rs = Nothing
-- @+ Raymond Access MVP http://OfficeSystem.Access.free.fr/ http://OfficeSystem.Access.free.fr/runtime/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Flo" a écrit dans le message de news:
Bonjour,
j'ai une base de données Access de gestion d'adhérents et j'ai fait un formulaire de recherche multi critères qui affiche tous les adhérents dans un sous-formulaire à l'ouverture puis les enregistrements sont filtrés en fonction des sélections ; ça, ça fonctionne
mon problème est qu'ensuite je voudrais pouvoir faire une boucle sur les enregistrements du sous-formulaire pour récupérer toutes les adresses mail, par exemple ; et là je ne sais pas comment faire, ni si c'est possible (je suis pas très douée en Access :-) )
ai-je un moyen de m'en sortir ou faut-il que je m'y prenne autrement, c'est-à-dire, plutôt créer une requête SQL à partir des choix fait dans le formulaire ?
si ça peut aider, voici le code VBA : - mon problème est dc que je voudrais récupérer les enregistrements contenus dans le sous-formulaire frm_ls_adh
si quelqu'un peut m'aiguiller, ce serait super, merci d'avance
Bonjour.
tu peux passer par un recordset basé sur ton sous-formulaire et faire une
boucle pour récupérer toutes tes données.
Dim Rs As DAO.Recordset
Set Rs = Forms!formulaireprincipal!sous_formulaire.Form.Recordset
Rs.MoveFirst
Do Until Rs.EOF
MsgBox Rs!monchamp ' par exemple
Loop
Set Rs = Nothing
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Flo" <Florence.Codet@laposte.net> a écrit dans le message de news:
eL77qaaFFHA.2232@TK2MSFTNGP14.phx.gbl...
Bonjour,
j'ai une base de données Access de gestion d'adhérents et j'ai fait un
formulaire de recherche multi critères qui affiche tous les adhérents dans
un sous-formulaire à l'ouverture puis les enregistrements sont filtrés en
fonction des sélections ; ça, ça fonctionne
mon problème est qu'ensuite je voudrais pouvoir faire une boucle sur les
enregistrements du sous-formulaire pour récupérer toutes les adresses
mail,
par exemple ; et là je ne sais pas comment faire, ni si c'est possible (je
suis pas très douée en Access :-) )
ai-je un moyen de m'en sortir ou faut-il que je m'y prenne autrement,
c'est-à-dire, plutôt créer une requête SQL à partir des choix fait dans le
formulaire ?
si ça peut aider, voici le code VBA :
- mon problème est dc que je voudrais récupérer les
enregistrements
contenus dans le sous-formulaire frm_ls_adh
si quelqu'un peut m'aiguiller, ce serait super, merci d'avance
tu peux passer par un recordset basé sur ton sous-formulaire et faire une boucle pour récupérer toutes tes données. Dim Rs As DAO.Recordset Set Rs = Forms!formulaireprincipal!sous_formulaire.Form.Recordset Rs.MoveFirst Do Until Rs.EOF MsgBox Rs!monchamp ' par exemple Loop Set Rs = Nothing
-- @+ Raymond Access MVP http://OfficeSystem.Access.free.fr/ http://OfficeSystem.Access.free.fr/runtime/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Flo" a écrit dans le message de news:
Bonjour,
j'ai une base de données Access de gestion d'adhérents et j'ai fait un formulaire de recherche multi critères qui affiche tous les adhérents dans un sous-formulaire à l'ouverture puis les enregistrements sont filtrés en fonction des sélections ; ça, ça fonctionne
mon problème est qu'ensuite je voudrais pouvoir faire une boucle sur les enregistrements du sous-formulaire pour récupérer toutes les adresses mail, par exemple ; et là je ne sais pas comment faire, ni si c'est possible (je suis pas très douée en Access :-) )
ai-je un moyen de m'en sortir ou faut-il que je m'y prenne autrement, c'est-à-dire, plutôt créer une requête SQL à partir des choix fait dans le formulaire ?
si ça peut aider, voici le code VBA : - mon problème est dc que je voudrais récupérer les enregistrements contenus dans le sous-formulaire frm_ls_adh
si quelqu'un peut m'aiguiller, ce serait super, merci d'avance
Flo
super, merci pour la réponse j'ai juste rajouté Rs.MoveNext dans la boucle
j'ai maintenant un autre problème car en fait cela me sert à concaténer des adresses mail et ouvrir une fenetre de messagerie :
Dim strInput As Variant Application.FollowHyperlink strInput, , True
et ça a l'air de planter lorsque strInput est trop long ; quelqu'un saurait-il quelle est la limite ?
merci d'avance
Bonjour.
tu peux passer par un recordset basé sur ton sous-formulaire et faire une boucle pour récupérer toutes tes données. Dim Rs As DAO.Recordset Set Rs = Forms!formulaireprincipal!sous_formulaire.Form.Recordset Rs.MoveFirst Do Until Rs.EOF MsgBox Rs!monchamp ' par exemple Loop Set Rs = Nothing
super, merci pour la réponse
j'ai juste rajouté Rs.MoveNext dans la boucle
j'ai maintenant un autre problème car en fait cela me sert à concaténer
des adresses mail et ouvrir une fenetre de messagerie :
Dim strInput As Variant
Application.FollowHyperlink strInput, , True
et ça a l'air de planter lorsque strInput est trop long ; quelqu'un
saurait-il quelle est la limite ?
merci d'avance
Bonjour.
tu peux passer par un recordset basé sur ton sous-formulaire et faire une
boucle pour récupérer toutes tes données.
Dim Rs As DAO.Recordset
Set Rs = Forms!formulaireprincipal!sous_formulaire.Form.Recordset
Rs.MoveFirst
Do Until Rs.EOF
MsgBox Rs!monchamp ' par exemple
Loop
Set Rs = Nothing
super, merci pour la réponse j'ai juste rajouté Rs.MoveNext dans la boucle
j'ai maintenant un autre problème car en fait cela me sert à concaténer des adresses mail et ouvrir une fenetre de messagerie :
Dim strInput As Variant Application.FollowHyperlink strInput, , True
et ça a l'air de planter lorsque strInput est trop long ; quelqu'un saurait-il quelle est la limite ?
merci d'avance
Bonjour.
tu peux passer par un recordset basé sur ton sous-formulaire et faire une boucle pour récupérer toutes tes données. Dim Rs As DAO.Recordset Set Rs = Forms!formulaireprincipal!sous_formulaire.Form.Recordset Rs.MoveFirst Do Until Rs.EOF MsgBox Rs!monchamp ' par exemple Loop Set Rs = Nothing