OVH Cloud OVH Cloud

Paramètres et procédures stockées (ou autre...)

2 réponses
Avatar
stephlau
Bonjour,
Je suis en train de migrer une application d'Access (BD normale
utilisant le moteur JET) à un projet Access utilisant MSDE (SQL Server).

J'ai kk petits problèmes.

Sous Access j'ai une ensemble de trois listes deroulants qui sont mis a
jour les unes par rapport aux autres: On choisit un type de materiel
dans la premiere, les marques correpondante a ce type sont affichés dans
la secondes. On choisit une marque dans la seconde et les modele
correspondant sont affichés dans la troisieme.

Je n'arrive pas a recreer cela sous MSDE, en effet je ne peut plus
passer en parametre d'une requete SQL la valeur d'une liste du
formulaire. Je pensais donc qu'il fallait créer une procedure stockée
parametrée, mais la non plus je ne sais pas comment lui passer les
parametre.

Est ce que kkun aurait une idée ?

Je vous remercie d'avance
--
Accédez à ce forum en un clique sur le web avec http://web2news.com
http://web2news.com/?microsoft.public.fr.sqlserver

2 réponses

Avatar
juju
je suis en train de faire la même chose que toi... Donc :
- tu crées une procédure stockée en SQL en précisant les
paramètres.
- si ta PS est source de formulaire, tu passes le ou les
paramètres (séparés par des ;) dans la propriété
InputParameters du formulaire sous la forme stricte :
@mavar int = Forms![MonForm]![MonControle]
- si ta PS est source d'état ou de contrôle (ex. : liste
déroulante), tu ne peux passer les paramètres que dans le
code VBA : à toi de trouver le bon événement (AfterUpdate
ou OnEnter de la liste, OnOpen du formulaire, etc.)
exemple :

Private Sub MaListe1_AfterUpdate()
Dim Critere as int
Critere = Forms![MonForm]![MaListe1]
Me.MaListe2.RowSource = "exec MaPS " & Critere & ""

J'espère que ça va t'aider...

à moi de te poser une question :
j'ai une base SQL, et j'ai lié des tables d'une base
Access, qui se présentent donc sous la forme de vues dans
le QueryAnalyser.
Pb : au démarrage, j'ai souvent un message d'erreur qui
m'indique que le moteur Jet ne peut pas se lancer (pas
d'autorisation de lecture ou ouvert en mode exclusif par
autre utilisateur...). Ce n'est pas systématique, et je
n'arrive pas à trouver la solution. Si tu as une idée...

juju

-----Message d'origine-----
Bonjour,
Je suis en train de migrer une application d'Access (BD


normale
utilisant le moteur JET) à un projet Access utilisant


MSDE (SQL Server).

J'ai kk petits problèmes.

Sous Access j'ai une ensemble de trois listes deroulants


qui sont mis a
jour les unes par rapport aux autres: On choisit un type


de materiel
dans la premiere, les marques correpondante a ce type


sont affichés dans
la secondes. On choisit une marque dans la seconde et les


modele
correspondant sont affichés dans la troisieme.

Je n'arrive pas a recreer cela sous MSDE, en effet je ne


peut plus
passer en parametre d'une requete SQL la valeur d'une


liste du
formulaire. Je pensais donc qu'il fallait créer une


procedure stockée
parametrée, mais la non plus je ne sais pas comment lui


passer les
parametre.

Est ce que kkun aurait une idée ?

Je vous remercie d'avance
--
Accédez à ce forum en un clique sur le web avec


http://web2news.com
http://web2news.com/?microsoft.public.fr.sqlserver
.



Avatar
juju
je recommence, mon premier message n'est apparemment pas
passé :-(

crées ta PS en SQL avec un ou des paramètres, puis dans
VBA, sur l'événement AfterUpdate de ta liste1, tu mets
(ex.) :

Dim Critere1 as Integer
Dim Critere2 as String
...
Critere1 = Forms![MonForm]![Liste1]
Critere2 = Forms![MonForm]![ValeurAutreContrôle]
...
Me.Liste2.RowSource = "exec MaPS " & Critere1 & ",'" &
Critere2 & "'"

Autre chose :
tu peux mettre une PS paramétrée en Source de Formulaire,
puis tu passes les paramètres dans la propriété
InputParameters sous la forme :
@MonParam1 int = Forms![MonForm]![MaValeur1];@MonParam2
nvarchar(5) = Forms![MonForm]![MaValeur2]

MAIS (car il y a un mais...), tu ne peux pas mettre une PS
Paramétrée en source d'état (malgré la propriété
InputParameters présente) ou de contrôle. Tu es obligé de
passer par le Code VBA.

Ouala, ouala, moi, j'ai mis pas mal de temps à trouver
tout ça, donc j'espère t'en faire gagner.

juju



-----Message d'origine-----
Bonjour,
Je suis en train de migrer une application d'Access (BD


normale
utilisant le moteur JET) à un projet Access utilisant


MSDE (SQL Server).

J'ai kk petits problèmes.

Sous Access j'ai une ensemble de trois listes deroulants


qui sont mis a
jour les unes par rapport aux autres: On choisit un type


de materiel
dans la premiere, les marques correpondante a ce type


sont affichés dans
la secondes. On choisit une marque dans la seconde et les


modele
correspondant sont affichés dans la troisieme.

Je n'arrive pas a recreer cela sous MSDE, en effet je ne


peut plus
passer en parametre d'une requete SQL la valeur d'une


liste du
formulaire. Je pensais donc qu'il fallait créer une


procedure stockée
parametrée, mais la non plus je ne sais pas comment lui


passer les
parametre.

Est ce que kkun aurait une idée ?

Je vous remercie d'avance
--
Accédez à ce forum en un clique sur le web avec


http://web2news.com
http://web2news.com/?microsoft.public.fr.sqlserver
.