A voir également:
- Implementer des zone de liste et requetes
- Zone telechargement - Accueil - Outils
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Gertrude a préparé la liste des affaires à prendre pour l'excursion. juliette a modifié cette liste en utilisant le mode suivi des modifications proposé par le traitement de texte. - Guide
- Appel data zone franche - Forum Consommation & Internet
1 réponse
Utilisateur anonyme
13 juil. 2007 à 15:17
13 juil. 2007 à 15:17
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