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 17/12/2010, 16h02   #1
Membre régulier
 
Inscription : juillet 2010
Messages : 230
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 230
Points : 82
Points : 82
Par défaut Requête paramétrée et variable

Bonjour !

J'ai une question concernant les requêtes paramètrées. Je souhaite pouvoir mettre en valeur du paramètre le contenu d'une variable. Pour cela j'ai consulté le FAQ qui explique comment faire cela : ICI

J'ai donc une reqête enregistrée sur Access qui se nomme : R_AjoutSélection. En paramètre de cette reqête j'ai : TON_PARAM, donnée type texte. Si je me trompe pas, je mets en critère de ma reqête (Champ: caisse) : [TON_PARAM]


Voici mon code :

Code :
1
2
3
4
5
6
7
8
9
 
Dim combocaisse as variant
ComboCaisse = Me.CaisseFiltre.Value
Dim RQSql As DAO.QueryDef
Set RQSql = CurrentDb.QueryDefs("R_AjoutSélection")
      With RQSql
         .Parameters("TON_PARAM") = "'" & Replace(ComboCaisse, "'", "''") & "'"
         .Execute
      End With
Lors de l'execution de la reqête j'ai un message d'erreur :
Erreur d'execution' 3061':
Trop peu de paramètres. 2 attendu


Malgré le faite d'avoir suivi l'exemple du FAQ, cela ne fonctionne pas.
Ma variable se base sur une combobox, donnée type texte. Une des données contient une quote ce qui explique la fonction replace(). je me demande si l'utilisation de quotes est nécessaire ou simplement la variable (.Parameters("TON_PARAM") = ComboCaisse). j'ai essayé avec simplement ComboCaisse mais cela ne fonctionne pas non plus, j'ai le même message d'erreur.

Merci pour vos futurs conseils !

Cordialement

Guillaume
Chagui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 16h51   #2
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 743
Points : 10 743
Envoyer un message via MSN à jpcheck
salut,

peut-on voir le contenu sql de la requete que tu souhaites executer stp ?
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 20h18   #3
Membre régulier
 
Inscription : juillet 2010
Messages : 230
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 230
Points : 82
Points : 82
voici ma requête sql :


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
PARAMETERS [TON_PARAM] Text ( 255 );
 
INSERT INTO T_dossiers ( [caisse], [NUMEROcaisse], 
[NOM / PRENOM  du bénéficiare], 
[NOM du bénéficiare], 
[PRENOM du bénéficiare], [NIR], 
[N° de DOSSIER], 
[MONTANT brut TOTAL], 
[MONTANT net TOTAL], 
[DATE DE LIQUIDATION], [DATE D'EFFETbase], 
[DATE D'EFFETcomp],
[MISE EN PAIEMENT], [REVISION], 
[IDStatut], [DateAffectation], [Année] )
 
SELECT T_Selection.[caisse], 
T_Selection.[NUMEROcaisse], 
T_Selection.[NOM / PRENOM  du bénéficiare], 
T_Selection.[NOM du bénéficiaire], 
T_Selection.[PRENOM du bénéficiaire], 
T_Selection.[NIR], T_Selection.[N° de DOSSIER],
T_Selection.[MONTANT brut], 
T_Selection.[MONTANT net], 
T_Selection.[LIQUIDATION], T_Selection.[DATE D'EFFETbase],
T_Selection.[DATE D'EFFETcomp], 
T_Selection.[MISE EN PAIEMENT], 
T_Selection.[REVISION], T_Selection.[IDStatut], 
T_Selection.[DateAffectation], T_Selection.[Année]
 
FROM T_Selection
 
WHERE (((T_Selection.[caisse])=[TON_PARAM]));
Chagui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2010, 19h22   #4
Membre Expert
 
Homme Jacques Petiot
Indépendant développeur et formateur
Inscription : octobre 2007
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Jacques Petiot
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Indépendant développeur et formateur
Secteur : Conseil

Informations forums :
Inscription : octobre 2007
Messages : 891
Points : 1 333
Points : 1 333
Hello
ce genre d'application, j'utilise une zone de texte du formulaire de démarrage qui est toujours ouvert (invisible après la période de débugage)
ma requête n'a pas forcément de paramêtre mais seulement le nom de la zone de texte comme critère.
En VB, je peux facilement initialiser la zone de texte et lancer la requête
ce qui donne:
Code :
WHERE caisse = forms!démarrage!combocaise
pour le SQL et
Code :
DoCmd.OpenQuery "R_AjoutSélection"
pour lancer la requête
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi 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 03h55.


 
 
 
 
Partenaires

Hébergement Web