Implementer des zone de liste et requetes
jolly212
-
Utilisateur anonyme -
Utilisateur anonyme -
BJR, nouveau dans access.
je voudrais creer un formulaire qui va me permettre de creer mes requettes
j'ai 10 colonnes et j'ai des combinaisons diferentes de requettes possibles.
Je voudrais que dans mon formulaire j'ai une zone de liste qui me propose en choix les titre des colonnes
et si je choisisun titre dans cette liste, une nouvelle liste aparait à coté et au fur et à mesure je crée mes requettes.
Si je choisi dans dans 5 zones de liste A, B, C,D,E, ma requette sera de presenter les colonnes A,B,C,D,E.
Donc domment, incrementer à chaque choix une nouvelle zone de liste.
je voudrais creer un formulaire qui va me permettre de creer mes requettes
j'ai 10 colonnes et j'ai des combinaisons diferentes de requettes possibles.
Je voudrais que dans mon formulaire j'ai une zone de liste qui me propose en choix les titre des colonnes
et si je choisisun titre dans cette liste, une nouvelle liste aparait à coté et au fur et à mesure je crée mes requettes.
Si je choisi dans dans 5 zones de liste A, B, C,D,E, ma requette sera de presenter les colonnes A,B,C,D,E.
Donc domment, incrementer à chaque choix une nouvelle zone de liste.
Configuration: Windows 2000 Internet Explorer 6.0
1 réponse
-
Bonjour,
Je puis vous suggérer une méthode qui consiste à modifier vos requêtes par programmation VBA !
Cette astuce est tiré d'un bouquin sur VBA Access 97, mais une fois intégré c'est géant :-)
Voici la fonction maitresse :
Public Function ChangeRequeteDef(ChaineRequete As String, ChaineSQL As String) As Boolean Dim Definition As QueryDef 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
Donc ici 2 paramètres a greffer :
[ ChaineRequete ], soit le nom de la requête a modifier.
[ ChaineSQL ], soit la requête elle même exprimer en texte.
Le nom de la requête est relativement simple a identifier, soit
par variable, soit par constante.
ex:
Public Const Requete_Titre = "Requête par Titre"
Pour la chaine SQL, c'est plus tordu, il faut décomposer la requête par
concaténation, voici ce que ça donne :
Private Sub Liste_Cassette_AfterUpdate() Dim Chaine As String Dim Critere As String Dim CassetteVidéo As String On Error GoTo Liste_Cassette_Err ' Capture du numéro de la cassette vidéo CassetteVidéo = Forms![Formulaire Édition Liste Vidéo].[Liste Cassette] ' Fabrication de la requête SQL sous forme de texte par concaténation Chaine = "Select * from [Table Vidéo] where [Cassette] = " Critere = Chaine & """" & CassetteVidéo & """" ' Appel à la fonction de modification de requête If (ChangeRequeteDef("Requête Liste Spécifique Cassette", Critere)) Then DoCmd.OpenForm "Formulaire Liste Spécifique Édition Cassette", acNormal, "", "[Cassette]", , acNormal End If Liste_Cassette_Exit: Exit Sub Liste_Cassette_Err: MsgBox Error$ Resume Liste_Cassette_Exit End Sub '
Avec ça tu devrais avoir a t'amuser si l'orientation t'intéresse.
Lupin