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.
A voir également:
- Implementer des zone de liste et requetes
- Liste déroulante excel - Guide
- Alternative zone telechargement - Accueil - Outils
- Liste code ascii - Guide
- Liste déroulante en cascade - Guide
- Liste des appareils connectés - Guide
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 :
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:
Pour la chaine SQL, c'est plus tordu, il faut décomposer la requête par
concaténation, voici ce que ça donne :
Avec ça tu devrais avoir a t'amuser si l'orientation t'intéresse.
Lupin
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