[access](RESOLU) savoir si une requête sort un résultat ou non ??

savoir si une requête sort un résultat ou non ?? [access] (RESOLU) - VB/VBA/VBS - Programmation

Marsh Posté le 23-06-2004 à 10:19:47    

bonjour  
 
j'aurais voulu savoir comment savoir si une requete sort un résultat ou non ??
 
c-a-d si la requete sort un résultat, je fais une action sinon je ne fais rien ?
ceci n'est pas du code, mais de l'algo....
 
if requete.value =true then
 
action
 
else
 
rien
 
end if


Message édité par pitoudali le 24-06-2004 à 16:27:38
Reply

Marsh Posté le 23-06-2004 à 10:19:47   

Reply

Marsh Posté le 23-06-2004 à 10:22:00    

lol juste :
 
si résultat de requete alors *action* fin
 
 
:D


Message édité par Dr Raf le 23-06-2004 à 10:23:00
Reply

Marsh Posté le 23-06-2004 à 10:46:09    

Dr Raf a écrit :

lol juste :
 
si résultat de requete alors *action* fin
 
 
:D


 
cool mais une idée pour résoudre mon blm serais plus approprié :) merci !!!!!

Reply

Marsh Posté le 23-06-2004 à 10:51:04    

c ça qui m'as induit en erreur :
 

Citation :

ceci n'est pas du code, mais de l'algo....

 
 
 
 
bon si tu voulais qu'on t'aide fallait dire quelle language (à priori vb ou un truc dans le genre)
 

if not ObjRecordset.eof then
 
     action
 
end if


Message édité par Dr Raf le 23-06-2004 à 10:51:17
Reply

Marsh Posté le 23-06-2004 à 10:53:31    

Ben, ça dépend du type de requete. Si c'est un SELECT, tu recupère qq chose dans un recordset, ou tu obtiens un recordset vide. Si un DELETE ou INSERT, en VB, tu peux récupérer une variable de retour avec le nb. d'enregistrements touchés... Si j'ai bien compris la question.


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 23-06-2004 à 10:59:09    

hum a mon avis c'est pour un recordset tel que la pseudo proplématique est posée :D
 
si c une requete sans recordset ca te fé une erreur et ta le message...

Reply

Marsh Posté le 23-06-2004 à 11:16:53    

merci bien a vous !!!!
 
seul petit blem, acces me dit " trop peu de paramètres. 2 attendu"
que cela signifie ?
en vous remerciant d'avance de vos réponses
 
de plus c bien une requete SELECT :) me suis pas encore aventuré ds les autres types de requetes :):)

Reply

Marsh Posté le 23-06-2004 à 11:20:17    

commence par nous montrer ta requête, tu nous aide pas bcp pour l'instant...


Message édité par Dr Raf le 23-06-2004 à 11:20:27
Reply

Marsh Posté le 23-06-2004 à 11:25:06    

pitoudali a écrit :

merci bien a vous !!!!
 
seul petit blem, acces me dit " trop peu de paramètres. 2 attendu"
que cela signifie ?
en vous remerciant d'avance de vos réponses
 
de plus c bien une requete SELECT :) me suis pas encore aventuré ds les autres types de requetes :):)


 
donc a mon avis il attend 2 paramètres qui pourtant sont entrer dans 2 zone de texte et qui sont bien recup par la requete :(
voici le code:
 
    Dim stDocName As String
    Dim stLinkCriteria As String
    Dim Rs As Recordset
     
 
Set Rs = CurrentDb.OpenRecordset("reqlogin" )
 
If Not Rs.EOF Then
    stDocName = "page de connection BD"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
End If
 
 
le code de la requete:

SELECT login.login, login.passwd
FROM login
WHERE (((login.login)=[Formulaires]![formlogin]![login]) AND ((login.passwd)=[Formulaires]![formlogin]![passwd]));

Reply

Marsh Posté le 23-06-2004 à 11:29:24    

l'erreur est bien sur : Set Rs = CurrentDb.OpenRecordset("reqlogin" )  ?

Reply

Marsh Posté le 23-06-2004 à 11:29:24   

Reply

Marsh Posté le 23-06-2004 à 11:33:55    

Dr Raf a écrit :

l'erreur est bien sur : Set Rs = CurrentDb.OpenRecordset("reqlogin" )  ?


 
ok alors merci  
mais comment régler ce problème ?
on a l'erreur mais la solution ??
 
c pas que je suis naze en VBA, je suis une vrai M..... en VBA ( nuance ) :) :cry:  
en tt cas Dr Raf, c cool de répondre ;) :sol:  :love:  lol

Reply

Marsh Posté le 23-06-2004 à 11:44:25    

hum... ct une kestion vu que tu met pas la ligne de l'erreur ca aurait pu être sur "DoCmd.OpenForm stDocName, , , stLinkCriteria " par exemple.......................................

