cs_Petiote
Messages postés14Date d'inscriptionmercredi 7 novembre 2007StatutMembreDernière intervention 8 février 2010
-
28 mars 2008 à 16:15
cs_Petiote
Messages postés14Date d'inscriptionmercredi 7 novembre 2007StatutMembreDernière intervention 8 février 2010
-
2 avril 2008 à 15:35
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 ;)
cs_Petiote
Messages postés14Date d'inscriptionmercredi 7 novembre 2007StatutMembreDernière intervention 8 février 2010 2 avril 2008 à 15:35
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))
'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)
cs_Petiote
Messages postés14Date d'inscriptionmercredi 7 novembre 2007StatutMembreDernière intervention 8 février 2010 28 mars 2008 à 16:36
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 )