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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  souci de prog et de requete

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

souci de prog et de requete

n°1623606
alkashee
Si c'est pas beau ca !
Posté le 15-10-2007 à 09:23:27  profilanswer
 

Bonjour bonjour !
 
Alors voila mon petit souci; suite à quelques manip en VB sous access, je récupère une valeur dans le code d'un formulaire (la valeur est calculée, non saisie). Normalement la valeur en question peut se trouver dans une table, d'où mon intention de faire une requête par la suite pour le vérifier.
Mon problème est que je ne sais pas comment faire le lien entre cette valeur que j'obtiens par le VB et la requete souhaitée vu que les requêtes s'appuie normalement sur des tables et non sur des variables (je sais pas si je suis clair  :??:)
 
Merci pour le coup de main  :hello:
 
EDIT: j'espère ne pas m'être trompé de catégorie  :sweat:


Message édité par alkashee le 15-10-2007 à 09:27:11
mood
Publicité
Posté le 15-10-2007 à 09:23:27  profilanswer
 

n°1623657
jpcheck
Pioupiou
Posté le 15-10-2007 à 10:29:56  profilanswer
 

salut,
tu peux très bien effectuer des requetes via le vba, en utilisant Docmd.RunSQL Larequete

n°1623682
alkashee
Si c'est pas beau ca !
Posté le 15-10-2007 à 11:00:33  profilanswer
 

jpcheck a écrit :

salut,
tu peux très bien effectuer des requetes via le vba, en utilisant Docmd.RunSQL Larequete


 
Vi je viens de découvrir ca ^_^'
 
Voici ma requête (sachant qu'elle est dans une procédure evenementielle):
 
Dim recherche As String
     
    recherche = "SELECT *" & _
                "FROM [Sous_réseaux ]" & _
                "WHERE [Sous_réseaux].SSres=echange"
 
DoCmd.RunSQL recherche
 
End Sub
 
sachant que 'echange' est la variable dans laquelle il y a la valeur (en l'occurence un sous-reseau) a rechercher dans la table 'Sous_réseaux'
 
Mais il me met un message d'erreur quand ca se lance, a savoir:  
 
Erreur d'éxécution '2342':
 
Une action ExécuterSQL nécessite un argument consistant en une instruction SQL
 
Bizzare qu'il me retourne ca, sachant que j'ai appliqué l'exemple de l'aide ^^ donc si vous avez des idées ou des suggestion je suis preneur :D

n°1623685
jpcheck
Pioupiou
Posté le 15-10-2007 à 11:02:33  profilanswer
 

fait un débug.print de ta requete, tu verras qu'il te manque des espaces de partout  [:jpcheck]

n°1623692
alkashee
Si c'est pas beau ca !
Posté le 15-10-2007 à 11:07:05  profilanswer
 

Oki mais la commande je la fais où ? je la tape dans mon code ?

n°1623700
jpcheck
Pioupiou
Posté le 15-10-2007 à 11:11:24  profilanswer
 

par exemple oui,
ou alors dans la fenetre d'execution, tu peux meme faire un msgbox larequete ^^

n°1623705
alkashee
Si c'est pas beau ca !
Posté le 15-10-2007 à 11:16:12  profilanswer
 

Alors voici ce que j'ai fais:
 
Dim recherche As String
     
    recherche = "SELECT * " & _
                "FROM [T_Sous_réseaux COMETE] " & _
                "WHERE [T_Sous_réseaux COMETE].SSres=echange"
 
Debug.Print    -----> Ca fait rien du tout, aucune info :'(
 
MsgBox recheche    -----> Affiche une fenetre vide (doit manquer qq chose)
 
DoCmd.RunSQL recherche  <------ c'est ici que ca coince  :fou:  
 
End Sub
 
Je patauge :/

Message cité 1 fois
Message édité par alkashee le 15-10-2007 à 11:21:06
n°1623712
jpcheck
Pioupiou
Posté le 15-10-2007 à 11:22:05  profilanswer
 

alkashee a écrit :

Alors voici ce que j'ai fais:
 
Dim recherche As String
     
    recherche = "SELECT * " & _
                "FROM [T_Sous_réseaux COMETE] " & _
                "WHERE [T_Sous_réseaux COMETE].SSres=echange"
 
Debug.Print  recherche  -----> Ca fait rien du tout, aucune info :'(
 
MsgBox recherche    -----> Affiche une fenetre vide (doit manquer qq chose)
 
DoCmd.RunSQL recherche  <------ c'est ici que ca coince  :fou:  
 
End Sub
 


essaie deja avec ces modifications ;)
 

n°1623723
alkashee
Si c'est pas beau ca !
Posté le 15-10-2007 à 11:32:16  profilanswer
 

Mon dieu, la mouise du lundi matin a encore frappée....  
Ca va mieux, il me sort bien une msgBox qui me ressort la requête complète (SELECT....FROM.....WHERE.... mais sans donner son résultat :??:) mais il bloque toujours au même point qu'au début et me donne toujours le même message d'erreur.
 
Je précise, je n'y connais rien en VBA et mes cours de SQL sont loiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiin au fond a droite ^^

n°1623726
jpcheck
Pioupiou
Posté le 15-10-2007 à 11:34:34  profilanswer
 

bon allez, remplace ton string par celui la (modele tanga  :love: )
 

Code :
  1. recherche = "SELECT * " & _
  2.                 "FROM [T_Sous_réseaux COMETE] " & _
  3.                 "WHERE [T_Sous_réseaux COMETE].SSres='echange'"


 
je me base ici sur le fait que SSres est un champ varchar

mood
Publicité
Posté le 15-10-2007 à 11:34:34  profilanswer
 

n°1623733
alkashee
Si c'est pas beau ca !
Posté le 15-10-2007 à 11:40:26  profilanswer
 

Ah, on a affaire à un (une ?) connaisseur(euse ?) !
 
j'avais essayé de mettre 'echange', rien de rien.. Et mon champ SSres est bien un champ texte (issu d'une importation d'un fichier .xls, est-ce que ca joue ?)

n°1623735
jpcheck
Pioupiou
Posté le 15-10-2007 à 11:41:53  profilanswer
 

<-- c'est un poussin, pas une poussine hein :)
et en remplacant = par LIKE '*change*' ?

n°1623741
alkashee
Si c'est pas beau ca !
Posté le 15-10-2007 à 11:46:49  profilanswer
 

Ca change rien, même message....:'(

n°1623743
jpcheck
Pioupiou
Posté le 15-10-2007 à 11:47:44  profilanswer
 

de quel message parles-tu ?
sinon, tu peux envoyer la base, qu'on regarde ce qui cloche :)

n°1623753
alkashee
Si c'est pas beau ca !
Posté le 15-10-2007 à 11:54:04  profilanswer
 

le message c'est  
 
Erreur d'éxécution '2342':  
Une action ExécuterSQL nécessite un argument consistant en une instruction SQL  
 
Pour la base, je peux te l'envoyer mais ca sera un peu dépouillé car ce sont des données un tantinet interne a ma boite et donc peux pas trop les envoyer a tout le monde ^^

n°1623761
jpcheck
Pioupiou
Posté le 15-10-2007 à 12:01:25  profilanswer
 

arf, fesse moi avec une pelle RunSQL ne marche que pour des requetes dites d'actions.
Essaie avec currentdb.openrecordset larequete

n°1623763
alkashee
Si c'est pas beau ca !
Posté le 15-10-2007 à 12:01:58  profilanswer
 

Ah oki, je vois ca en revenant de manger et je te dis quoi ;)


