PB : Exécution requête Access en C# (fonctions dans module)
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 2013
-
19 juin 2006 à 17:26
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 2013
-
20 juin 2006 à 09:31
Bonjour tout le monde,
Pour bien expliqué mon problème je vais commencer par un petit topo :
J'ai une base Access avec :
- une tablePERSONNE (id, nom, prenom)
- une tableRENDEZVOUS (id, idPersonne, dateDebut, dateFin)
- un module VB contenant une fonction retournant le nombre de RENDEZVOUS pour un idPersonne donné : getCountRendezVous(idPers as Integer)
- une requête Access qui prend toutes les infos de PERSONNE, et le total retourné par getCountRendezVous. La requêtePERSONNE_RENDEZVOUS a alors cette allure :
SELECT id, nom, prenom, getCountRendezVous(id) FROM PERSONNE
Et elle s'exécute correctement et retourn des valeurs cohérents.
Cependant lorsque je fais un "SELECT * FROM PERSONNE_RENDEZVOUS" depuis mon code C# j'obtiens l'erreur suivante :
Fonction 'getCountRendezVous' non définie dans l'expression.
Voilà, si quelqu'un a un idée je suis preneur
Merci d'avance
PS : Pour une fois j'ai pas cherché le thème pendant 5 minutes
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 19 juin 2006 à 21:50
Salut,
Comment tu executes ta requete.
Les requetes access sont a executer comme des procedures stockée.
Transforme ta requete en procedure stockée
ie c'est a dire avec un parametre en entree et
Le getcount sera peut être reconnue
et essai de le faire sans ton module
du genre
SELECT id,nom,prenom, count(id) as nb FROM PERSONNE
group by id,nom,prenom
Et tu declare un ado parameter de type int
dont tu renseigne la valeur par C#
Le commandtype est storedprocedure
un petit exemple pour te guider
Dim cmd As OledbCommand()
Dim conn As OledbConnection
Dim rdr As OledbDataReader
conn = New OledbConnection(your connection string here)
cmd = New OledbCommand()
cmd.CommandType = CommandType.StoredProcedure
cmd.Connection = conn
cmd.CommandText = "myAccessQueryName"
cmd.Parameters.Add("@Table", SqlDbType.VarChar, 200)
cmd.Parameters("@Table").Direction = ParameterDirection.Input
cmd.Parameters("@Table").Value = "Orders"
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 20 juin 2006 à 09:31
Merci bien l'ami,
Bon l'a tu me proposes une nouvelle requêtre qui n'utilise pas de fonction définie dans un module VB attaché à ma BdD Access.
Quand je dis "exécuter une requête Access" j'entend par là : faire un
SELECT * de la requête Access. Ce qui fonctionne très bien pour des
requêtes Access qui n'utilisent pas de fonction VB.
Merci quand même ;)
De plus j'ai trouvé une autre bidouille pour faire ce que je recherchais, donc une réponse n'est plus prioritaire :D