Modüle aşağıdaki kodu ekleyin
Public Function Test(FormAdi As String, GKayitAlani As String)
On Error GoTo Err_Form_Current
Dim frm As Access.Form
Set frm = Forms(FormAdi)
Dim recClone As Object
Dim intNewRecord As Integer
'intNewRecord = IsNull(t1)
If frm.NewRecord Then
frm.IlkKayit.Enabled = True
frm.SonrakiKayit.Enabled = False
frm.OncekiKayit.Enabled = True
frm.SonKayit.Enabled = False
frm.YeniKayit.Enabled = False
frm.KayitAlani.Enabled = True
GKayitAlani = "Yeni Kayıt"
frm.GKayitAlani.SetFocus
Exit Function
Else
frm.YeniKayit.Enabled = True
frm.SonKayit.Enabled = True
End If
Set recClone = frm.RecordsetClone
If recClone.RecordCount = 0 Then
frm.SonrakiKayit.Enabled = False
frm.OncekiKayit.Enabled = False
frm.IlkKayit.Enabled = False
SonKayit.Enabled = False
Else
recClone.Bookmark = frm.Bookmark
recClone.MovePrevious
frm.IlkKayit.Enabled = Not (recClone.BOF)
frm.OncekiKayit.Enabled = Not (recClone.BOF)
recClone.MoveNext
recClone.MoveNext
frm.SonKayit.Enabled = Not (recClone.EOF)
frm.SonrakiKayit.Enabled = Not (recClone.EOF)
recClone.MovePrevious
End If
frm(GKayitAlani) = DCount("*", frm.RecordSource) & " Kayıttan " & (recClone.AbsolutePosition + 1) & ". Kayıt"
recClone.Close
Exit_Form_Current:
Exit Function
Err_Form_Current:
If Err = 3021 Then
frm.OncekiKayit.Enabled = True
frm.IlkKayit.Enabled = True
frm.SonrakiKayit.Enabled = False
frm.SonKayit.Enabled = False
Resume Exit_Form_Current
Else
MsgBox Err.Description
Resume Exit_Form_Current
End If
End Function
Fmalzemetur isimli formun geçerli olduğunda olayındaki kodun tamamını silip yerine
Call Test(Me.Name, "KayitAlani")
Şeklinde kod ekleyin.
Önceki kod modül üzerinden çalışacak,
bu kodu benzer olan frmmalzemeadi formunda da kullanabilirsiniz, ancak farklı formda buton isimlerinin aynı olması gerekli
diğer DoCmd.GoToRecord , , acFirst şeklindeki kodlar zaten yerleşik işlev olarak kullanılıyor.
Uygulamanızdaki bu kadar az sayıda form ve tablo olmasına rağmen boyutunun 2Mbden fazla olmasının sebebi kodlar değil.