Message édité par alkashee le 15-10-2007 à 12:02:50
n°1623852
alkashee
Si c'est pas beau ca !
Posté le 15-10-2007 à 13:57:27  profilanswer
 

Alors effectivement ca a l'air d'aller mieux, mais il me dit que le moteur Jet de la base de donnée ne peut pas trouver la requete ou la table source "recherche", ce qui est en soi logique vu que la requete est contenue dans une variable >.< Hors c'est impossible de créer une requete vu que l'argument passé provient d'une variable....

n°1623859
jpcheck
Pioupiou
Posté le 15-10-2007 à 14:00:41  profilanswer
 

ben si : exmple =

Code :
  1. Dim RS As ADO.Recordset
  2. Dim variablespeciale as string
  3. variablespeciale = "pouet"
  4. Set RS = CurrentDb.Openrecordset("SELECT * FROM Table1 WHERE Test ='" & variablespeciale & '" )

n°1623870
alkashee
Si c'est pas beau ca !
Posté le 15-10-2007 à 14:17:09  profilanswer
 

Dim RS As ADO.Recordset  ---> ADO.recordset il connait pas, même pas 'ADO'; il me dit "type defini par l'utilisateur non defnini"

n°1623871
jpcheck
Pioupiou
Posté le 15-10-2007 à 14:17:55  profilanswer
 

pardon, il faut la référence ADO, tu peux le faire sans en virant le ADO (mauvaise habitude ?)

n°1623875
alkashee
Si c'est pas beau ca !
Posté le 15-10-2007 à 14:27:28  profilanswer
 

Ca avance, il grogne plus là dessus mais maintenant il me dit " erreur de syntaxe (operateur absent) dans l'expression '* FROM..[..]' Bizzarement le SELECT passe à la trappe sans raison alors qu'il "lit" bien le reste O_O
 


Message édité par alkashee le 15-10-2007 à 14:28:04
n°1623878
jpcheck
Pioupiou
Posté le 15-10-2007 à 14:28:08  profilanswer
 

oki,
tu peux afficher ton code stp, voir où on en est :)

n°1623880
alkashee
Si c'est pas beau ca !
Posté le 15-10-2007 à 14:29:52  profilanswer
 

Rhooo c bon j'ai fait le boulet en faisant joujou avec le C/c -_-'
 
Mais il me dit now "incompatibilité de type"...

n°1623882
alkashee
Si c'est pas beau ca !
Posté le 15-10-2007 à 14:30:25  profilanswer
 

