filthepitome
Technical User
I have spent the last hour reading through threads and trying different things and I can't get this to work
Here is the code as it is in the module I created (taken from the FAQ
----------------------------------------------------------
Function Concatenate(pstrSQL As String, _
Optional pstrDelim As String = ", ") _
As String
'example
'tblFamily with FamID as numeric primary key
'tblFamMem with FamID, FirstName, DOB,...
'return a comma separated list of FirstNames
'for a FamID
' John, Mary, Susan
'in a Query
'SELECT FamID,
'Concatenate("SELECT FirstName FROM tblFamMem
' WHERE FamID =" & [FamID]) as FirstNames
'FROM tblFamily
'
'======For DAO uncomment next 4 lines=======
'====== comment out ADO below =======
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset(pstrSQL)
'======For ADO uncomment next two lines=====
'====== comment out DAO above ======
'Dim rs As New ADODB.Recordset
'rs.Open pstrSQL, CurrentProject.Connection, _
adOpenKeyset, adLockOptimistic
Dim strConcat As String 'build return string
With rs
If Not .EOF Then
.MoveFirst
Do While Not .EOF
strConcat = strConcat & _
.Fields(0) & pstrDelim
.MoveNext
Loop
End If
.Close
End With
Set rs = Nothing
'====== uncomment next line for DAO ========
Set db = Nothing
If Len(strConcat) > 0 Then
strConcat = Left(strConcat, _
Len(strConcat) - Len(pstrDelim))
End If
Concatenate = strConcat
End Function
------------------------------------------------------------
Here is my query, which is pulling from a table with three fields.
SELECT Patients_QualifiedReportsCount.[Patient Id], Concatenate("SELECT Report FROM Patients_QualifiedReportsCount
WHERE Patient id =" & [Patient id]) AS AllReports
FROM Patients_QualifiedReportsCount;
When I run the query I get an error and when i click on debug, this is the section highlighted in yellow
Set rs = db.OpenRecordset(pstrSQL)
Let me also add I know no VB, and this is my first attempt at a module/custom function.
TIA
Here is the code as it is in the module I created (taken from the FAQ
----------------------------------------------------------
Function Concatenate(pstrSQL As String, _
Optional pstrDelim As String = ", ") _
As String
'example
'tblFamily with FamID as numeric primary key
'tblFamMem with FamID, FirstName, DOB,...
'return a comma separated list of FirstNames
'for a FamID
' John, Mary, Susan
'in a Query
'SELECT FamID,
'Concatenate("SELECT FirstName FROM tblFamMem
' WHERE FamID =" & [FamID]) as FirstNames
'FROM tblFamily
'
'======For DAO uncomment next 4 lines=======
'====== comment out ADO below =======
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset(pstrSQL)
'======For ADO uncomment next two lines=====
'====== comment out DAO above ======
'Dim rs As New ADODB.Recordset
'rs.Open pstrSQL, CurrentProject.Connection, _
adOpenKeyset, adLockOptimistic
Dim strConcat As String 'build return string
With rs
If Not .EOF Then
.MoveFirst
Do While Not .EOF
strConcat = strConcat & _
.Fields(0) & pstrDelim
.MoveNext
Loop
End If
.Close
End With
Set rs = Nothing
'====== uncomment next line for DAO ========
Set db = Nothing
If Len(strConcat) > 0 Then
strConcat = Left(strConcat, _
Len(strConcat) - Len(pstrDelim))
End If
Concatenate = strConcat
End Function
------------------------------------------------------------
Here is my query, which is pulling from a table with three fields.
SELECT Patients_QualifiedReportsCount.[Patient Id], Concatenate("SELECT Report FROM Patients_QualifiedReportsCount
WHERE Patient id =" & [Patient id]) AS AllReports
FROM Patients_QualifiedReportsCount;
When I run the query I get an error and when i click on debug, this is the section highlighted in yellow
Set rs = db.OpenRecordset(pstrSQL)
Let me also add I know no VB, and this is my first attempt at a module/custom function.
TIA