Requete avec fonction via VB

esseyv Messages postés 4 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 17 août 2004 - 16 août 2004 à 11:44
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 - 17 août 2004 à 14:08
Bonjour,

Je développe une appli VB qui accède à une BD access. Dans cette BD, j'ai écrit des requete qui utilisent des fonctions contenues dans des modules. Ma requete marche correctement mais lorsque je veux ouvrir cette requete à partir de VB, j'ai des erreurs disant que les fonctions contenues dans la requete sont introuvables. Que dois-je faire?

Merci

5 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
16 août 2004 à 14:54
Salut,

Un tit bout de code ? Ca aiderait.

Cordialement, CanisLupus

Tous les glands ne deviennent pas des chênes mais tous les chênes ont été des glands
esseyv Messages postés 4 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 17 août 2004
17 août 2004 à 11:04
Voilà ma requete:

SELECT TblOperations.Op_Principal, TblOperations.Op_Nominal, Addition([Op_Principal],[Op_Nominal]) AS Expr1
FROM TblOperations;

La foncyion Addition:

Public Function Addition(val1 As Double, val2 As Double) As Double
Addition = val1 + val2
End Function

Cette fonction a été mise dans un module de la base de données access.
Maintenant je crée un ADODC dont le recordsource esr cette requete et quand j'essaie de lier une zone de saisie à cet ADODC, on me dit que le fonction Addition n'est pas définie dans l'expression.

Merci d'avance
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
17 août 2004 à 12:44
Là, je comprend mieux.
En access (vba) les requetes sont un peu différentes.
Avec vb6, la requete pour ton recordsource tu devrais être :

SELECT TblOperations.Op_Principal, TblOperations.Op_Nominal, ([Op_Principal] + [Op_Nominal]) AS Expr1
FROM TblOperations

Cordialement, CanisLupus

Tous les glands ne deviennent pas des chênes mais tous les chênes ont été des glands
esseyv Messages postés 4 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 17 août 2004
17 août 2004 à 12:58
Je suis d'accord mais supposons que ce ne soit pas la fonction addition mais une autre. En fait, mon problème est de savoir si je peux utiliser une requete access intégrant une fonction (prédéfinie ou écrite par le programmeur en vba) dans un programme vb6.
Si non, comment contourner ce fait

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
17 août 2004 à 14:08
Salut,

Je n'utilise pas de requetes contenant des fonctions externes mais, si ta requete fonctionne sous access, ça devrait fonctionner sous vb avec cette méthode d'exécution de requête stockée (exemple en direct de chez microsoft) :

Sub ADOExecuteQuery()
   Dim cnn As New ADODB.Connection
   Dim rst As New ADODB.Recordset
   Dim fld As ADODB.Field
   ' Ouverture de la connection
   cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
      "Data Source=.\Comptoir.mdb;"
   ' Ouverture du Recordset
   rst.Open "[ Produits supérieurs moyenne prix]", _
      cnn, adOpenForwardOnly, adLockReadOnly, adCmdStoredProc
   ' Affichage des enregistrements dans la
   ' fenêtre de débogage
   Do Until rst.EOF
   For Each fld In rst.Fields
      Debug.Print fld.Value & ";";
   Next
   Debug.Print
      rst.MoveNext
   Loop
   ' Fermeture du Recordset
   rst.Close
End Sub


Cordialement, CanisLupus

Tous les glands ne deviennent pas des chênes mais tous les chênes ont été des glands
Rejoignez-nous