[Access] et vba

Fermé
biloue Messages postés 82 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 20 juillet 2011 - 2 nov. 2005 à 18:09
biloue Messages postés 82 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 20 juillet 2011 - 8 nov. 2005 à 09:45
Bonjour,
Je travail actuellement sur access et vba. J'éxécute des requetes à partir de vba afin d'obtenir un tri dans ma table. Ce tri varie en fonction des options sélectionnées par l'utilisateur. Après l'éxécution de ma requete j'ouvre un état comprenant le résultat de ma requete.
Mon problème c'est lorsque je veux vérifier si ma requete est vide ou non. Elle se trouve toujours vide. Alors quel lorsque j'affiche l'état j'ai des enregistrements correspondant. Je me suis rendue compte que tant que ma fonction n'était pas terminé la requete ne s'éxécute pas.
Est ce que quelqu'un aurais une idée sur ce qu'il manque à mon prog pour que la requete s'éxécute.

ci joint mon code :

Private Sub Génébutton_Click()

Dim ssql As String 'Requete SQL en text
Dim catcurr As New ADOX.Catalog '
Dim cmdcurr As New ADODB.Command 'Command d'une requete sql
Dim mproc As ADOX.Procedure

catcurr.ActiveConnection = CurrentProject.Connection
Set mproc = catcurr.Procedures("qcartecont") 'Défnition de la requete à modifier "qcartecont"
Set cmdcurr = mproc.Command


ssql = " SELECT NumProcessus.Désignation AS Processus, SSProc.[Sous Processu] AS [Sous processus]" & _
" FROM Ttank INNER JOIN (Ttank AS Ttank_1 INNER JOIN (SSProc INNER JOIN (NumProcessus INNER JOIN qperte ON NumProcessus.NumProc = qperte.Processus) ON SSProc.NumSSProc = qperte.SSProcessus) ON Ttank_1.Num = qperte.PtDep) ON Ttank.Num = qperte.PtArr" & _
" WHERE (((qperte.Processus) = " & Processus.Value & ") AND ((qperte.SSProcessus) = " & SSProcessus.Value & ") AND ((Ttank.Désignation) = " & Chr$(34) & PTArr.Value & Chr$(34) & ") AND ((Ttank_1.Désignation) = " & Chr$(34) & PtDep.Value & Chr$(34) & ")" & _
" AND (qperte.Date)>= [Forms]![frm_carte]![txtdatefrom]" & _
" AND (qperte.Date) <= [Forms]![frm_carte]![txtdateto]" & _
")" & _
" GROUP BY NumProcessus.Désignation, SSProc.[Sous Processu], Ttank_1.Désignation, Ttank.Désignation, qperte.Date, qperte.ConsTmax, qperte.ConsTmin, qperte.ConsVol, qperte.Temps, qperte.Volume;"

'Exécution de la requète
cmdcurr.CommandText = ssql
Set mproc.Command = cmdcurr

Set cmdcurr = Nothing
Set catcurr = Nothing
Set mproc = Nothing

DoCmd.OpenReport "rcartecont", acPreview

End Sub

ps : la requete SQL marche.

6 réponses

biloue Messages postés 82 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 20 juillet 2011 7
4 nov. 2005 à 10:22
Svp personne à une petite idée.
0
Lust Messages postés 243 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 12 septembre 2007 123
4 nov. 2005 à 16:53
J'aimerais que tu m'explique à quoi te sert tous ce code sql??? Tu initialise la commande et tu la ferme aussitot... Je vois pas ce que tu veux faire avec ici avec une requete de sélection...Comprend pas
0
random Messages postés 1612 Date d'inscription vendredi 26 novembre 2004 Statut Membre Dernière intervention 30 mars 2006 155
4 nov. 2005 à 18:29
soit ton état a pour source la requête et tu vas obtenir tes résultats

par contre si tu modifies la source il faut lancer un requery
0
biloue Messages postés 82 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 20 juillet 2011 7
7 nov. 2005 à 17:39
Mon état à pour source la requete mais lui est bien rafraichie. Par contre si je veux vérifier si ma requete et vide, elle est toujours vide. Le requery peur marcher mais je sais pas sur quoi le faire. Dois je le faire sur la command ou la procedure ?

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 180
8 nov. 2005 à 08:37
Si la requête SQL fonctionne, pourquoi ne l'utilises-tu pas simplement comme source pour ton état?
0
biloue Messages postés 82 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 20 juillet 2011 7
8 nov. 2005 à 09:45
j'utilise ma requete comme source de mon état et ça marche très bien. Mon souci c'est que ci je veut rajouter un test sur le nombre d'enregistrement dans ma requete elle apparait toujours vide tant que la fonction vba n'est pas terminée. Elle est raffraichie qu'une fois la fonction terminée.
J'ai essayé avec un requery mais je ne sais pas comment le placer puisqu'il ne marche qu'avec un recordset.
0