Rechercher : dans
Par :

Passer un paramètre dans une requète

Dernière réponse le 28 mai 2009 à 09:33:30 BPAUD, le 11 jui 2008 à 16:19:32 
 Signaler ce message aux modérateurs

Bonjour,
depuis une 'Base de données" sous Excel 2003, je souhaite extraire (créer une requète) des enregistrements particuliers (dont la valeur d'un champ correrspond à un critère).
Tant que je pose 'en dur' la valeur de selection dans la requete ca se passe bien.
Dès que je veux utiliser la valeur d'un champ comme critère, le systeme refuse d'enregistrer la requète et me retourne un message "Trop peu de paramètres. 1 attendu".
J'ai essayé de donner l'adresse de la cellule en question, de nommer celle-ci et de signifier son nom dans le champ correspondant dans la zone 'Inclure seulement les lignes où"...
Rien n'y fait!

Quel est le truc ?
Merci beaucoup!
Cdlt
Bernard

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « Passer un paramètre dans une requète » dans :
[Programmation] Conventions de passage de paramètres sous x86 VoirLes conventions de passage de paramètres sous x86 Introduction Cdecl Stdcall Fastcall Register Pascal Sources de ce document et liens Lorsqu'un programme est compilé pour une architecture x86, le passage de paramètres pour...
[Mozilla Firefox] Sauvegarder les paramètres VoirSauvegarder / Restaurer les paramètres de Firefox, les marque-pages, historique et les extensions installées Commencez par afficher les fichiers cachés. Sous Vista, il faut s'approprier le dossier C:\users\Utilisateur*\Application Data pour...
Bash - Les paramètres VoirIntroduction Les paramètres positionnels Exemple 1 Les paramètres spéciaux Exemple 2 Initialiser des paramètres - La commande "set" - Exemples - La commande "shift" - Exemple 3 Introduction Il est possible de fournir à un script,...
Perl - Les fonctions VoirLa notion de fonction et de procédure On appelle procédure un sous-programme qui permet d'effectuer un ensemble d'instruction par simple appel de la procédure dans le corps du programme principal. Les procédure permettent d'exécuter dans plusieurs...
PHP - Les cookies et les en-têtes HTTP VoirLes en-têtes HTTP Lors de chaque échange par le protocole HTTP entre votre navigateur et le serveur, des données dîtes d'en-têtes contenant des informations sur les données à envoyer (dans le cas d'une requête) ou envoyées (dans le cas d'une...
Langage C++ - Les pointeurs VoirComme en langage C, le langage C++ permet d'utiliser des pointeurs pour manipuler des données, mais il introduit aussi le concept de référence, très pratique pour permettre la modification d'une donnée passée en paramètre d'une fonction. Définition...

1

m@rina, le 11 jui 2008 à 16:29:05

Bonjour,

Quelle fonctionnalité utilises-tu pour ça ?
Un filtre élaboré ?

m@rina

Répondre à m@rina

2

BPAUD, le 11 jui 2008 à 16:47:37

Bonjour m@rina...
ravi de te retrouver ici !
Non pas un filtre ... Une requète...
Séquence menu : "Données" - "Données externes" - "créer une requète..."
Ca marche plutot bien et je m'en sers souvent avec des critères de sélection en dur jusqu'à maintenant.
Dès que je souhaite poser un critère 'variable' sur la base du contenu d'une cellule posée à cet effet.... Ca coince.
Tu peux aider ?
Merci
Cdlt
Bernard

Répondre à BPAUD

3

CaPiT, le 11 jui 2008 à 17:02:50

Souvent quand tu as "Trop peu de paramètres. 1 attendu" (enfin moi ça vient toujours de là), c'est qu'il y a une erreur de "type" situé dans le WHERE de la requête SQL (donc dans les crière en mode création). Style tu as mis " au lieu de ' ou l'inverse, ou rien ;)

Pour ma part ça m'arrive tout le temps (enfin en SQL)^^

Répondre à CaPiT

4

BPAUD, le 11 jui 2008 à 17:33:06

Bonjour CaPiT,
Merci de ton intervention.
Sauf que...
je ne manipule pas la requète en ""live"" ... celle-ci est générée via l'assistant 'requète' de Excel et je ne peux/sais pas la visualiser ...
De plus, comme ca 'coince' au moment ou le système me demande d'enregistrer la requète, l'enregistrement ne s'effectue pas et je n'en vois donc mème pas trace dans les dossiers ....
Si solution il y a c'est dans la façon de 'referrer' au contenu de ma zone de critères... je ne vois pas d'autre possibilité
J'ai essayé l'adresse : H1, le nom de la cellule nu...
je vais essayer avec des combinaisons de = et de ' et de "...

Ou alors j'essaie d'enregistrer la requète sans 'condition' (ça, ça marche) puis de tenter de l'accéder et de la visualiser je ne sais pas encore trop comment depuis l'explrateur Windows et de bidouiller en direct ... amis comme je ne suis pas expert en prog... ça risque d'être très hard pour moi.
Cdlt
Bbernard

Répondre à BPAUD

5

m@rina, le 11 jui 2008 à 20:34:23

Bonsoir Bernard,

Je suis désolée, je ne vois pas du tout ce qui peut bloquer avec l'assistant...

As-tu essayer, au lieu d'enregistrer tout de suite la requête, de la modifier dans Query ?

m@rina

Répondre à m@rina

6

BPAUD, le 11 jui 2008 à 21:21:43

M@rina,
J'essaie depuis tt à l'heure, mais je dois pas être très brillant, je cafouille pas mal et ne débouche pas ....
Bernard

Répondre à BPAUD

7

BPAUD, le 11 jui 2008 à 21:27:27

M@rina
J'arrive à afficher la structure de la requète (MSQuery) avec les colonnes "élues" et un zone de critères avec comme entête le nom du champ critère...
Pour la valeur j'essaie diverses syntaxes poour désigner ma cellule portant le critère voulu , mais je ne sais trop comment libeller ceci :
> H1 ?
>nomcellule ?
avec guillements ? doubles ? simples ? entre crochets ? ou ??????????????????

Bernard

Répondre à BPAUD

8

BPAUD, le 11 jui 2008 à 21:32:17

Je reçois en retour le message d'erreur suivant :
"Valeur caractère non valide pour la définition de la conversion (null)"

Bernard

Répondre à BPAUD

9

Archi-dessin, le 11 jui 2008 à 22:24:31

Sallut, allez voir pour te raffraidhir un peut la mémoire
http://boisgontierjacques.free.fr/pages_site/access.htm

Répondre à Archi-dessin

10

BPAUD, le 11 jui 2008 à 23:53:18

RE...
ReBsr,
Je ne comprends pas grand chose...
J'ai déposé en cijoint le fichier Excel d'exemple : [url=http://www.cijoint.fr/cjlink.php?file=cj200807/cij13OIe­U9.xls].

Comme visiblement, je ne peux pas déposer de requète je retranscrit ci-dessous le SQL correspondant :

SELECT BaseEssai.A, BaseEssai.B, BaseEssai.C, BaseEssai.D, BaseEssai.E, BaseEssai.F, BaseEssai.G, BaseEssai.H
FROM `H:\Essai critère en cellule\Essai requète`.BaseEssai BaseEssai
WHERE (BaseEssai.E>801)
ORDER BY BaseEssai.A

H:\Essai critère en cellule est le 'chemin' d'enregistrement de ma requète

Mon problème est le suivant : J'ai ici en "dur" la valeur "801"
Cette valeur figure en Excel, fichier Essai Requète, feuille SD1, cellule J1
Je souhaite que la requète prenne le contenu de J1 comme valeur du critère de tri sur le champ "E"

Quelle est ta proposition ?
Merci
Bernard

Répondre à BPAUD

11

BPAUD, le 12 jui 2008 à 11:33:51

Bonjour,
Rien compris hier soir, pas mieux ce matin....
Je n'utilise pas Access, mon souci se situe au sein d'Excel.
Merci quand même. bernard

Répondre à BPAUD

12

michel_m, le 12 jui 2008 à 11:48:28

Bonjour,

Bernard, tu serais sympa de préciser que tu as exposé ton problème sur plusieurs forums et de préciser lesquels...

pour ta question, même entre quotes, SQL a horreur des espaces.

Le plus prudent serait de mettre entre crochets. Pour la syntaxe, tu FAQ d'Excel-download (wixipage6 MichelXLD) ou dans la FAQ ou les tutos de Silkyroad sur developpez.com; tu connais les adresses!!!

De même, si tu as la solution ailleurs, merci de respecter l'esprit communautaire en recopiant la solution qui marche.

Michel

Répondre à michel_m

13

BPAUD, le 12 jui 2008 à 12:05:18

Bonjour Michel,
Je suis désolé, mais je suis encore une fois dans la panade.
J'ai effectivement posté mon problème dans "Développez" attendu que rien ne semblait indiquer que j'allais m'en sortir avec les réponses que j'avais ici.

Quant à l'esprit communautaire, que je respecte, pour l'instant, je n'ai toujours rien qui marche....
Je vais essayer de regarder et de suivre tes indications mais vu comme c'est parti, je crois que je vais décoller sans avoir réglé mon problème...
Ca me paraissait pourtant simple, encore une fois, mais il est vrai que je patauge carrément avec la syntaxe (aussi)... entre les [], les ' et les ",... plus tout ce que j'ignore! Je crois bien que je vais 'rendre mon tablier', me consacrer à ce que je sais plus ou moins faire et abandonner mon espérance de me débrouiller de ces soucis...
Dans une autre vie peut-être ?????
Cdlt
Bernard

Répondre à BPAUD

14

m@rina, le 12 jui 2008 à 13:10:36

Bonjour Bernard,

Je ne parle pas SQL couramment, mais je pense que ta solution est ici (si j'ai bien tout compris ton problème !) :
http://forum.hardware.fr/...

m@rina

Répondre à m@rina

15

 moonj, le 28 mai 2009 à 09:33:30

Bonjour,
j'ai trouvé une solution a ce probleme, c'est pas le plus propre possible mais ca fonctione.
Si quelqu'un a mieux je suis preneur !!!!

En fait il faut faire une macro et du coup on edite le texte de la requete en live.
Voici un bout de solution :
A coller dans une macro.

Requete = "SELECT W_KIM_VEHICULEDTL.DOSINCDE, W_KIM_VEHICULEDTL.OBJINCDE, W_KIM_VEHICULEDTL.OBJIDENTVAL FROM KIMOCE.W_KIM_VEHICULEDTL W_KIM_VEHICULEDTL WHERE ('NO' ='" & Worksheets("Test").Range("F3") & "')"

With ActiveWorkbook.Connections("CERPTEST Test").OLEDBConnection
.BackgroundQuery = True
.CommandText = Array(Requete)
.CommandType = xlCmdSql
.Connection = _
"OLEDB;Provider=MSDAORA.1;Password=kimoce;User ID=kimoce;Data Source=CERPTEST"
.RefreshOnFileOpen = False
.SavePassword = True
.SourceConnectionFile = ""
.SourceDataFile = ""
.ServerCredentialsMethod = xlCredentialsMethodIntegrated
.AlwaysUseConnectionFile = False
End With
With ActiveWorkbook.Connections("CERPTEST Test")
.Name = "CERPTEST Test"
.Description = ""
End With

Répondre à moonj
Collection CommentÇaMarche.net