AccessTr.neT

Tam Versiyon: Liste kutusunda Aynı Kişiye Ait Verileri Yan Yana Yazdırma
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayın hocalarım
srg_aboneler sorgusundan alt form yerine Liste kutusu oluşturdum.
Yalnız burada Listede veya alt formda Musterı adının çift yazılması yerine 
Abone adının,Gelecektarihini Tek yazamazmıyız ?
Ayrıca alt formda yer alan verilerin gelecektarih bu gün ise,bu tarihten bir gün önce listelemesi ve uyarı msj.vermesini sağlamak mümkünmü.

Saygılarımla.
F_GIRIS isimli formdaki Liste kutusunda aynı kişiye ait 2 satır olmasının sebebi, bu kişiye ait 2 farklı ürün olması. 1. satırda tavuk, 2. satırda yumurta listeleniyor.

Tek veri olmasını istiyorsanız liste kutusundan bu sütunları kaldırmalısın.
Sayın Ozan hocam,
Haklısınız 2 çeşit ürün var,benimde takıldığım nokta bu,Şöyle bişey olamazmı ürünleri vede miktarları yan yana yazamazmıyız.

Saygılarımla.
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
Sayın Ozan hocam,
Cevabınız ve emeğiniz için sonsuz teşekkürler.

Saygılarımla.