Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2288 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°773932
pitoudali
Posté le 23-06-2004 à 10:19:47  profilanswer
 

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
mood
Publicité
Posté le 23-06-2004 à 10:19:47  profilanswer
 

n°773936
Dr Raf
Roaccutane® powered
Posté le 23-06-2004 à 10:22:00  profilanswer
 

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


Message édité par Dr Raf le 23-06-2004 à 10:23:00
n°773974
pitoudali
Posté le 23-06-2004 à 10:46:09  profilanswer
 

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 !!!!!

n°773981
Dr Raf
Roaccutane® powered
Posté le 23-06-2004 à 10:51:04  profilanswer
 

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
n°773987
JihemAir
Je sais pas
Posté le 23-06-2004 à 10:53:31  profilanswer
 

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 ?
n°773996
Dr Raf
Roaccutane® powered
Posté le 23-06-2004 à 10:59:09  profilanswer
 

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...

n°774036
pitoudali
Posté le 23-06-2004 à 11:16:53  profilanswer
 

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 :):)

n°774046
Dr Raf
Roaccutane® powered
Posté le 23-06-2004 à 11:20:17  profilanswer
 

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
n°774053
pitoudali
Posté le 23-06-2004 à 11:25:06  profilanswer
 

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]));

n°774062
Dr Raf
Roaccutane® powered
Posté le 23-06-2004 à 11:29:24  profilanswer
 

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

mood
Publicité
Posté le 23-06-2004 à 11:29:24  profilanswer
 

n°774073
pitoudali
Posté le 23-06-2004 à 11:33:55  profilanswer
 

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

n°774085
Dr Raf
Roaccutane® powered
Posté le 23-06-2004 à 11:44:25  profilanswer
 

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.......................................

n°774099
pitoudali
Posté le 23-06-2004 à 11:55:35  profilanswer
 

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:

n°774109
Dr Raf
Roaccutane® powered
Posté le 23-06-2004 à 12:01:06  profilanswer
 

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
n°774121
JihemAir
Je sais pas
Posté le 23-06-2004 à 12:07:36  profilanswer
 

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 ?
n°774125
Arjuna
Aircraft Ident.: F-MBSD
Posté le 23-06-2004 à 12:09:36  profilanswer
 

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

n°774130
Dr Raf
Roaccutane® powered
Posté le 23-06-2004 à 12:12:01  profilanswer
 

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
n°774202
Arjuna
Aircraft Ident.: F-MBSD
Posté le 23-06-2004 à 13:27:30  profilanswer
 

: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

n°774251
pitoudali
Posté le 23-06-2004 à 14:01:36  profilanswer
 

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

n°774253
pitoudali
Posté le 23-06-2004 à 14:04:10  profilanswer
 

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...."

n°774259
pitoudali
Posté le 23-06-2004 à 14:07:23  profilanswer
 

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 ...,
 

n°774260
JihemAir
Je sais pas
Posté le 23-06-2004 à 14:08:47  profilanswer
 

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 ?
n°774278
Dr Raf
Roaccutane® powered
Posté le 23-06-2004 à 14:17:27  profilanswer
 

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:

n°774279
pitoudali
Posté le 23-06-2004 à 14:17:39  profilanswer
 

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

n°774302
JihemAir
Je sais pas
Posté le 23-06-2004 à 14:30:04  profilanswer
 

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 ?
n°774327
pitoudali
Posté le 23-06-2004 à 14:44:32  profilanswer
 

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

n°774337
JihemAir
Je sais pas
Posté le 23-06-2004 à 14:50:21  profilanswer
 

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 ?
n°774343
pitoudali
Posté le 23-06-2004 à 14:58:21  profilanswer
 

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

n°774352
JihemAir
Je sais pas
Posté le 23-06-2004 à 15:03:50  profilanswer
 

As tu déclaré rsTmp?


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
n°774354
pitoudali
Posté le 23-06-2004 à 15:04:32  profilanswer
 

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

n°774357
pitoudali
Posté le 23-06-2004 à 15:05:08  profilanswer
 

JihemAir a écrit :

As tu déclaré rsTmp?


 
yes c déclarer

n°774367
pitoudali
Posté le 23-06-2004 à 15:09:25  profilanswer
 

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

n°774436
JihemAir
Je sais pas
Posté le 23-06-2004 à 15:42:15  profilanswer
 

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 ?
n°775195
pitoudali
Posté le 24-06-2004 à 08:56:15  profilanswer
 

 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

n°775200
pitoudali
Posté le 24-06-2004 à 08:58:28  profilanswer
 

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 !!!!

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 

Sujets relatifs
mysql : requête entre plusieurs lignes N, N-1, N-2, etc...[RESOLU]Peut on attraper un utilisateur aleatoirement dans une bdd?
Gestion signets word à partir d'access[ Apache ] ErrorDocument, résultat différent IE / moz ...
importer un .xls dans une base access[Access/VBA] Lancer du code au démarrage puis fermer la base.
access sur webprobleme de headers et sessions ... RESOLU :)
(resolue) lancement automatique d'une requete verifiant la date[vba access]récuperer une requete select dans une variable
Plus de sujets relatifs à : [access](RESOLU) savoir si une requête sort un résultat ou non ??


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR