Bonjour,
J'ai quelques difficultes sur un projet sur lequel j'utilise la derniere version d'access. J'espere que quelqu'un pourra m'aider.
Tout d'abord, je souhaite realiser l'affichage d'une timesheet par utilisateur par semaine. Pour cela j'ai tout d'abord cree une requete selectionnant les informations a afficher que j'ai ensuite affiche dans un formulaire sous la dorme d'un tableau croise dynamique.
J'ai ensuite mis ce premier formulaire dans un second (maitre) qui permet de ne selectionner qu'un utilisateur. A ce moment, j'arrive a afficher mon tableau avec les bonnes informations pour le bon utilisateur. Il faut maintenant que je n'affiche le resultat que pour une periode donnee.
J'ai un menu permettant de circuler dans les semaines (periode choisie) et chaque fois je calcule le premier et le dernier jour a afficher. Il faut donc que j'utilise ces deux valeurs pour filtrer ma requete ("WHERE Date BETWEEN Date1 AND Date2;") seulement je ne m'en sors pas.
J'ai essaye de faire une requete parametrable ("PARAMETERS Date1 DateTime, Date2 DateTime;") puis d'utiliser les parametres dans mon code vba
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
25
26
27
28
29
30
31
32
33
34
35
36 Public Function CrossTable() On Error GoTo err Dim Db As DAO.Database Dim QryModele As DAO.QueryDef Dim strSQLModele As String Dim strNomQueryModele As String Dim strNomQuery As String strNomQueryModele = "qryCrossTable_modele" strNomQuery = "qryCrossTable" Set Db = CurrentDb Set QryModele = Db.QueryDefs(strNomQueryModele) strSQLModele = QryModele.SQL 'Effectue le remplacement du critere par la valeur strSQLModele = Replace(strSQLModele, "[Date1]", Format(DDate1, "mm/dd/yyyy")) strSQLModele = Replace(strSQLModele, "[Date2]", Format(DDate2, "mm/dd/yyyy")) 'Si la requête existe déjà alors If TestExistenceQuery(strNomQuery) Then 'alors modifier le code de la requête Db.QueryDefs(strNomQuery).SQL = strSQLModele 'Sinon Else 'Créer la nouvelle requête Db.CreateQueryDef strNomQuery, strSQLModele End If DoCmd.OpenQuery strNomQuery err: MsgBox "Une erreur est survenue", vbCritical End FunctionJ'ai une erreure quelque part mais je ne la comprends pas. Le code est tres grandement inspire d'ici : http://warin.developpez.com/access/requeteparametre/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Public Function TestExistenceQuery(strNameQuery As String) As Boolean On Error GoTo err Dim strNameRequete As String Dim Db As DAO.Database Dim QryTest As DAO.QueryDef Set Db = CurrentDb Set QryTest = Db.QueryDefs(strNameRequete) TestExistenceQuery = True err: End Function
Donc mes questions : est-ce que ma demarche est bonne?
Ensuite, qu'est-ce qui ne va pas dans mon code?
Merci d'avance pour votre aide,
Partager