Recupéré chaîne de caractere d'une requete SQL

garscalva Messages postés 13 Date d'inscription vendredi 6 octobre 2006 Statut Membre Dernière intervention 9 octobre 2006 - 6 oct. 2006 à 11:31
garscalva Messages postés 13 Date d'inscription vendredi 6 octobre 2006 Statut Membre Dernière intervention 9 octobre 2006 - 9 oct. 2006 à 17:05
Bonjour,

j'execute une requete SQL pour savoir si un bus est équipé de la vidéosurveillance :


sql = "SELECT videosurveillance FROM vehicule WHERE num_vehicule='" & num_parc_vehicule.Value & "';"


Le champ videosurveillance est du type "text" soit 'oui' soit 'non'.


J'aimerai par le biais de manipulation récupérer le resultat de la
requete et ainsi le mettre dans une zone de texte caché dans un
formulaire.

Merci j'utilise VB d'access.


Merci @+

20 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
6 oct. 2006 à 14:10
Salut,


Il te faut utiliser un Objet Recordset.


Par quel moyen execute tu cette requete?






@+,   Ju£i?n
0
garscalva Messages postés 13 Date d'inscription vendredi 6 octobre 2006 Statut Membre Dernière intervention 9 octobre 2006
6 oct. 2006 à 14:20
Voilà tout la partie de code :
' Contient la base
    Dim db As Database
    ' Contient le jeu d'enregistrement
    Dim Rs As Recordset
    ' Contient la requete
    Dim sqlvideosurveillance As String
    ' Contient la présence ou non de videosurveillance.
    Dim rep As String
        ' Connection à la base
        Set db = DBEngine.Workspaces(0).OpenDatabase("C:\incident.mdb", True, False, ";pwd=tcl")
        ' Assignation de la requète
        sqlvideosurveillance = "SELECT videosurveillance FROM vehicule WHERE num_vehicule='" & num_parc_vehicule.Value & "';"
        ' Exécution de la requète
         Set Rs = db.OpenRecordset(sqlvideosurveillance)
        ' On se place au premier enregistrement concerné
         Rs.MoveFirst
        ' Récupération du résultat
         rep = Rs.Fields(0).Value
        ' Fermeture du jeu d'enregistrement
         Rs.Close
        ' Fermeture de la base
        db.Close
       
        ' Envoie de la réponse si Bus équipé de videosurveillance
        videosurveillance.Value = rep
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
6 oct. 2006 à 15:39
Re,


Et bien ceci m'a l'air aps mal... Que contient Rep unr fois que tu lui as affecté ...(0).Value?


Il devrait avoir soit Oui Soit Non?


En fait je ne vois pas ou est ton problème.






@+,   Ju£i?n
0
garscalva Messages postés 13 Date d'inscription vendredi 6 octobre 2006 Statut Membre Dernière intervention 9 octobre 2006
6 oct. 2006 à 16:07
Ben ça marche pas. c'est ça le probleme.
il doit contenir une chaine de caractere tout a fais
0

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

Posez votre question
garscalva Messages postés 13 Date d'inscription vendredi 6 octobre 2006 Statut Membre Dernière intervention 9 octobre 2006
6 oct. 2006 à 16:16
Il me dit "erreur d'execution 3464" qui correspond une incompatibilté de type. Pourtant tout à l'air bon.
0
garscalva Messages postés 13 Date d'inscription vendredi 6 octobre 2006 Statut Membre Dernière intervention 9 octobre 2006
6 oct. 2006 à 16:21
En fait le recupération de la présence de la videosurveillance ou non dans un vehicule se fait aprés avoir saisie le numéros de vehicule sur le formulaire. J'ai donc mis mon bout de code dans la fonction de la zone de texte du numéros de vehicule  comme suit :

Private Sub num_parc_vehicule_BeforeUpdate(Cancel As Integer)
    ' Contient la base
    Dim db As Database
    ' Contient le jeu d'enregistrement
    Dim Rs As Recordset
    ' Contient la requete
    Dim sql As String
    ' Contient le nombre de réclamation déjà enregistré.
    Dim rep As String
        ' Connection à la base
        Set db = DBEngine.Workspaces(0).OpenDatabase("C:\incident.mdb", True, False, ";pwd=tcl")
        ' Assignation de la requète
        sql = "SELECT videosurveillance FROM vehicule WHERE num_vehicule='" & num_parc_vehicule.Value & "';"
        ' Exécution de la requète
         Set Rs = db.OpenRecordset(sql)
        ' On se place au premier enregistrement concerné
         Rs.MoveFirst
        ' Récupération du résultat
         rep = Rs.Fields(0).Value
        ' Fermeture du jeu d'enregistrement
         Rs.Close
        ' Fermeture de la base
        db.Close
       
        ' Envoie de la réponse si Bus équipé de videosurveillance
        videosurveillance.Value = rep
