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_
Ma requête qui appelle cette fonction est : (concaténation de lignes)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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_;
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.
Partager