[VB6+Access] Requete qui marche sous Access mais pas sous VB

Requete qui marche sous Access mais pas sous VB [VB6+Access] - VB/VBA/VBS - Programmation

Marsh Posté le 23-05-2005 à 14:37:33    

Bonjour,
 
je fais une petite appli en VB pour gerer une liste de declarations stockées dans une BD Access. J'ai un petit probleme qui me laisse reellement perplexe : ma requete pour afficher toutes les declarations marche bien sous Access, mais pas sous VB :ouch:
 
Description de mes tables :
 
ZONE(Num_Zone, Nom) avec cle primaire : Num_Zone
IMPORTANCE(Num_Importance, Importance) avec cle primaire : Num_Importance
DECLARATION(Num_Declaration, Lieu, Date, Declarant, Risque, Date_Debut, Date_Fin, Delai, Action, Num_Zone, Num_Importance) avec cle primaire : Num_Declaration et cles secondaires : Num_Zone et Num_Importance
 
sur mon Formulaire VB, j'ai mis une Datagrid dont la source est la requete en question :
 
SELECT DECLARATION.Num_Declaration, DECLARATION.Lieu, DECLARATION.Date, DECLARATION.Declarant, DECLARATION.Risque, DECLARATION.Date_Debut, DECLARATION.Date_Fin, DECLARATION.Delai, DECLARATION.Action, DECLARATION.Num_Zone, ZONE.Nom, DECLARATION.Num_Importance, IMPORTANCE.Importance FROM DECLARATION, IMPORTANCE, ZONE WHERE ZONE.Num_Zone = DECLARATION.Num_Zone AND IMPORTANCE.Num_Importance = DECLARATION.Num_Importance ORDER BY DECLARATION.Num_Declaration;
 
Le code de VB :
 

Code :
  1. Dim rsSituations As ADODB.Recordset
  2. Dim Requete As String
  3.    
  4.     Requete = "SELECT DECLARATION.Num_Declaration, DECLARATION.Lieu, DECLARATION.Date, DECLARATION.Declarant, DECLARATION.Risque, DECLARATION.Date_Debut, DECLARATION.Date_Fin, DECLARATION.Delai, DECLARATION.Action, DECLARATION.Num_Zone, ZONE.Nom, DECLARATION.Num_Importance, IMPORTANCE.Importance "
  5.     Requete = Requete & "FROM DECLARATION, IMPORTANCE, ZONE "
  6.     Requete = Requete & "WHERE ZONE.Num_Zone = DECLARATION.Num_Zone "
  7.     Requete = Requete & "AND IMPORTANCE.Num_Importance = DECLARATION.Num_Importance "
  8.     Requete = Requete & "ORDER BY DECLARATION.Num_Declaration;"
  9.    
  10.     Set rsSituations = New Recordset
  11.     rsSituations.CursorLocation = adUseClient
  12.     rsSituations.Open Requete, Connexion, adOpenStatic, adLockReadOnly
  13.     Set DtgLstSituations.DataSource = rsSituations


 
sous Access, si je teste la requete, ca marche nickel ! :)
sous VB, si j'execute le code donne au-dessus, j'obtiens le message d'erreur :

Code :
  1. Erreur d'exécution '-2147467259 (80004005)'
  2. La méthode 'Open' de l'objet '_Recordset' a échoué


 
je pense que le probleme vient reellement de la requete, car si je fais un "SELECT * FROM DECLARATION", ca marche !
 
est ce que quelqu'un pourrait m'aider ? :jap:

Reply

Marsh Posté le 23-05-2005 à 14:37:33   

Reply

Marsh Posté le 23-05-2005 à 15:42:58    

byzarre ton probleme
 
A tous hasard supprime le ";" a la fin de ta requete
Dans "SELECT * FROM DECLARATION" tu ne la pas mis, mais je sis pas si c'est un oublie en ecrivant ton msg ou si tu ne la vraiment pas mis dans ton code VB lors du test

Reply

Marsh Posté le 23-05-2005 à 15:44:28    

Sinon personnellemet je fait mes requetes en VB de cette maniere
 

Code :
  1. dim record
  2. dim requete as string
  3. requete ="SELECT ..."
  4. Set record = CurrentDb.openrecordset(requete)


 
Tu peut toujours essayer ...

Reply

Marsh Posté le 23-05-2005 à 15:48:56    

le ';' symbolise la fin de la requete, si on le mets pas, le moteur l'ajoute de lui même ;)
 
je pense pas que le probleme vienne de la maniere dont j'ai fait ma requete, car j'en ai fait bcp d'autres et elles ont toutes marche jusqu'a present :p mais j'essairais quand meme
 
merci pour l'aide :)

Reply

Marsh Posté le 23-05-2005 à 15:50:28    

je connait l'utilité du ";" mais bon les progs genre access parfois ca fait que ca veut ... ^^

Reply

Marsh Posté le 23-05-2005 à 17:30:00    

ma foi, je suis bien d'accord :P
 
mais on va pas lancer un grand debat ici ;)

Reply

Marsh Posté le 24-05-2005 à 08:38:21    

de retour au boulot, ca ne marche pas non plus :(

Reply

Marsh Posté le 24-05-2005 à 10:15:23    

probleme resolu :
 
j'ai supprime la table ZONE, puis cree une table SECTEUR avec la meme structure et les memes donnees, et ca marche :P

Reply

Sujets relatifs:

Leave a Replay

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