Access
Fermé
renart
Messages postés
12
Date d'inscription
mardi 30 mars 2004
Statut
Membre
Dernière intervention
22 avril 2013
-
28 juil. 2004 à 23:24
renart - 29 juil. 2004 à 20:55
renart - 29 juil. 2004 à 20:55
1 réponse
Bonjour,
Bon, c'est pas évident à expliquer, mais voici comment je procède.
TableA = Table de données
TableB = Table des utilisateurs
RequêteA = Requête de la table des données sans restriction
RequêteB = Requête de la table des utilisateurs sans restriction
FormulaireA = Formulaire en cours tirant ses données des requêtes A & B
Placer un liste déroulante sur le formulaire et accrocher la sur
la requête B.
Ouvrir la requête B, placer un filtre pour trouver un nom en particulier.
Passer en mode SQL, vous devriez obtenir quelque chose du genre:
SELECT * FROM [TableB] WHERE ((([TableB].Utilisateur)="Prénom Nom"));
Faire un copier/coller de cette string
Sur la liste déroulante, allez dans l'évènement [ Après MAJ ],
Procédure événementielle et créer la routine suivante :
Dim NomUser As String
Dim Critère As String
NomUser = Forms![Formulaire].[ListeDéroulanteNomUser]
Critere = "Select * from [TableB] where [Utilisateur] = "
Critere = Critere & """" & NomUser & """"
Ainsi, la chaine de caractère qui forme la requête SQL est modifier par programmation. Maintenant il faut changer la requête par
programmation.
J'appelle ici une fonction pour modifier la requête, si la modification
est effectué alors mise à jour formulaire.
If (ChangeRequeteDef("RequeteB", Critere)) Then
Me.Refresh
Else
MsgBox "Impossible de modifier la requête"
End If
Et enfin, ici la fonction qui modifie la requête :
Public Function ChangeRequeteDef(ChaineRequete As String, ChaineSQL As String) As Boolean
Dim Definition As Variant
If ((ChaineRequete = "") Or (ChaineSQL = "")) Then
ChangeRequeteDef = False
Else
Set Definition = CurrentDb.QueryDefs(ChaineRequete)
Definition.SQL = ChaineSQL
Definition.Close
RefreshDatabaseWindow
ChangeRequeteDef = True
End If
End Function
Amicalement
Lupin
Bon, c'est pas évident à expliquer, mais voici comment je procède.
TableA = Table de données
TableB = Table des utilisateurs
RequêteA = Requête de la table des données sans restriction
RequêteB = Requête de la table des utilisateurs sans restriction
FormulaireA = Formulaire en cours tirant ses données des requêtes A & B
Placer un liste déroulante sur le formulaire et accrocher la sur
la requête B.
Ouvrir la requête B, placer un filtre pour trouver un nom en particulier.
Passer en mode SQL, vous devriez obtenir quelque chose du genre:
SELECT * FROM [TableB] WHERE ((([TableB].Utilisateur)="Prénom Nom"));
Faire un copier/coller de cette string
Sur la liste déroulante, allez dans l'évènement [ Après MAJ ],
Procédure événementielle et créer la routine suivante :
Dim NomUser As String
Dim Critère As String
NomUser = Forms![Formulaire].[ListeDéroulanteNomUser]
Critere = "Select * from [TableB] where [Utilisateur] = "
Critere = Critere & """" & NomUser & """"
Ainsi, la chaine de caractère qui forme la requête SQL est modifier par programmation. Maintenant il faut changer la requête par
programmation.
J'appelle ici une fonction pour modifier la requête, si la modification
est effectué alors mise à jour formulaire.
If (ChangeRequeteDef("RequeteB", Critere)) Then
Me.Refresh
Else
MsgBox "Impossible de modifier la requête"
End If
Et enfin, ici la fonction qui modifie la requête :
Public Function ChangeRequeteDef(ChaineRequete As String, ChaineSQL As String) As Boolean
Dim Definition As Variant
If ((ChaineRequete = "") Or (ChaineSQL = "")) Then
ChangeRequeteDef = False
Else
Set Definition = CurrentDb.QueryDefs(ChaineRequete)
Definition.SQL = ChaineSQL
Definition.Close
RefreshDatabaseWindow
ChangeRequeteDef = True
End If
End Function
Amicalement
Lupin
29 juil. 2004 à 20:55
Ca me semble très ardu, mais je vais m'appliquer à comprendre.
Renart