Bonjour à vous,
En parcourant ce site et internet je ne trouve pas de réponse pour m'orienter vers telle ou telle façon de coder : DAO ou RecordSource ?
En fait, comme toutes bases Access, j'ai des formulaires et des tables. J'essaye de créer le moins de requêtes possibles directement avec Access en les créant plutôt en VBA et de façon dynamique. Par exemple, le même code créant une requête sql va être le même, quelque soit le formulaire afficher à l'écran. Pour cela j'utilise le RecordSource de mes formulaires. Code exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 '================================================================================================ 'CHAINE SQL INITIALE DU FORMULAIRE-LISTE '================================================================================================ Public Function fctChaineInitialeFormListeSTR( _ ByVal ActionSTR As String) 'Déclaration Dim ChaineSqlSTR As String 'chaine SQL Dim WhereSqlSTR As String 'filtre via le WHERE de la requête ' Définir l'option WHERE de la requête avant de définir la chaine de requête WhereSqlSTR = "" If ActionSTR <> "" Then WhereSqlSTR = "WHERE (((R__Select_LocalSelect.Select_ActionTxt)=" & Chr(34) & ActionSTR & Chr(34) & "));" ' Définir la chaine de requête ChaineSqlSTR = "SELECT DISTINCTROW " & FormEnCoursCtrlsrceiniSTR & ".*, R__Select_LocalSelect.* " _ & "FROM " & FormEnCoursCtrlsrceiniSTR & " " _ & "LEFT JOIN R__Select_LocalSelect " _ & "ON " & FormEnCoursCtrlsrceiniSTR & "." & FormEnCoursChampcleSTR & " = " _ & "R__Select_LocalSelect.Select_CleidTxt " _ & WhereSqlSTR CadreFRM.Form.RecordSource = ChaineSqlSTR End Function
Ce n'est qu'un exemple où on voit que je crée en VBA la chaine sql au format String pour ensuite l'ajouter en tant que Source de mes formulaires.
Ayant un autre formulaire contenant des contrôles (listes, texte, etc) qui servent de filtre, je souhaite imbriquer des Chaine Sql l'une dans l'autre de type : ChaineSqlSTR = "SELECT * FROM " & ChaineSqlSTR & "Where " & MonNouveauFiltre
Mais avant de m'engager trop dans cette direction, je souhaitais savoir s'il était possible de gérer ce genre de chose avec le DAO, c'est-à-dire pouvoir avoir un formulaire dont la source est un Recordset DAO et pouvoir modifier cette source pour lui appliquer des filtres en fonction de différents contrôles de mon formulaire de filtres ?
En fait, on voit dans les tuto, ... que le Recordset DAO est à chaque fois crée pour faire une action. Mais moi, je souhaite pouvoir modifier le Recordset DAO avec différents boutons sur mon formulaire. Du coup, le Recordsert resterait ouvert le temps que le formulaire est ouvert puis serait refermé et vidé lorsque le formulaire est fermé, bien-sûr en ayant pris soin d'avoir enregistré les modifications, ajouts et suppressions d'enregistrements dans les tables adéquates. Je n'arrive pas à trouver un tuto ou des exemples de code DAO permettant cela.
Excellent week-end
Partager