Requête Paramétrée sous Access en vb.net [Résolu]

Signaler
Messages postés
14
Date d'inscription
mercredi 7 novembre 2007
Statut
Membre
Dernière intervention
8 février 2010
-
Messages postés
14
Date d'inscription
mercredi 7 novembre 2007
Statut
Membre
Dernière intervention
8 février 2010
-
Bonjour,
Voilà mon problème.
J'ai une requête sous Access qui a besoin de 2 paramètres (an et ancalcul) pour être exécutée. Le truc c'est que je ne peux pas mettre ma requête directement dans mon code car si le client change le contenu il faudra refaire le code de l'application. C'est pourquoi on appelle la requête. Donc j'aimerai savoir quel est le bout de code qui va dire tu me mets le contenu de mon Inpubox1 dans le paramètre "an" et le contenu de mon InputBox2 dans le paramètre "ancalcul".
Je bosse donc en vb.net sous Visual Studio 2005, et c'est une base Access.
Merci d'avance.
ps: si je trouve une solution je vous préviens ;)

5 réponses

Messages postés
14
Date d'inscription
mercredi 7 novembre 2007
Statut
Membre
Dernière intervention
8 février 2010

Bon avec mon chef de projet on a trouvé la solution

'/////////////////////Là dans ce bout de code qu'on a mis dans un fichier (BDACCESS.vb) qui a tout ce qui concerne la connexion, deconnexion de la base, l'execution de requête.
Public
Function executeWithParam(
ByVal requetesql
As
String,
ByVal ParamRequete
As Array,
ByVal nbParam
As
Integer)
As DataSet
Dim MyAdapter
As OleDbDataAdapter =
New OleDbDataAdapter

Dim MyDataSet
As DataSet =
New DataSet(
"données")

Dim MyCommand
As OleDbCommand

Try
   MyCommand =
New OleDbCommand(requetesql, MyConnection)

   Dim i
As
Integer

   For i = 0
To (nbParam - 1)
      MyCommand.Parameters.AddWithValue(ParamRequete(i, 0), ParamRequete(i, 1))

   Next

   MyAdapter.SelectCommand = MyCommand
   MyDataSet.Clear()
   MyAdapter.Fill(MyDataSet,
"données")

   'A ce niveau les donnes résultantes de la requete se trouvent dans => MyDataSet.Tables(0) 
   Return MyDataSet

Catch ex
As Exception
MessageBox.Show(
"Erreur lors de l'execution de la requete." + ex.Message +
"." + requetesql)

End
Try
Return
Nothing

End
Function'
'//////////////////////////////////////////////////////////////////////////////////////////////////

'/////////////////////Et ça on l'a mis dans mon User control au niveau du bouton1click
Dim Parametres(2, 2)
As
String 'On crée un tableau à 2 dim qui contient le nom du param et sa valeur (récupérée grâce à un InputBox)
Parametres(0, 0) =
"anprec" 'Nom du Param1
Parametres(0, 1) = anaisanneeN1.ToString() 'Valeur du param1
Parametres(1, 0) =
"an" 'Nom du Param1
Parametres(1, 1) = anaisanneeN.ToString() 'Valeur du param2
BDACCESS.executeWithParam(
"EXECUTE " + Mareqûête , Parametres, 2)

'////////////////////////////////////////////////////////////////////////////////////////////////////

Voilà j'espère que ça pourra aider quelqu'un un de ces 4
Petiote
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,

J'ai pas vraiment bien saisi, mais est-ce cela, car l'inputbox te renvois un type String :

an = InputBox1("veuillez saisir votre mot", "Essai")
ancalcul = InputBox2("veuillez saisir votre mot", "Essai")

A+
Exploreur

 Linux a un noyau, Windows un pépin
Messages postés
14
Date d'inscription
mercredi 7 novembre 2007
Statut
Membre
Dernière intervention
8 février 2010

Bonjour Exploreur

En fait les "an" et "ancalcul" sont les paramètres dans Access, ce ne sont pas des variables sous vb. Je ne sais pas comment lui dire ce que je demandais plus haut.
Il n'y a pas une sorte de fonction qui dit :
param.mabase.marequete("an") = inputbox1.Tostring
(bien sûr je mets un truc au pif  )

Petiote
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Re,

Bonne question dont je n'ai pas la réponse...mais "je pense" qu'il doit y avoir la possibilité de récupérer tes paramètre Access..

A+
Exploreur

 Linux a un noyau, Windows un pépin
Messages postés
14
Date d'inscription
mercredi 7 novembre 2007
Statut
Membre
Dernière intervention
8 février 2010

Re,

Vis ça fait plusieurs heures qu je cherche et je ne trouve rien qui coressponde à ce que je veux.
Je ne vois pas comment contourner le problème...

Merci quand même.
Petiote.