A voir également:
- Implementer des zone de liste et requetes
- Liste déroulante excel - Guide
- Zone telechargement - Guide
- Liste de numéro de téléphone suspect 07 ✓ - Forum Mobile
- Téléchargement direct : les bonnes adresses des sites pirates en 2023 - Guide
- Le fichier contient une liste de prénoms. triez ce tableau par ordre alphabétique des prénoms. quel mot est formé par les 6 premières lettres de la colonne code ? - Forum Bureautique
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