PB ACCESS PLEASE HELP

Fermé
FABIEN - 15 juin 2001 à 16:41
 mat - 20 juin 2001 à 12:28
Bonjour je developpe une petite appli sos Access 2000, mais j'ai un petit problème.
Je veux que dans un formulaire apparaisse des graphiques. ces graphiques sont fait à partir d'une requête. Celle ci contient un paramètre:
SELECT *
FROM UTILISATEUR, [QUESTIONNAIRE APPROVISIONNEMENT]
WHERE ((([QUESTIONNAIRE APPROVISIONNEMENT].[Date_Qappro]) Between [Entré une date (FORMAT=MM/JJ/AA) :] And [Entré une date (FORMAT=MM/JJ/AA) :])) And ((([UTILISATEUR].[Numero_Utilisateur])=[QUESTIONNAIRE APPROVISIONNEMENT].[Numero_Utilisateur_Qappro]));
Bon elle marche mais le problème, c'est quand je veux visualiser ce formulaire, la requête s'execute 8 fois et me demande donc 8 fois d'entrer des dates.
Avez vous une solution ?
Je pensais exporter les résultats de cette requête dans une table contenant tous les champs de cette requête, mais je sais pas comment faire.

1 réponse

pour la requete qui s'execute plusieurs fois, je me souviens avoir eu ce problème, les graphiques sont pas top sous access...
ton idée de créer une table provisoire n'est pas mauvaise,
il donc dans ton code VBA, créer une table provisoire à l'aide d'une requete sql : méthode CREATE TABLE (syntaxe à vérifier)
Puis tu peux remplir ta table à l'aide un recordset construit sur ta requete sql et un autre construit sur ta table, puis demander à tes graphe de ce créer sur la table.
Sinon tu peux laisser la table provisoire toujours créée, c'est à dire que tu la crée à la mimine? dès que tu veux tes graphe, tu ouvres tes deux recordset, le premier sur la table qui va la remplir (attention avant il faut la clear) puis le deuxieme recordset ouvert sur ta requete qui va lire les enregistrements et les passer à ton premier recordset.
Attention, si tu utilises une appli en réseau (les tables sont liées) met cette table provisoire en local (ca évitera les interactions entre utilisateur)

les codes pour les recordset est le suivant:

Dim db As Database, rst2 As Recordset
Set db = CurrentDb()
Set rst2 = db.OpenRecordset("SELECT prescritcaractprovi.* FROM prescritcaractprovi WHERE ;")
rst2. (ce que tu veux...)
...
rst2.close

et voila
a+
mat
0