Réponse vide a une requete avec parametre en DAO VB-Access

djelacrevette Messages postés 4 Date d'inscription mercredi 20 mars 2002 Statut Membre Dernière intervention 27 mars 2002 - 20 mars 2002 à 16:22
djelacrevette Messages postés 4 Date d'inscription mercredi 20 mars 2002 Statut Membre Dernière intervention 27 mars 2002 - 21 mars 2002 à 13:43
Chalut,
ça fait 2 jours que je galère sur une req SQl de VB sur ma base Access...

Je fais une function generique qui prend en compte la requete sql executer_SQL(sql as string)
et sans parametre ça marche ss pb.

Mais qd j'appelle un param ds la req, genre
sql "SELECT * FROM Acces WHERE Acces.login ' " & test & " ' "

avec la var test que je reprend d'un combo, il me reconnait cette var, l'affiche ds la req sql mais par contre lorsque que j'essaye de toucher au recordset
par exemple
Do
Combo2.AddItem(rs.Fields("Password").value)
rs.MoveNext
While not rs.EOF
je n'ai rien, genre EOF BOF.... (j'ai fait le test if rs.EOF rs.BOF)
QQ sait pôurquoi???

CA ME GAVE GRAVE A FORCE...PLEASE
Merci d'avance!!!!!

dje

7 réponses

Makabey Messages postés 152 Date d'inscription mercredi 27 juin 2001 Statut Membre Dernière intervention 11 juillet 2002 1
20 mars 2002 à 16:50
Personnellement, toutes mes requêtes finissent par un ";", selon la synthaxe de MS-Jet (le moteur derrière le DAO). La plupart des requêtes ne fonctionneront pas ou pas correctement sans ce caractère qui détermine où la requête fini.

Il est fort à parier que ce n'est pas l'origine du problème mais tu peux essayer.

Autrement, teste rs.RecordCount, s'il est 1, il y as au moins un enregistrement dans le retour de requête, sinon il y as une erreur dans ta requête, l'orthographe du nom de la table ou d'un champs p-ê.
0
GUIX22 Messages postés 5 Date d'inscription mercredi 20 mars 2002 Statut Membre Dernière intervention 24 mars 2002
20 mars 2002 à 23:21
Salut,
on peut voir la fonction "sql executer_SQL(sql as string)"????
0
djelacrevette Messages postés 4 Date d'inscription mercredi 20 mars 2002 Statut Membre Dernière intervention 27 mars 2002
21 mars 2002 à 11:30
Voici la nouvelle fonction... j'avais un pb de rafraichissement du rs que j'utilisais 2 fois ds la meme form (form load et commandX)
Alors j'ai passé en paramètre le nom du rs a utiliser, en l'utilisant ca fait
rsX = executer_SQL(rsX, sql)

La fonction:
Public sql As String
Public conn As ADODB.Connection
Public rs As New ADODB.recordset

Public Function executer_SQL(recordset As ADODB.recordset, sql As String) As recordset
Set conn = New ADODB.Connection
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=P:\Rotadisks Process et Composants\V01_01\BASE\BDD process et composants.mdb"
conn.Open
Set recordset = New ADODB.recordset
Set recordset = conn.Execute(sql)
End Function

Je viens de le faire, donc je sais pas si va y avoir des pb... mais bon je crois pas qu'y aie que ça ;-(
Merci si vous voyez comment faire, des fois jsuis 1 peu grave
dje
0
GUIX22 Messages postés 5 Date d'inscription mercredi 20 mars 2002 Statut Membre Dernière intervention 24 mars 2002
21 mars 2002 à 11:50
Bon,
il manque (je crois...)
set executer_SQL=recordset (d'ailleurs, pourquoi tu le passes en reference pour le redéfinir aprés???)
Bon courage.
0

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

Posez votre question
GUIX22 Messages postés 5 Date d'inscription mercredi 20 mars 2002 Statut Membre Dernière intervention 24 mars 2002
21 mars 2002 à 11:56
De plus, tu dois appeller les objets par le biais de la commande SET, donc, ta fonction, tu y fais référence par:
SET RsX = executer_SQL(rsX, sql) (Rsx étant déclaré comme Object ou mieux comme Recordset)...
0
GUIX22 Messages postés 5 Date d'inscription mercredi 20 mars 2002 Statut Membre Dernière intervention 24 mars 2002
21 mars 2002 à 12:02
Aprés, j'arrete..
Mais vraiment (j'viens de voir ça...), je ne comprend pas que tu définisses un RsX par une fontion qui renvoi un recordset et en se passant en référence.... Peut être que le plus simple serais de virer la référence à RsX

Public Function executer_SQL(sql As String) As recordset

Autre chose (la derniere, je l'jure...), je pense qu'il n'est pas trés prudent de déclarer une variable Recordset et de la nommer Recordset, ça risque de bugger un jour ou l'autre....
Voila
Salut...
0
djelacrevette Messages postés 4 Date d'inscription mercredi 20 mars 2002 Statut Membre Dernière intervention 27 mars 2002
21 mars 2002 à 13:43
ok merci ca fait 2 jours que je suis dessus pour 1 connerie de ce type... j avais vraiment le tete ailleurs, en plus je commence vb alors les 2 ensemble...
dje
0
Rejoignez-nous