Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/06/2011, 17h18   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2006
Messages : 39
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 39
Points : 13
Points : 13
Par défaut Fonction non définie dans l'expression

Bonjour,
Un problème assez fréquent mais là je ne vois pas.
Explications :

J'ai la fonction function suivante dans un module VBA sous Access 2007 appelé CodeVBA_
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
Public Function ConcTasks(szValue As Long) As String
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim vFld As String
 
Set cnn = CurrentProject.Connection
Set rs = New ADODB.Recordset
 
'Attention si value= string il faut préciser les ' '
rs.Open "SELECT TaskText_ as Fld FROM FileInput_GAMS2_ZGAMS WHERE [Notification_]=" & szValue & " AND [CodeGroup_]='ZGAMS002'", cnn, adOpenForwardOnly, adLockReadOnly
 
vFld = vbNullString
Do While Not rs.EOF
    If Not IsNull(rs!Fld) Then vFld = vFld & ", " & rs!Fld
    rs.MoveNext
Loop
 
vFld = Mid(vFld, 3)
 
Set cnn = Nothing
Set rs = Nothing
ConcTasks = vFld
 
End Function
Ma requête qui appelle cette fonction est : (concaténation de lignes)
Code :
1
2
3
4
5
6
 
INSERT INTO TableTemp_IllusTasksList ( Notification_, CodeGroup_, ConcatenateList_ )
SELECT FileInput_GAMS2_ZGAMS.Notification_, FileInput_GAMS2_ZGAMS.CodeGroup_, ConcTasks([Notification_])
FROM FileInput_GAMS2_ZGAMS
WHERE CodeGroup_ = 'ZGAMS002'
GROUP BY FileInput_GAMS2_ZGAMS.Notification_, FileInput_GAMS2_ZGAMS.CodeGroup_;
Sous Access 2007 lorsque j'exécute cette requête manuellement cela marche nickel. Le problème est que j'ai un programme en VB.NET 2005 qui exécute cette requête à travers un RunStoredProcedure. A l'éxécution j'ai l'erreur :

ManageDBB.RunStoredProcedure Fonction «ConcTasks» non définie dans l'expression.

Quelqu'un à une idée? La fonction «ConcTasks» n'est en effet pas une fonction SQL comment lui faire comprendre qu'il doit aller la chercher dans le module vba ? J'espère avoir été clair. J'ai vu que je ne suis pas le seul à avoir le problème. Existe-t-il une solution? Un moyen de contourner? Merci de votre retour.
teuzadur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 21h48   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
Autant que je sache on ne peut pas appeler une fonction utilisateur Access de l'extérieur de Access. J'ai essayé plusieurs fois sans succès.

Ce truc ne marche que quand on est dans Access.

La seule solution que je connaisse est de trouver un substitut à base de fonction standard et de SQL.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h19.


 
 
 
 
Partenaires

Hébergement Web