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.