Konu başlığı Değiştirilmiştir.
Yeni sorgu oluştur,
Sql koduna aşağıdakileri yaz
SELECT srg_aboneler.MUSTERIADI, srg_aboneler.fark, srg_aboneler.sonsiparistarihi, srg_aboneler.gelecektarih, srg_aboneler.MUSTERIDURUM, ConcatRelated("URUNADI & ' (' &ortalama & ')'","srg_aboneler") AS urunleri
FROM srg_aboneler
GROUP BY srg_aboneler.MUSTERIADI, srg_aboneler.fark, srg_aboneler.sonsiparistarihi, srg_aboneler.gelecektarih, srg_aboneler.MUSTERIDURUM, ConcatRelated("URUNADI & ' (' &ortalama & ')'","srg_aboneler");
yeni modül oluştur, aşağıdakileri yaz.
Option Compare Database
Public Function ConcatRelated(strField As String, _
strTable As String, _
Optional strWhere As String, _
Optional strOrderBy As String, _
Optional strSeparator = ", ") As Variant
On Error GoTo Err_Handler
Dim rs As DAO.Recordset
Dim rsMV As DAO.Recordset
Dim strSql As String
Dim strOut As String
Dim lngLen As Long
Dim bIsMultiValue As Boolean
ConcatRelated = Null
strSql = "SELECT " & strField & " FROM " & strTable
If strWhere <> vbNullString Then
strSql = strSql & " WHERE " & strWhere
End If
If strOrderBy <> vbNullString Then
strSql = strSql & " ORDER BY " & strOrderBy
End If
Set rs = DBEngine(0)(0).OpenRecordset(strSql, dbOpenDynaset)
bIsMultiValue = (rs(0).Type > 100)
Do While Not rs.EOF
If bIsMultiValue Then
'For multi-valued field, loop through the values
Set rsMV = rs(0).Value
Do While Not rsMV.EOF
If Not IsNull(rsMV(0)) Then
strOut = strOut & rsMV(0) & strSeparator
End If
rsMV.MoveNext
Loop
Set rsMV = Nothing
ElseIf Not IsNull(rs(0)) Then
strOut = strOut & rs(0) & strSeparator
End If
rs.MoveNext
Loop
rs.Close
'Return the string without the trailing separator.
lngLen = Len(strOut) - Len(strSeparator)
If lngLen > 0 Then
ConcatRelated = Left(strOut, lngLen)
End If
Exit_Handler:
'Clean up
Set rsMV = Nothing
Set rs = Nothing
Exit Function
Err_Handler:
MsgBox "Error " & Err.Number & ": " & Err.Description, vbExclamation, "ConcatRelated()"
Resume Exit_Handler
End Function
Formdaki liste kutusunun satır kaynağını yeni sorgu olacak şekilde düzenle