listemde kayıtlıbulunan kayıtları tek tek kontrol edilmesini istiyorum. daha önce ilk kayıt sırasında yapılan formülü uyarlamaya çalıştım ancak her defasında farklı bir hata alıyorum..
tüm kayıtları kontrol ederek tliste tablosundaki "notlar" bölümündeki yazı değişecek şekilde düzenlemek istiyorum. daha önceden kayıt yaparken bu olayı yardımlarınız ile yapmıştım. bu formülü butona uygulamak isteyince farklı hatalar alıyorum bu konuda yardımcı olabilir misiniz?
Merhaba,
Forma "btn_tumukontrol" adında buton ekledim, tıklandığında olayında
Private Sub btn_tumukontrol_Click()
On Error GoTo hata
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT * FROM Tliste")
If Not (rs.EOF And rs.BOF) Then
rs.MoveFirst
Do Until rs.EOF = True
rs.Edit
If IsNull(rs!brmarsvdvryil) Then
GeciciDeviryil = 0
Else
GeciciDeviryil = rs!brmarsvdvryil
End If
If IsNull(rs!brmarsvsklmsure) Or rs!brmarsvsklmsure = "SÜRESİZ" Then
Gecicibrmarsvsklmsure = "0"
Else
Gecicibrmarsvsklmsure = rs!brmarsvsklmsure
End If
Exit Sub
If Gecicibrmarsvsklmsure = "SÜRESİZ" Then
GeciciMetin35 = "0"
Else
GeciciMetin35 = Abs(GeciciDeviryil) + Abs(Gecicibrmarsvsklmsure)
End If
If Gecicibrmarsvsklmsure = "SÜRESİZ" Then
GeciciMetin37 = "0"
Else
GeciciMetin37 = Abs(GeciciDeviryil) + Abs(rs!krmarsvsklmsure)
End If
rs!notlar = IIf(Abs(GeciciDeviryil) > 0 And Gecicibrmarsvsklmsure = "SÜRESİZ", "İmha Edilemez", IIf(Format(Now(), "yyyy") >= Abs(GeciciDeviryil) And Format(Now(), "yyyy") <= Val(GeciciMetin35), "Birim Arşivinde Saklanacak", IIf(Format(Now(), "yyyy") >= Val(GeciciMetin35) And Format(Now(), "yyyy") <= Val(GeciciMetin37), "Kurum Arşivinde Saklanacak", IIf(Gecicibrmarsvsklmsure = "SÜRESİZ" And rs!krmarsvsklmsure = "SÜRESİZ", "İmha Edilemez", "İmha Edilecek"))))
rs.Update
rs.MoveNext
Loop
End If
rs.Close
Set rs = Nothing
MsgBox ("işlem tamamlandı")
hata:
MsgBox (rs!listeno & " numaralı kayıtta boş olmaması gereken veri var kontrol ediniz.")
End Sub
Kodu yazılı,
Formdaki Metin35 ve Metin37 için geçici tanımlama yaptım,
Ancak,
brmarsvsklmsure, brmarsvdvryil alanlarının dolu olması gerektiği, bazı kayıtlarda boş olduğundan dolayı üstteki kodda bu alanlar boş ise 0 olarak sayması için kod eklendi.
Buton tıklandıktan sonra, Karışık 5-10 kaydı inceleyin, kodun doğru çalışıp çalışmadığını test edin.
sayın ozankaya;
forrmülü uyguladım. ancak ilk 10 kayıta kesinleşme tarihini girdim. ancak 'notlar ' bölümünü özellikle yazdırmadım ki kod çalışıyor mu diye ancak herhangi bir işlem yapmadı. kodu eklerken mi bir hata yaptım. kontrol ettiğimde farklılık görünmüyor.
bu konuda yardımcı olabilir misiniz?
Butonun tıklandığında olayındaki kodu aşağıdaki ile değiştirerek deneyiniz.
On Error GoTo hata
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT * FROM Tliste")
If Not (rs.EOF And rs.BOF) Then
rs.MoveFirst
Do Until rs.EOF = True
rs.Edit
If IsNull(rs!brmarsvdvryil) Then
GeciciDeviryil = 0
Else
GeciciDeviryil = rs!brmarsvdvryil
End If
If IsNull(rs!brmarsvsklmsure) Or rs!brmarsvsklmsure = "SÜRESİZ" Then
Gecicibrmarsvsklmsure = "0"
Else
Gecicibrmarsvsklmsure = rs!brmarsvsklmsure
End If
If Gecicibrmarsvsklmsure = "SÜRESİZ" Then
GeciciMetin35 = "0"
Else
GeciciMetin35 = Abs(GeciciDeviryil) + Abs(Gecicibrmarsvsklmsure)
End If
If rs!krmarsvsklmsure = "SÜRESİZ" Then
Gecicikrmarsvsklmsure = "0"
Else
Gecicikrmarsvsklmsure = rs!krmarsvsklmsure
End If
If Gecicibrmarsvsklmsure = "SÜRESİZ" Then
GeciciMetin37 = "0"
Else
GeciciMetin37 = Abs(GeciciDeviryil) + Abs(Gecicikrmarsvsklmsure)
End If
rs!notlar = IIf(Abs(GeciciDeviryil) > 0 And rs!brmarsvsklmsure = "SÜRESİZ", "İmha Edilemez", IIf(Format(Now(), "yyyy") >= Abs(GeciciDeviryil) And Format(Now(), "yyyy") <= Val(GeciciMetin35), "Birim Arşivinde Saklanacak", IIf(Format(Now(), "yyyy") >= Val(GeciciMetin35) And Format(Now(), "yyyy") <= Val(GeciciMetin37), "Kurum Arşivinde Saklanacak", IIf(Gecicibrmarsvsklmsure = "SÜRESİZ" And Gecicikrmarsvsklmsure = "SÜRESİZ", "İmha Edilemez", "İmha Edilecek"))))
rs.Update
rs.MoveNext
Loop
End If
rs.Close
Set rs = Nothing
MsgBox ("işlem tamamlandı")
hata:
MsgBox (rs!listeno & " numaralı kayıtta boş olmaması gereken veri var kontrol ediniz.")
Dim rsa As Object
Set rsa = Me.Recordset.Clone
rsa.FindFirst "[listeno] = " & str(Nz(rs!listeno, 0))
If Not rsa.EOF Then Me.Bookmark = rsa.Bookmark
(07/02/2017, 22:28)ozanakkaya yazdı: [ -> ]Butonun tıklandığında olayındaki kodu aşağıdaki ile değiştirerek deneyiniz.
On Error GoTo hata
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT * FROM Tliste")
If Not (rs.EOF And rs.BOF) Then
rs.MoveFirst
Do Until rs.EOF = True
rs.Edit
If IsNull(rs!brmarsvdvryil) Then
GeciciDeviryil = 0
Else
GeciciDeviryil = rs!brmarsvdvryil
End If
If IsNull(rs!brmarsvsklmsure) Or rs!brmarsvsklmsure = "SÜRESİZ" Then
Gecicibrmarsvsklmsure = "0"
Else
Gecicibrmarsvsklmsure = rs!brmarsvsklmsure
End If
If Gecicibrmarsvsklmsure = "SÜRESİZ" Then
GeciciMetin35 = "0"
Else
GeciciMetin35 = Abs(GeciciDeviryil) + Abs(Gecicibrmarsvsklmsure)
End If
If rs!krmarsvsklmsure = "SÜRESİZ" Then
Gecicikrmarsvsklmsure = "0"
Else
Gecicikrmarsvsklmsure = rs!krmarsvsklmsure
End If
If Gecicibrmarsvsklmsure = "SÜRESİZ" Then
GeciciMetin37 = "0"
Else
GeciciMetin37 = Abs(GeciciDeviryil) + Abs(Gecicikrmarsvsklmsure)
End If
rs!notlar = IIf(Abs(GeciciDeviryil) > 0 And rs!brmarsvsklmsure = "SÜRESİZ", "İmha Edilemez", IIf(Format(Now(), "yyyy") >= Abs(GeciciDeviryil) And Format(Now(), "yyyy") <= Val(GeciciMetin35), "Birim Arşivinde Saklanacak", IIf(Format(Now(), "yyyy") >= Val(GeciciMetin35) And Format(Now(), "yyyy") <= Val(GeciciMetin37), "Kurum Arşivinde Saklanacak", IIf(Gecicibrmarsvsklmsure = "SÜRESİZ" And Gecicikrmarsvsklmsure = "SÜRESİZ", "İmha Edilemez", "İmha Edilecek"))))
rs.Update
rs.MoveNext
Loop
End If
rs.Close
Set rs = Nothing
MsgBox ("işlem tamamlandı")
hata:
MsgBox (rs!listeno & " numaralı kayıtta boş olmaması gereken veri var kontrol ediniz.")
Dim rsa As Object
Set rsa = Me.Recordset.Clone
rsa.FindFirst "[listeno] = " & str(Nz(rs!listeno, 0))
If Not rsa.EOF Then Me.Bookmark = rsa.Bookmark
sayın ozanakkaya, kayıtları azalttım. tabloda elle tarihleri değiştirdim ki notlar bölümündeki yazı değişiyor mu diye, değiştirmedi. aynı şekilde önceki kayıt kalıyor. benim için önemli olan yer burası çünkü burda yazan yazıya göre raporlama yapıyorum. işlem tamamlandı. diye uyarı veriyor. sonrasında da msgbox kısmında hata verdi.