End Sub
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
6 oct. 2006 à 16:31
Salut,


VideoSurveillance est un objet de quel type?






@+,   Ju£i?n
0
garscalva Messages postés 13 Date d'inscription vendredi 6 octobre 2006 Statut Membre Dernière intervention 9 octobre 2006
9 oct. 2006 à 07:59
Je n'arrive pas à trouver son type.
C'est une zone de texte dans un formulaire ou j'ai modifié que le nom, il n'y a rien de selectionné dans le format.
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
9 oct. 2006 à 12:51
As-tu essayé en enlevant les apostrophes ?

Si le champ num_vehicule est de type numérique, il ne faut pas y mettre d'apostrophes. Seulement pour les types texte.


sql = "SELECT videosurveillance FROM vehicule WHERE num_vehicule=" & num_parc_vehicule.Value

MPi
0
garscalva Messages postés 13 Date d'inscription vendredi 6 octobre 2006 Statut Membre Dernière intervention 9 octobre 2006
9 oct. 2006 à 14:01
Il ne manque pas un bout?

J'ai essayé avec ce que tu as dis :
sql = "SELECT videosurveillance FROM vehicule WHERE num_vehicule=" & num_parc_vehicule.Value &";"
Et ça me met :
Erreur 13 Incompatibilité de type.
0
garscalva Messages postés 13 Date d'inscription vendredi 6 octobre 2006 Statut Membre Dernière intervention 9 octobre 2006
9 oct. 2006 à 14:06
Et lorsque je fais déboguage il me surligne en jaune cette partie :
Set Rs = db.OpenRecordset(sql)
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
9 oct. 2006 à 15:19
Je ne sais pas si c'est à moi que tu demandes, mais je n'ai pas mis de

& ";"


Quelle est la base de données que tu utilises ?

Est-ce que num_vehicule est un champ numérique ou texte ?

MPi
0
garscalva Messages postés 13 Date d'inscription vendredi 6 octobre 2006 Statut Membre Dernière intervention 9 octobre 2006
9 oct. 2006 à 15:22
C'est un champ numerique.
C'est une BDD sous access
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
9 oct. 2006 à 15:24
Et comme ça ?


sql = "SELECT videosurveillance FROM vehicule WHERE num_vehicule=" & Val(num_parc_vehicule)

MPi
0
garscalva Messages postés 13 Date d'inscription vendredi 6 octobre 2006 Statut Membre Dernière intervention 9 octobre 2006
9 oct. 2006 à 15:25
je vais essayé
0
garscalva Messages postés 13 Date d'inscription vendredi 6 octobre 2006 Statut Membre Dernière intervention 9 octobre 2006
9 oct. 2006 à 15:26
J'ai essayé et ça me surligne en jaune :
Set Rs = db.OpenRecordset(sql)
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
9 oct. 2006 à 15:33
Est-ce que ça te donne un numéro d'erreur ? si oui lequel ?


Si on récupère du début ...

tu as une table vehicule

tu veux afficher ou obtenir son champ videosurveillance

si l'autre champ num_vehicule égale la valeur d'un textbox ou label nommé num_parc_vehicule


Est-ce que c'est bien ça ?

MPi
0
garscalva Messages postés 13 Date d'inscription vendredi 6 octobre 2006 Statut Membre Dernière intervention 9 octobre 2006
9 oct. 2006 à 15:47
oui voila tout a fais c'ets uen erreur 13.
Oui dans une liste déroulante je choisi le numeros du vehicule et suivant le champ videosurveillance (qui renseigne la presence ou non de videosurveillance) je veux recupéré si la videosurveillance et presente ou pas et je met la reponse dans une textbox apellé videosurveillance.
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
9 oct. 2006 à 16:05
Si num_parc_vehicule est un Combobox, il faut alors spécifier .Text


sql = "SELECT videosurveillance FROM vehicule WHERE num_vehicule=" & Val(num_parc_vehicule.text)

MPi
0
garscalva Messages postés 13 Date d'inscription vendredi 6 octobre 2006 Statut Membre Dernière intervention 9 octobre 2006
9 oct. 2006 à 17:05
J'ai toujours le meme probleme
0
Rejoignez-nous