Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/01/2011, 19h35   #1
Invité de passage
 
Inscription : janvier 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 3
Points : 0
Points : 0
Par défaut [erreur]DAO.Recordset et Req SQL

Bonjour,

J'ai un petit souci, je dois faire un formulaire et ça fait une semaine que j'essaye énormément de choses pour résoudre une erreur. Et aujourd'hui n'ayant plus de solutions, je me permet de demander de l'aide ..
Access me donne une erreur de syntaxe (opérateurs absents apparemment). J'ai tout regarder je vois pas ce qu'il manque j'ai vérifié mes jointures etc.. En plus j'ai utilisé exactement la même requête dans un autre formulaire et elle marche. Bref je ne comprend vraiment pas..
Voila un extrait du code :


Code :
1
2
3
4
5
6
7
8
Private Sub txt_n_sess_GotFocus() 
Dim rs As DAO.Recordset 
Set rs = CurrentDb.OpenRecordset("select session.numero, activite.libelle, session.datesession, action.intitule, lieu.libelle from session, lieu, activite, action where action.numeroactivite=activite.numero and session.codeaction=action.code and lieu.id=session.idlieu and session.numero=" & Me.txt_n_sess & ";" ) 
 
Me.txt_action = rs("action.intitule" ) 
Me.txt_activite = rs("activite.libelle" ) 
Me.txt_date = rs("sesssion.datesession" ) 
Me.txt_lieu = rs("lieu.libelle" )
J'ai aussi utilisé la requête dans une requête paramètre pour la tester et la pas de souci tout marche bien .. Apparement c'est vers la fin de la requête qu'il y'a un souci mais je ne vois pas.

Je vous remercie par avance.

Nanou.
nanou42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2011, 19h50   #2
Membre expérimenté
 
Inscription : octobre 2002
Messages : 654
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 654
Points : 552
Points : 552
Bonjour,
Je te fais la suggestion suivante qui ne change strictement rien à ton code, et te permettra de trouver ton problème.
Code :
1
2
3
4
5
Dim rs AS DAO.Recordset 
dim sQuery as String
sQuery="select session.numero, activite.libelle, session.datesession, action.intitule, lieu.libelle from session, lieu, activite, action where action.numeroactivite=activite.numero and session.codeaction=action.code and lieu.id=session.idlieu and session.numero=" & Me.txt_n_sess & ";"
Debug.Print sQuery
SET rs = CurrentDb.OpenRecordset(sQuery)
Tu regardes dans la fenêtre de débogage, le debug.print devrait t'avoir affiché la requête exécutée.
Puis tu crées une requête dans Access dans laquelle tu colles la requête prise dans la fenêtre de débogage, et tu exécutes la requête, et là normalement le message devrait être plus clair.

Concernant ta requête, tu devrais utiliser des inner join mais il est vrai que les inner join et la quirielle de parenthèse générée par Access a de quoi décourager.
La colonne numero de la table Session est de quel type ?, si c'est un texte, n'oublie pas les quotes autour
Cordialement
Soazig
soazig est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2011, 20h37   #3
Invité de passage
 
Inscription : janvier 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 3
Points : 0
Points : 0
Bonjour,

Je vous remercie d'avoir pris du temps pour trouver une solution à mon problème.
Malheureusement, je viens d'essayer la procédure que vous m'avez donnée, et ça me met exactement le même message.. C'est vraiment incompréhensible. C'est quand même assez étrange que cette même requête fonctionne parfaitement si je la mets en requête paramètre. Et dans l'algo impossible..
La colonne numéro de session est de type numérique donc ça devrait être bon de ce coté là..?

petite capture :




Cordialement.
nanou42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2011, 22h12   #4
Invité de passage
 
Inscription : janvier 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 3
Points : 0
Points : 0
Je viens de batailler encore, et j'ai réussi à avoir quelque chose qui fonctionne. Seulement dans les instructions je ne dois pas faire comme ça. En fait j'ai une liste déroulante qui est alimenté par une requête qui contient les numéros de sessions. Et une fois que l'utilisateur choisi le numéro ça affiche toute les infos comme la date de la session, l'activité etc et par la suite un sous formulaire avec tous les agents inscrits. Normalement je dois faire cette procédure événementiel avec "reception focus", je ne sais pas vraiment ce que cela signifie mais j'ai essayé de mettre mon programme sur après mise à jour ( de la liste déroulante) et là tout ce passe sans souci .. peut être quelqu'un sait pourquoi ça coince sur reception focus ?
nanou42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2011, 22h55   #5
Membre expérimenté
 
Inscription : octobre 2002
Messages : 654
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 654
Points : 552
Points : 552
Bonjour,
Pour ton problème initial je pense que Me.txt_n_sess était vide sur l'évenement txt_n_sess_GotFocus, c'est ce que j'ai cru lire sur la capture d'écran.
L'evenement GotFocus se produit lorsque tu rentres dans une zone, c'est à dire soit que tu y arrives en te positionnant dessus à la souris, soit par tabulation. Et en général lorsque tu rentres dans une zone elle est vide, comme dans ton cas.
Ton code pourrait marcher en lost focus (perte de focus) du txt_n_sess, mais je ne comprend pas pourquoi il faut que tu le fasses sur reception de focus.
Attention pour tes questions supplémentaires, tu devrais demander dans le forum Access, ici on parle de SQL et ton problème n'est pas au niveau du SQL mais du code de ton formulaire.

A+
Soazig
soazig est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h53.


 
 
 
 
Partenaires

Hébergement Web