Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
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 21/06/2011, 15h39   #1
Invité régulier
 
Inscription : novembre 2004
Messages : 25
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : novembre 2004
Messages : 25
Points : 8
Points : 8
Par défaut VB requete parametré

Bonjour,
j'ai utilisé le tutoriel de warin sur les requêtes paramétrés mais malheureusement je n'arrive pas a le faire fonctionné.
voici le lien du tuto : http://warin.developpez.com/access/requeteparametre/

J'ai bien ma liste déroulante avec le bouton , quand je clique sur le bouton au lieu d'avoir la liste prise en compte j'ai la fenêtre de paramétrage requête qui apparait. Ce qui pose problème
pour ma part voila le code que j'ai réalisé a partir de la requete:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Private Sub Valider_Click()
 
On Error GoTo err
Dim Db As DAO.Database
Dim QryModele As DAO.QueryDef
Dim RstTable As DAO.Recordset
Dim strSQLModele As String
Dim strNomRqt As String
'Instancie la base de données
Set Db = CurrentDb
'Ouvre la table des requetes sur l'enregistrement
'dont le nom de la requête est "Grade"
strNomRqt = "Grade"
Set RstTable = Db.OpenRecordset("SELECT * FROM tblRequete WHERE NomRqt=" & Chr(34) & strNomRqt & Chr(34))
'Si la requête est trouvée dans la table,
If Not RstTable.EOF Then
  'Récupère le code correspondant
  strSQLModele = RstTable.Fields("CodeRqt")
  'Effectue le remplacement du critere par la valeur
  strSQLModele = Replace(strSQLModele, "[valeur]", Chr(34) & (Liste10) & Chr(34))
  'Si un objet requête existe déjà alors
  If TesteExistenceRequete(strNomRqt) Then
    'alors modifier le code de la requête
    Db.QueryDefs(strNomRqt).SQL = strSQLModele
    'Sinon
  Else
    'Créer la nouvelle requête
    Db.CreateQueryDef strNomRqt, strSQLModele
  End If
  DoCmd.OpenQuery "grade"
  'Ferme le formulaire
  DoCmd.Close acForm, Me.Name
'Sinon
Else
'Avertir que le code SQL n'est pas disponible
MsgBox "Impossible de trouver la requête : " & strNomRqt & " dans la table des requêtes"
End If
 
Exit Sub
err:
MsgBox "Une erreur est survenue" & vbCrLf & err.Description, vbCritical, "Sélection d'un grade"
End Sub
Si vous avez une solution je suis preneur

cordialement

Julien J
warrios est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2011, 16h09   #2
Membre actif
 
Homme Quentin D.
Étudiant
Inscription : avril 2011
Messages : 175
Détails du profil
Informations personnelles :
Nom : Homme Quentin D.
Âge : 25
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : avril 2011
Messages : 175
Points : 165
Points : 165
Bonjour,

Essaye de remplacer ça :

Code :
("SELECT * FROM tblRequete WHERE NomRqt=" & Chr(34) & strNomRqt & Chr(34))
Par :

Code :
("SELECT * FROM tblRequete WHERE NomRqt= ' " & strNomRqt & " ' ")
__________________
Pourquoi faire aujourd'hui ce que l'on peut remettre à demain ?
Nitromard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2011, 17h24   #3
Invité régulier
 
Inscription : novembre 2004
Messages : 25
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : novembre 2004
Messages : 25
Points : 8
Points : 8
Citation:
Envoyé par Nitromard Voir le message
Bonjour,

Essaye de remplacer ça :

Code :
("SELECT * FROM tblRequete WHERE NomRqt=" & Chr(34) & strNomRqt & Chr(34))
Par :

Code :
("SELECT * FROM tblRequete WHERE NomRqt= ' " & strNomRqt & " ' ")
J'ai fais ce que vous m'avez dis, mais il me dis qu'il n'arrive pas a trouvé la requête Grade dans la Table
warrios est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2011, 08h31   #4
Membre du Club
 
Inscription : juillet 2010
Messages : 56
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 56
Points : 52
Points : 52
Bonjour,

Pour moi, ton code est bon.
Par contre, juste quelques vérifications :
- est-ce que tu as créés ta table Tblrequete avec les mêmes champs que dans le tutoriel ?
- je suppose que tu as entrés dans ta table une série de données avec pour NomRpt = Grade.....et que tu as une requete qui s'appelle Grade.

Simple vérification au cas où.
jcdenton057 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2011, 11h06   #5
Invité régulier
 
Inscription : novembre 2004
Messages : 25
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : novembre 2004
Messages : 25
Points : 8
Points : 8
oui tout est bon car il me lance la requête mais au lieu de me récupère la valeur qui se trouve dans liste ( ma liste modifiable) il me demande de tapé la valeur
warrios est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 10h47   #6
Membre éprouvé
 
Avatar de dumas.blr
 
Homme Jean-Yves DUMAS
Consultant informatique
Inscription : juin 2010
Messages : 325
Détails du profil
Informations personnelles :
Nom : Homme Jean-Yves DUMAS
Âge : 48
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : juin 2010
Messages : 325
Points : 447
Points : 447
Bonjour Warrios,

A tout hasard, as-tu exécuté le code de la requête Grade que tu a stocké dans ta table tblrequete ?

Quel est le SQL de cette fameuse requete grade ?
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!
si tout est OK, n'oubliez pas de cliquer sur
dumas.blr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 13h24   #7
Invité régulier
 
Inscription : novembre 2004
Messages : 25
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : novembre 2004
Messages : 25
Points : 8
Points : 8
voila le code de la requête :
Code :
1
2
3
SELECT * 
FROM personne
WHERE (((personne.Grade)=["valeur"]));
warrios est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 15h23   #8
Membre éprouvé
 
Avatar de dumas.blr
 
Homme Jean-Yves DUMAS
Consultant informatique
Inscription : juin 2010
Messages : 325
Détails du profil
Informations personnelles :
Nom : Homme Jean-Yves DUMAS
Âge : 48
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : juin 2010
Messages : 325
Points : 447
Points : 447
Je pense que le problème vient des [ et ] qui entourent ta variable "valeur"
En effet, Access considère les crochets comme des identificateurs de table/colonne, d'où l'appel de paramètre.
Il faudra enlever tes crochets lors de la génération de ta requête.

Tu peux tester ta requête en copiant le SQL dans une nouvelle requete, et en remplaçant le contenu de "Valeur" par la valeur choisie, et l'exécuter.

N'hésite pas non plus à utiliser le mode débug dans le Visual basic et visualiser le SQL généré
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!
si tout est OK, n'oubliez pas de cliquer sur
dumas.blr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 15h45   #9
Invité régulier
 
Inscription : novembre 2004
Messages : 25
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : novembre 2004
Messages : 25
Points : 8
Points : 8
j'ai trouvé ^^ quand on met une requête dans une table comme je l'ai fais ,
il prend tout ce qui se trouve entre guillemet donc dans mon cas ["valeur"]
hors moi sur mon programme j'ai mis valeur sans guillemet
Je vous remercie de votre aide

cordialement
warrios est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 15h49   #10
Membre éprouvé
 
Avatar de dumas.blr
 
Homme Jean-Yves DUMAS
Consultant informatique
Inscription : juin 2010
Messages : 325
Détails du profil
Informations personnelles :
Nom : Homme Jean-Yves DUMAS
Âge : 48
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : juin 2010
Messages : 325
Points : 447
Points : 447
Parfait,

N'oublie pas de cliquer sur si ton problème est résolu
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!
si tout est OK, n'oubliez pas de cliquer sur
dumas.blr est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web