If IsNull(klasor1) Or Me.klasor1 = "" Then ve If IsNull(klasoradi1) Or Me.klasoradi1 = "" Then todları ile standart no girilmeden klasör adının girilmemesini amaçladığınızı düşünerek bu kodu kaldırdım, yerine KlasorAdiBosMu ve KlasorNoBosMu kodu ekledim, klasör no alanına veri girmeden klasör adına giderseniz uyarı veriyor. Ayrıca "Bu klasör numarası daha önce girilmiş" uyarısının kodlarını tek fonksiyonda topladım.
Sub KlasorAdiBosMu()
On Error Resume Next
Dim MetinNumarasi As Integer
MetinNumarasi = Right(Screen.ActiveControl.Name, 1) - 1
If IsNull(Controls("klasoradi" & (MetinNumarasi))) Then
MsgBox (MetinNumarasi & ". Satıra Klasör Adı Yazmadan Devam Edemezsiniz.")
Controls("klasoradi" & (MetinNumarasi)).SetFocus
End If
End Sub
Sub KlasorNoBosmu()
On Error Resume Next
Dim MetinNumarasi As Integer
MetinNumarasi = Right(Screen.ActiveControl.Name, 1)
If IsNull(Controls("klasor" & (MetinNumarasi))) Then
MsgBox (MetinNumarasi & ". Satıra Klasör Numarası Yazınız")
Controls("klasor" & (MetinNumarasi)).SetFocus
End If
End Sub
Sub OncedenGirilmisMi()
On Error Resume Next
Dim KontrolNo, VarMi As Integer
Dim KlasorNumaramiz As String
For KontrolNo = 1 To 1
KlasorNumaramiz = Controls("klasor" & (KontrolNo))
VarMi = Dlookup ("[klasor_no]", "std_klasoru_tablosu", "[klasor_no]= '" & KlasorNumaramiz & "'")
If VarMi > 0 Then
MsgBox (KontrolNo & ". satırdaki " & Controls("klasor" & (KontrolNo)) & " verisi daha önce girilmiş, kontrol ediniz.")
Controls("klasor" & (Right(Screen.ActiveControl.Name, 1))).SetFocus
End If
Next KontrolNo
End Sub
Bu şekilde doğru veri girilmedikçe kaydet butonunu tıklayamıyorsunuz. Kaydet butonunun kodlarınız aşağıdaki ile değiştirdim.
DoCmd.SetWarnings False
For Sayi = 1 To 5
klasornumaramiz = Controls("klasor" & (Sayi))
klasoradimiz = Controls("klasoradi" & (Sayi))
If Not IsNull(Controls("klasor" & (Sayi))) And Not IsNull(Controls("klasoradi" & (Sayi))) Then
DoCmd.RunSQL "INSERT INTO std_klasoru_tablosu ([klasor_no],[std_klasoru]) VALUES ('" & klasornumaramiz & "','" & klasoradimiz & "')"
End If
Next Sayi
DoCmd.SetWarnings True
sil2
Önceden kalma kontrol kodları duruyor, ancak metin kutularının isimlerini değiştirdiğim için aktif değiller,