Üç adet tablom var.
1. Tblöğrenci
2.Tblpansiyon
3.Tmptablo
1. tabloda öğrencinin adısoyadı (metin), okulno(sayı), sınıfı(metin) verileri tutuluyor.
2. Tabloda Öğrencinin kayıtlı olduğu pansiyon (A blok, B blok)(---açılır kutudan seçilerek-değerler listesi mantığıyla)
Tutuluyor.
tblogrenci de sirano alanı otomatik sayı=birincil anahtar
tblpansiyonda de ogrtc alanı sayı=birincil anahtar ile ilşkili
tmptabloya kodla öğrencinin adı soyadı, sınıfı, okul no bilgileri kaydettirilip, kayıt kaynağı tmptablo olan raporda
bir metin kutusuna öğrencinin karşına hangi blokta olduğu nasıl getirilir.
yani rpr_ogrnobet raporundaki metin12 denetimine öğrencinin blok bilgisini
Dlookup la nasıl getiririz.
Yok mu yardı edecek biri?
Aşağıda ki Sorguyu bir deneyin. Sanırım mesele çözülecektir.
Kod:
SELECT TblOgrenci.tckimlikno, TblOgrenci.adısoyadı, TblOgrenci.sınıfı, TblOgrenci.okulno, TblPansiyon.kayıtlıoldugublok, TblPansiyon.kayıtlıolduğutur, TblPansiyon.pansiyonstatusu, TblPansiyon.odano
FROM TblPansiyon INNER JOIN TblOgrenci ON TblPansiyon.ogrtc = TblOgrenci.sirano;
(16/11/2019, 00:36)Kur@l yazdı: Aşağıda ki Sorguyu bir deneyin. Sanırım mesele çözülecektir.
Kod:
SELECT TblOgrenci.tckimlikno, TblOgrenci.adısoyadı, TblOgrenci.sınıfı, TblOgrenci.okulno, TblPansiyon.kayıtlıoldugublok, TblPansiyon.kayıtlıolduğutur, TblPansiyon.pansiyonstatusu, TblPansiyon.odano
FROM TblPansiyon INNER JOIN TblOgrenci ON TblPansiyon.ogrtc = TblOgrenci.sirano;
Tamam blok geldi ama, bu seferde nöbet tarihlerini atamadı. Sorguda nöbet tarihleri zaten işlenmemiş.
Oncelikle tmpTabloya "blok" alanı eklemelisiniz, eğer raporda yoksa raporda blok alanı ekleyip tablodaki blok alanına baglayin
Sonra da yazdır butonunun kodunu aşağıdaki kodla değiştirmeyi deneyin
Dim OgRs As DAO.Recordset
Dim sqlBlok As String
sglblok = " SELECT TblOgrenci.sirano, TblOgrenci.adısoyadı, TblOgrenci.sınıfı, TblOgrenci.okulno, TblPansiyon.kayıtlıoldugublok" & _
" FROM TblOgrenci INNER JOIN TblPansiyon ON TblOgrenci.sirano = TblPansiyon.ogrtc"
Set OgRs = CurrentDb.OpenRecordset(sglblok, dbOpenDynaset)
OgRs.MoveLast
OgRs.FindFirst "[sirano]=" & Açılan_Kutu11
CurrentDb.Execute "delete from tmpTablo"
For x = CLng(Me.txttarih1) To CLng(Me.txttarih2)
If InStr(1, "567", Weekday(x, vbMonday)) < 1 Then
' Debug.Print Format(x, "dd mmmm yyyy - ddd")
CurrentDb.Execute "insert into tmpTablo ([adısoyadı], [sınıfı], [okulno], [NbtTarih], [blok] ) values ('" & _
OgRs.Fields(1) & "','" & OgRs.Fields(2) & "','" & OgRs.Fields(3) & "'," & x & ",'" & OgRs.Fields(4) & "')"
If OgRs.AbsolutePosition = OgRs.RecordCount - 1 Then OgRs.MoveFirst Else OgRs.MoveNext
CurrentDb.Execute "insert into tmpTablo ([adısoyadı], [sınıfı], [okulno], [NbtTarih], [blok] ) values ('" & _
OgRs.Fields(1) & "','" & OgRs.Fields(2) & "','" & OgRs.Fields(3) & "'," & x & ",'" & OgRs.Fields(4) & "')"
If OgRs.AbsolutePosition = OgRs.RecordCount - 1 Then OgRs.MoveFirst Else OgRs.MoveNext
End If
Next x
DoCmd.OpenReport "rpr_ogrnobet", acViewPreview
Teşekkür ederim. Konu cevaplanmış-çözülmüştür.