Merhabalar. REsimde de görüldüğü gibi formda zaten var olan gezinti düğmelerinin benzerini ben de yaptım. Fakat orda olan aktif kayıt no ve toplam kayıt no kısmını yardım da aldığım halde çözemedim.
örneğimde fom açıldığında ve filtre uygulandığında kodlar çalışmıyor!
Bir de Access'e ait yerde filtre uygulanmışsa süzülmüş diye belirtiyor. Böyle olursa daha iyi olacak.
Belki kullandığım kod dışında başka yöntemler de vardır ?
Alttaki gezinti düğmelerini yerini ve görüntüsünü değiştirmek için iptal edeceğim.
teşekkürler.
Kodda atamak yerine direkt metin kutusunun kayıt kaynağına yazmayı deneyin.
Koddaki atamaları kaldırın ve
txtAktifKayit 'nın kayıt kaynağına
txtToplamKayit 'nın 'nın kayıt kaynağına
Kod:
=RecordsetClone.RecordCount
yazın. Denedim düzgün çalışıyor.
filtre uygulandığında çalışmıyor demişsiniz ama sizin formda filtreleme göremedim. Üstte Ara var, ancak o formdaki kayıt sayısını değiştirmiyor, sadece istenilen kayda gidiyor o kadar.
Merhaba,
Ne kadar teşekkür etsem azdır size. Hem bir sürü form olayına kod yazmaktan kurtuldum hem de profesyonelce ve bir kadar basitçe uygulanabilir. Hem de hatasız, hata olursa
Access in kendi rutinleri yüzünden olacak. Ama ben biraz da daha geliştiridim tekniğinizi, Toplam kayıt kutusuna:
Kod:
=IIf([NewRecord];RecordsetClone.RecordCount+1;RecordsetClone.RecordCount)
Bu sayede yeni kayıtta da doğru görünüyor rakam. 275/274 yerine 275/275 oluyor. Buna bir de filtre uygulanırsa mesaj ekleyeceğim bir yere her şey tamma oldu.
Bahsettiğim filre kutulardan birini seçip "
Seçime göre filtre uygula" gibi içerik menüsünde idi. Ama onlar da düzgün çalıştı. Prozblem çözüldü. Aslında imzamdaki birinci cümlenin kehaneti gerçeleşmiş oldu. Uzaklarda arama diyor her zaman çözüm kendini.
Sağlıcakla, sağolun.
Selamlar,
Sayın
Access uzmanları neredeyse çıldırmak üzereyim artık bu kadarına da pes doğrusu.
İki farklı formda aynı işlemi yapıyorum birinde çalışıyor diğerinde yanlış toplam veriyor. tüm vb kodlarını silip denedim, tüm form nesnelerini silip denedim bi şey bulamadım. Nesneyi yeniden oluşturdum olmadı, çalışan formdan kopyaladım olmadı. Personel formunda çalışan
=IIf([NewRecord];RecordsetClone.RecordCount+1;RecordsetClone.RecordCount)
komutu Ogrenci formunda neden çalışmıyor ?
Hatta kayıtları sildim azalttım abuk sabuk şeyler de denedim olmadı. Nedense Ogrenci formunda ilk girişte sürekli toplam txtToplamKayit sürekli 1 görünüyor ilerleyince düzeliyor. bunun ilacı nedir yoksa
Access arasıra böyle şeyler yapar mı ?
Resimde görülen sorun nasıl çözülür? Örnek ektedir.
Enterasan bir problem.
Ogrenci tablosunu kullanan, Yeni bir form oluşturduğumda çalışıyor.
Ancak sizin formda düzgün çalışmıyor nedense.
Formda bu kodla çakışan bir şeyler olabilir ama
sorun nedir bilmiyorum açıkcası.
[bilgi]Sn. Mehmeser'in isteği üzerine ek kaldırılmıştır[/bilgi]
bu yol genel olarak kullanılan yol değildir
doğrusu budur kodun ilgili kısmını aynen değiştir
Kod:
Private Sub Form_Current()
Dim rst As DAO.Recordset
Set rst = Me.RecordsetClone
'son kayda gitki toplam kaydı alabilleeim
rst.MoveLast
' rst nin bu formun kayıtlarına dayandığını belirtiyoruz
rst.Bookmark = Me.Bookmark
Me.txtToplamKayit = Me.CurrentRecord & " de " & rst.RecordCount[hr]
aslında doğru navigation kodu bu şekilde olmalı
Private Sub Form_Current()
Dim rst As DAO.Recordset
On Error GoTo ERRORForm_Current
Dim strErrMsg As String
' default olarak düğmelerin durumu
Me.ilk.Enabled = True
Me.önceki.Enabled = True
Me.sonraki.Enabled = True
Me.son.Enabled = True
Set rst = Me.RecordsetClone
rst.MoveLast
rst.Bookmark = Me.Bookmark
If rst.AbsolutePosition = 0 Then
Me.ilk.Enabled = False
Me.önceki.Enabled = False
End If
If Me.CurrentRecord >= Me.RecordsetClone.RecordCount Then
Me.sonraki.Enabled = False
Me.son.Enabled = False
End If
Me.kayitno.Caption = Me.CurrentRecord & " de " & rst.RecordCount
rst.Close
Set rst = Nothing
ERRORForm_Current_exit:
On Error Resume Next
Exit Sub
ERRORForm_Current:
Select Case Err
Case 3021
Resume Next
Case Else
strErrMsg = strErrMsg & "Error #: " & Format$(Err.Number) & vbCrLf
strErrMsg = strErrMsg & "Error Description: " & Err.Description
MsgBox strErrMsg, vbInformation, "Kayda gidiyorsun"
Resume ERRORForm_Current_exit
End Select
End Sub
Private Sub ilk_Click()
On Error GoTo Err_ilk_Click
Me.Recordset.MoveFirst
Exit_ilk_Click:
Exit Sub
Err_ilk_Click:
MsgBox Err.Description
Resume Exit_ilk_Click
End Sub
Private Sub önceki_Click()
On Error GoTo Err_önceki_Click
Me.Recordset.MovePrevious
Exit_önceki_Click:
Exit Sub
Err_önceki_Click:
MsgBox Err.Description
Resume Exit_önceki_Click
End Sub
Private Sub sonraki_Click()
On Error GoTo Err_sonraki_Click
Me.Recordset.MoveNext
Exit_sonraki_Click:
Exit Sub
Err_sonraki_Click:
MsgBox Err.Description
Resume Exit_sonraki_Click
End Sub
Private Sub son_Click()
On Error GoTo Err_son_Click
Me.Recordset.MoveLast
Exit_son_Click:
Exit Sub
Err_son_Click:
MsgBox Err.Description
Resume Exit_son_Click
End Sub
Private Sub cmdNew_Click()
On Error GoTo Err_cmdNew_Click
DoCmd.GoToRecord , , acNewRec
Exit_cmdNew_Click:
Exit Sub
Err_cmdNew_Click:
MsgBox Err.Description
Resume Exit_cmdNew_Click
End Sub
Private Sub cmdClose_Click()
On Error GoTo Err_cmdClose_Click
DoCmd.Close
Exit_cmdClose_Click:
Exit Sub
Err_cmdClose_Click:
MsgBox Err.Description
Resume Exit_cmdClose_Click
End Sub
Private Sub cmdDelete_Click()
On Error GoTo Err_cmdDelete_Click
If MsgBox("kayıt silinecekmi?", vbYesNo + vbDefaultButton2, "Not!") = vbNo Then
Exit Sub
End If
Me.Recordset.Delete
Me.Requery
MsgBox "Uyarı", , "Kayıt silindi"
Exit_cmdDelete_Click:
Exit Sub
Err_cmdDelete_Click:
Select Case Err
Case 3021
MsgBox "böyle bir kayıtyok"
Resume Exit_cmdDelete_Click
Case Else
Dim msgStr As String
msgStr = CStr(Err) & " " & Description
MsgBox msgStr
Resume Exit_cmdDelete_Click
End Select
End Sub