Requette Select dans VB et ACCESS

Requette Select dans VB et ACCESS - VB/VBA/VBS - Programmation

Marsh Posté le 09-01-2009 à 11:01:51    

Salut à tous,  
Il y a bien plusieurs sujets qui traitent du sujet mais je n'arrive pas a m'en sortir. Il faut dire que je débute et que j'ai un peu de mal  :cry:  
 
Voila donc ce que j'ai fait :
 

Code :
  1. Dim SQL_ligne As String
  2.     Dim rst As Recordset
  3.    
  4.     SQL_ligne = "SELECT [pinces].numero FROM [pinces] WHERE ((([pinces].NNO) = modifiable0.Value) And (([pinces].sn) = Modifiable2.value));"
  5.    
  6.     Set db = CurrentDb()
  7.     Set rst = db.OpenRecordset(SQL_ligne)
  8.    
  9.     num.Value = rst!numero
  10.     rst.Close


 
but de ma requette : récupérer le numéro d'une pince (chaque pince a un numéro unique : [pinces].numero ) en fonction du type de pince ( [pinces].NNO ) et du numéro de série de la pince ( [pinces].sn )
 
je veux mettre ce résultat dans num.value (zone texte).
 
j'ai le message d'erreur suivant :
 
http://fret.yhoo.free.fr/divers/erreur01.jpg
 
 
Qu'est-ce qui cloche dans mon programme ?
 
Ps : j'utilise access 2000 et ce doit être VB 6
 
 
 
Merci d'avance

Reply

Marsh Posté le 09-01-2009 à 11:01:51   

Reply

Marsh Posté le 09-01-2009 à 11:04:23    

Quand tu cliques sur Debug, il t'amène à quelle ligne ?

Reply

Marsh Posté le 09-01-2009 à 11:15:28    

celle-là :

Code :
  1. Set rst = db.OpenRecordset(SQL_ligne)

Reply

Marsh Posté le 09-01-2009 à 11:22:37    

Faut préciser le type de recordset, nan [:petrus dei] Là il manque clairement le deuxième paramètres, comme indiqué dans le message d'erreur.  
 
Si ça n'a pas changé avec Access 2003 (apparemment ça fait partie de l'API DAO), ça peut être : dbOpenTable, dbOpenDynamic, dbOpenDynaset, dbOpenDynaset ou dbOpenForwardOnly.
 
Si tu veux juste lire une simple valeur, dbOpenForwardOnly suffit, il offrira les meilleures perfs :

Code :
  1. Set rst = db.OpenRecordset(SQL_ligne, dbOpenForwardOnly)


 
Quand t'as un message d'erreur comme ça, n'hésite pas à regarder la documentation de la fonction :)

Reply

Marsh Posté le 09-01-2009 à 11:31:14    

Ce coup-ci ça me met run-time error 3001 : argument non valide.
 
 
Le problème pour l'aide c'est que ca a l'air de bugguer et comme je ne suis pas chez moi, je ne peux pas réparer l'installation.

Reply

Marsh Posté le 09-01-2009 à 11:31:47    

est-ce que je peux trouver un site ou il y a l'aide en ligne ?

Reply

Marsh Posté le 09-01-2009 à 11:32:50    

Sans l'aide pour voir la syntaxe de OpenRecordset, point de salut [:sadnoir] Mais c'est bizarre, je me souvient d'avoir utilisé ça exactement pareil sous Access '97. Ou alors il râle sur la requête... Enlève le point-virgule à la fin ?

Reply

Marsh Posté le 09-01-2009 à 11:44:50    

Ben je pense que la requête fonctionne parce que j'ai fait une bidouille en plaçant le résultat dans une liste déroulante (dans le rowsource) et ça marche bien.
 
j'ai trouvé ça mais le lien vers le site cité ne fonctionne pas :
http://groupes.codes-sources.com/a [...] 22677.aspx
 
En tout cas merci pour ton aide.

Reply

Marsh Posté le 09-01-2009 à 11:48:17    

Ca ne marche pas mieux sans le ;

Reply

Sujets relatifs:

Leave a Replay

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