Dim echange As String
 
echange = C_sous_reseau.Value
 
Dim recherche As String
     
    recherche = "SELECT * " & _
                "FROM [T_Sous_réseaux COMETE] " & _
                "WHERE [T_Sous_réseaux COMETE].SSres = echange"
 
 
Dim RS As Recordset
Set RS = CurrentDb.Openrecordset("SELECT * FROM [T_Sous_réseaux COMETE] WHERE [T_Sous_réseaux COMETE].SSres =' & echange & '" )
 
M'est avis que le type 'string' et le type 'recordset' doivent pas s'arranger entre eux ^^


Message édité par alkashee le 15-10-2007 à 14:32:05
n°1623893
jpcheck
Pioupiou
Posté le 15-10-2007 à 14:36:34  profilanswer
 

hum, le string recherche tu l'utilises plus en fait...

n°1623906
alkashee
Si c'est pas beau ca !
Posté le 15-10-2007 à 14:41:12  profilanswer
 

Tout a fait, à force de copier, j'ai plus fait gaffe ^^ Mais le message d'incompatibilité, concerne la dernière ligne, d'ou ma remarque sur l'incompatibilité entre le 'string' echange et le 'recordset' RS. M'enfin je dis ca mais j'y connais rien, c'est juste une reflexion personnelle :p

n°1623916
jpcheck
Pioupiou
Posté le 15-10-2007 à 14:44:32  profilanswer
 

un chti ";" en fin de requete pitetre ^^

n°1623928
alkashee
Si c'est pas beau ca !
Posté le 15-10-2007 à 14:50:04  profilanswer
 

Ben veux bien mais lui veux pas ^^  pis comme c'est dans une Sub je vois pas trop ou je pourrais le mettre :??:

n°1623946
jpcheck
Pioupiou
Posté le 15-10-2007 à 15:00:11  profilanswer
 

tu peux filer le fichier stp, j'ai l'impression qu'on s'enlise la :p

n°1623959
alkashee
Si c'est pas beau ca !
Posté le 15-10-2007 à 15:07:54  profilanswer
 

oki doki mais comment on fait pour envoyer des fichiers en mp ?

n°1623963
jpcheck
Pioupiou
Posté le 15-10-2007 à 15:09:17  profilanswer
 

tu les stocke sur zshare.net ou cjoint.com :)

n°1623972
alkashee
Si c'est pas beau ca !
Posté le 15-10-2007 à 15:16:40  profilanswer
 

lien envoyé en mp

n°1623999
jpcheck
Pioupiou
Posté le 15-10-2007 à 15:33:35  profilanswer
 

alors il faut bien ajouter DAO dans les références hein, sinon ca marchera po ^^

n°1624003
alkashee
Si c'est pas beau ca !
Posté le 15-10-2007 à 15:39:00  profilanswer
 

Oki, on fais ca comment ? ca se mange ? ^^

n°1624012
jpcheck
Pioupiou
Posté le 15-10-2007 à 15:44:42  profilanswer
 

outils>références ;)

n°1624021
alkashee
Si c'est pas beau ca !
Posté le 15-10-2007 à 15:50:27  profilanswer
 

j'ai bien coché la case, ca a rien changé :'( Dans le doute j'ai ajouté ADO aussi, des fois que ^^

n°1624023
jpcheck
Pioupiou
Posté le 15-10-2007 à 15:51:16  profilanswer
 

Dim RS As DAO.Recordset en plus de la référence hein (a)

n°1624029
alkashee
Si c'est pas beau ca !
Posté le 15-10-2007 à 15:57:59  profilanswer
 

Alors ca roule, plus de messages d'erreurs mais ca débouche sur rien ! Question bête; il fait la requête mais est-ce qu'il l'affiche tout seul ou faut-il lui dire de le faire ?
 
EDIT: Et si il faut lui dire de le faire, peut-on par le plus grand hasard possible, le faire au travers d'un formulaire  ? (a)


Message édité par alkashee le 15-10-2007 à 16:01:37
n°1624033
jpcheck
Pioupiou
Posté le 15-10-2007 à 16:01:15  profilanswer
 

Ben une fois ton recordset récupéré, il faut dispatcher les réponses quelques part:
ici tu peut faire une truc comme ca :
 

Code :
  1. do until not RS.EOF
  2. msgbox RS!Num & " et " & RS.SSret
  3. RS.MoveNext
  4. Loop

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  souci de prog et de requete

 

Sujets relatifs
Probleme de requête SQL[RESOLU] problème d'heure dans requête mysql (heure d'hiver)
Requete MySQL sur deux tables liéeshibernate debug requete
[Résolu] WMI requete WQL[MySQL] pb avec une requête et EXISTS
[SQL] Optimisation de requête "regroupement X-en-1" (tri ?)Optimisation requête (Mysql)
[SQL] Requête UPDATE complexe[mySQL] Pbr de rapidité d'execution d'une requete
Plus de sujets relatifs à : souci de prog et de requete


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