[Access] et vba

biloue Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   -  
biloue Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   7
 
Svp personne à une petite idée.
0
Lust Messages postés 243 Date d'inscription   Statut Membre Dernière intervention   123
 
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   Statut Membre Dernière intervention   155
 
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   Statut Membre Dernière intervention   7
 
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   Statut Membre Dernière intervention   180
 
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   Statut Membre Dernière intervention   7
 
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