Reply

Marsh Posté le 23-06-2004 à 11:55:35    

Dr Raf a écrit :

hum... ct une kestion vu que tu met pas la ligne de l'erreur ca aurait pu être sur "DoCmd.OpenForm stDocName, , , stLinkCriteria " par exemple.......................................


l'erreur ne provient pas de "DoCmd.OpenForm stDocName, , , stLinkCriteria ", c sur car si je ùmet une msgbox a la place meme msg d'erreur
 
en fait je n'est aucune idée d'ou peu bien provenir l'erreur, car access me dit juste " trop peu de paramètre. 2 attendu", j'imagine alors qu'il attend 2 paramètres, qui pourtant sont bien récupérer dans la requête puisque cette requête fonctionne .
 
voila en tte simplicité je cherche a avoir des utilisateurs répertoriés dans une table, avec leur passwd respectifs , je leurs demande de rentrer leur login ds une textbox et leur passwd dans une autre textbox, si a l'execution de la requete "select", il en ressort un résultat c que c good et alors j'ouvre la page d'accueil de l'appli, sinon il ne se passe rien, à la limite un msgbox(" pad bon login et passwd" )...
 
voila, mais pour le moment je vois pas pourquoi il me prend pas mes paramètres ...
 
si quelqu'un a une idée, qu'il m'ouvre les yeux, car is sont plein de .... :ouch:

Reply

Marsh Posté le 23-06-2004 à 12:01:06    

