![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE. |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Invité de passage
![]() |
Bonjour,
J'ai un formulaire, relié à une table, dont un des champs est une liste déroulante. Je souhaite rafraichir les champs du formulaire et n'afficher que les enregistrements correspondant au critère séléctionné de ma liste. dans l'évènement "on change", j'ai mis le code suivant : Code :
Private Sub RegionAdherent_Change() Dim strTable As String, strField As String, strCriteria As String, strSql As String Dim Criter As Variant strTable = "T1Adherents" ' recupère le nom de la table strField = "RegionAdherent" ' recupère le nom du champ ' compose le critere de recherche strCriteria = strTable & "." & strField & " = " & Me.RegionAdherent ' construit la requête sql strSql = strTable & ".*" strSql = strSql & " FROM " & strTable strSql = strSql & " WHERE ((" & strCriteria & "));" Me.Query = strSql ' affecte sql a lst_Resultat Me.Requery Me.Refresh End Sub Il ne me rafraichit rien, m'affiche toujours tous mes enregistrements |
|
|
|
|
|
#2 (permalink) |
![]() ![]() |
Bonjour,
Dans l'absolu, cette routine suffit amplement : Code :
Private Sub RegionAdherent_AfterUpdate() Me.RecordSource = "SELECT * FROM T1Adherents WHERE RegionAdherent = " & _ Me!RegionAdherent & ";" End Sub Code :
Private Sub RegionAdherent_AfterUpdate() Dim lngCountBefore As Long If Not IsNull(Me.RegionAdherent) Then lngCountBefore = DCount("*", "T1Adherents", "[RegionAdherent]=" & _ Me!RegionAdherent) If lngCountBefore Then Me.RecordSource = _ "SELECT * FROM T1Adherents WHERE RegionAdherent = " & _ Me!RegionAdherent & ";" Else MsgBox "Aucun enregistrement ne correspond à cette région !", _ vbExclamation End If End If End Sub P.S. Ta procédure initila n'étant pas générique, ne perds pas de temps à créer des variable pour définir ta table et ton champ. Comme tu le vois, une seule ligne de code suffit...
__________________
Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment... Web Site ‡ @Mail Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007 Tutoriels : Créer un gestionnaire de Post-It pour vos applications Access et Synchroniser 2 zones de liste dans un formulaire MDB Viewer : Visionneuse Access v3.0 |
|
|
|
![]() |
![]() |
||
rafraichir formulaire avec critere (liste déroulante)
|
||
Offres d'
emploi informatique
sur Lesjeudis.com
|
| Outils de la discussion | |
|
|