fait afficher la requete dans ton prog peut etre que les paramètres de la requête sont vides...
(en tout cas ta requete me parle vraiment pas, c du SQL ca ?
 
((login.login)=[Formulaires]![formlogin]![login])


Message édité par Dr Raf le 23-06-2004 à 12:01:25
Reply

Marsh Posté le 23-06-2004 à 12:07:36    

Ca ne peut pas marcher tel que. Le fait de faire un set rs = MaRequete declanche la requete alors que le formulaire n'est pas ouvert, encore moins rempli. La requete veut 2 parametres (login et passwd), d'où le message d'erreur.
  Il faut déclancher la requete à partir d'un bouton sur le formulaire formlogin. Formulaire ouvert, champs remplis, la requete aura ses parametres.


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 23-06-2004 à 12:09:36    

Un RS vide, ça se teste pas avec "BOF" uniquement :o
 
EOF ca dit qu'on est à la fin (après la dernière ligne)
BOF ca dit qu'on est au début (avant la première ligne)
 
Donc un RS vide, c'est :
 
if rs.BOF and rs.EOF then
   msgbox("il est vide" )
elseif rs.BOF then
   msgbox("on est au début" )
elseif rs.EOF then
   msgbox("on est à la fin" )
else
   msgbox("on est en train de se balader dedans" )
end if

Reply

Marsh Posté le 23-06-2004 à 12:12:01    

je te met au defis de me montrer un formulaire vide avec eof <> true...
 
enfin si tu veux faire défiler les résultats tu met simplement :
 

while not rst.eof
...
rst.movenext
wend


Message édité par Dr Raf le 23-06-2004 à 12:13:43
Reply

Marsh Posté le 23-06-2004 à 13:27:30    

:heink:
 
c'est suite à mon post que du dit ça, ou en réponse à une autre personne ? parcequ'il faut m'expliquer je vois pas le rapport.
 
quand à while ... wend, fout-moi ça a la poubelle et utilise la "vraie" symaxe do while ... loop

Reply

Marsh Posté le 23-06-2004 à 14:01:36    

Dr Raf a écrit :

fait afficher la requete dans ton prog peut etre que les paramètres de la requête sont vides...
(en tout cas ta requete me parle vraiment pas, c du SQL ca ?
 
((login.login)=[Formulaires]![formlogin]![login])


c du SQL à la access voila c tt y a rien d'autre à dire

Reply

Marsh Posté le 23-06-2004 à 14:04:10    

JihemAir a écrit :

Ca ne peut pas marcher tel que. Le fait de faire un set rs = MaRequete declanche la requete alors que le formulaire n'est pas ouvert, encore moins rempli. La requete veut 2 parametres (login et passwd), d'où le message d'erreur.
  Il faut déclancher la requete à partir d'un bouton sur le formulaire formlogin. Formulaire ouvert, champs remplis, la requete aura ses parametres.


 
ma requete se déclenche a l'aide d'un bouton sur le formulaire , dc le formulaire est ouvert et je remplis mes champs avant d'appuyer sur le bouton :):) ( qd même :) ) mais ca n'empeche que ca me met le message d'erreur " trop peu de paramètre...."

Reply

Marsh Posté le 23-06-2004 à 14:07:23    

Arjuna a écrit :

Un RS vide, ça se teste pas avec "BOF" uniquement :o
 
EOF ca dit qu'on est à la fin (après la dernière ligne)
BOF ca dit qu'on est au début (avant la première ligne)
 
...


 
même avec eof et bof tjs pas prise en compte de mes paramètres ...,
 

Reply

Marsh Posté le 23-06-2004 à 14:08:47    

Le message, il s'affiche à l'ouverture du formulaire ou à l'appui sur le bouton ?


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 23-06-2004 à 14:17:27    

Arjuna a écrit :

:heink:
 
c'est suite à mon post que du dit ça, ou en réponse à une autre personne ? parcequ'il faut m'expliquer je vois pas le rapport.
 
quand à while ... wend, fout-moi ça a la poubelle et utilise la "vraie" symaxe do while ... loop


 
 
hum.. oubli g du mal comprendre  :whistle:

Reply

Marsh Posté le 23-06-2004 à 14:17:39    

JihemAir a écrit :

Le message, il s'affiche à l'ouverture du formulaire ou à l'appui sur le bouton ?


 
a l'appuie sur le bouton, apres avoir rempli les champs

Reply

Marsh Posté le 23-06-2004 à 14:30:04    

pitoudali a écrit :

a l'appuie sur le bouton, apres avoir rempli les champs

Perso, je n'utilise pas les requetes stockées avec parametres, parce que je sais pas faire  :D . Enfin, je sais faire, mais c'est compliqué. Il faut passer par des collections de paramètres, bref, c'est gonflant. Je préfère générer ma requete dans le code.
Je récupère les strings des textbox et je construis la requete:

Code :
  1. Dim strName as String, strPasswd as String
  2. Dim strSql as String
  3.   strName = txtTextBoxName
  4.   strPasswd = txtTextPass
  5.   strSql = "SELECT * FROM login WHERE login LIKE '" & strName & "' AND passwd LIKE '" & strPasswd & "';"


Après, tu envoies la requete et tu récupère le résultat.
 
   
 
 


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 23-06-2004 à 14:44:32    

comment envoie tu alors la requete ??
je ne vois pas comment avec le "strSql"
Set Rs = CurrentDb.OpenRecordset("strSql" ) ca ca ne passe pas :(

Reply

Marsh Posté le 23-06-2004 à 14:50:21    

Tu charges un recodset direct avec la requete:

Code :
  1. Dim rsTmp As Recordset
  2.    Set rsTmp = CurrentDb.OpenRecordset(strSQL)

Voilà...
Edit: j'envoie le code que tu cites..
C'est quoi, le message d'erreur ?
 


Message édité par JihemAir le 23-06-2004 à 14:51:50

---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 23-06-2004 à 14:58:21    

dc j'ai mis ta ligne de code  
Set rsTmp = CurrentDb.OpenRecordset(strSQL)
 
il me met en msg d'erreur "incompatibilté de type", mais ne me  surligne pas la ligne en jaune

Reply

Marsh Posté le 23-06-2004 à 15:03:50    

As tu déclaré rsTmp?


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 23-06-2004 à 15:04:32    

Set rsTmp = CurrentDb.OpenRecordset(strSql)
 
c'est sur cette ligne qu'il y a imcompatibilité de type

Reply

Marsh Posté le 23-06-2004 à 15:05:08    

JihemAir a écrit :

As tu déclaré rsTmp?


 
yes c déclarer

Reply

Marsh Posté le 23-06-2004 à 15:09:25    

ca serais pas un blem de librairie ?? par contre je sais pas uo aller pour en ajouter ( tt comme tu avais expliquer a Mr Mazurier, pour la librairie DAO ...) c avec access 2000 que je travail

Reply

Marsh Posté le 23-06-2004 à 15:42:15    

Ben c'est pareil. Quand tu es dans un module VB, tu fais "Outils", "Références", et tu choisis Micro$oft DAO ...


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 24-06-2004 à 08:56:15    

 Dim rs As Recordset
  Dim strName As String, strPasswd As String
  Dim rsTmp As DAO.Recordset
  Dim qdReq As DAO.QueryDef
 
   strName = login.Value
   strPasswd = passwd.Value
 
Set qdReq = CurrentDb.CreateQueryDef("", "SELECT * FROM login WHERE login LIKE '" & strName & "' AND passwd LIKE '" & strPasswd & "';" )
 
Set rsTmp = qdReq.OpenRecordset
   
   
If Not rsTmp.EOF Then
MsgBox ("good" )
End If

Reply

Marsh Posté le 24-06-2004 à 08:58:28    

voila le code qui passe !!
de plus j'avais pas la dll DAO ....
merci a JihemAir pour sa patience envers mon incompétence :):)
comme l'aurais dit un certain monsieur " T'es un puissant toi "
merci !!!!

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed