Skip to main content

AccessTr.neT


Tüm Kayıtları Kontrol Edip Düzeltme

Tüm Kayıtları Kontrol Edip Düzeltme

#7
(08/02/2017, 00:52)hknct yazdı: 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.

Merhaba, benim düzenlediğim kodlar, önceki örneğinizdeki "bitimtarih" metin kutusunun güncelleştirme sonrasında olayına yazılı kodlara göre düzenlenmişti.

Son örneğinizde bu kod yapısını değiştirmiş, mevzuya "DEVİR" olayını eklemişsiniz.

Kod bu yüzden çalışmıyor olabilir.

Butonun tıklandığında olayındaki kodu aşağıdaki ile değiştirerek deneyiniz.

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 rs!brmarsvsklmsure = "SÜRESİZ" Or rs!brmarsvsklmsure = "DEVİR" Then
               GeciciMetin35 = "0"
           Else
               GeciciMetin35 = Abs(rs!brmarsvdvryil) + Abs(rs!brmarsvsklmsure)
           End If

           If rs!brmarsvsklmsure = "SÜRESİZ" Or rs!brmarsvsklmsure = "DEVİR" Then
               GeciciMetin37 = "0"
           Else
               GeciciMetin37 = Abs(rs!brmarsvdvryil) + Abs(rs!krmarsvsklmsure)
           End If
       
       
 
           If Abs(rs!brmarsvdvryil) > 0 And rs!brmarsvsklmsure = "SÜRESİZ" Then
               rs!notlar = "İmha Edilemez"
           ElseIf Abs(rs!brmarsvdvryil) > 0 And rs!brmarsvsklmsure = "DEVİR" Then
               rs!notlar = "Devir Edildi."
           ElseIf Abs(rs!brmarsvdvryil) > 0 And rs!brmarsvsklmsure = "SÜRESİZ" Then
               rs!notlar = "İmha Edilemez"
           ElseIf Format(Now(), "yyyy") >= Abs(rs!brmarsvdvryil) And Format(Now(), "yyyy") <= Val(GeciciMetin35) Then
               rs!notlar = "Birim Arşivinde Saklanacak"
           ElseIf Format(Now(), "yyyy") >= Val(GeciciMetin35) And Format(Now(), "yyyy") <= Val(GeciciMetin37) Then
               rs!notlar = "Kurum Arşivinde Saklanacak"
           ElseIf rs!brmarsvsklmsure = "SÜRESİZ" And rs!krmarsvsklmsure = "SÜRESİZ" Then
               rs!notlar = "İmha Edilemez"
           Else
               rs!notlar = "İmha Edilecek"
           End If
       
       

       rs.Update

       rs.MoveNext
   Loop
End If



rs.Close
Set rs = Nothing

MsgBox ("işlem tamamlandı")
Cevapla
#8
(08/02/2017, 03:12)ozanakkaya yazdı:
(08/02/2017, 00:52)hknct yazdı: 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.

Merhaba, benim düzenlediğim kodlar, önceki örneğinizdeki "bitimtarih" metin kutusunun güncelleştirme sonrasında olayına yazılı kodlara göre düzenlenmişti.

Son örneğinizde bu kod yapısını değiştirmiş, mevzuya "DEVİR" olayını eklemişsiniz.

Kod bu yüzden çalışmıyor olabilir.

Butonun tıklandığında olayındaki kodu aşağıdaki ile değiştirerek deneyiniz.

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 rs!brmarsvsklmsure = "SÜRESİZ" Or rs!brmarsvsklmsure = "DEVİR" Then
               GeciciMetin35 = "0"
           Else
               GeciciMetin35 = Abs(rs!brmarsvdvryil) + Abs(rs!brmarsvsklmsure)
           End If

           If rs!brmarsvsklmsure = "SÜRESİZ" Or rs!brmarsvsklmsure = "DEVİR" Then
               GeciciMetin37 = "0"
           Else
               GeciciMetin37 = Abs(rs!brmarsvdvryil) + Abs(rs!krmarsvsklmsure)
           End If
       
       
 
           If Abs(rs!brmarsvdvryil) > 0 And rs!brmarsvsklmsure = "SÜRESİZ" Then
               rs!notlar = "İmha Edilemez"
           ElseIf Abs(rs!brmarsvdvryil) > 0 And rs!brmarsvsklmsure = "DEVİR" Then
               rs!notlar = "Devir Edildi."
           ElseIf Abs(rs!brmarsvdvryil) > 0 And rs!brmarsvsklmsure = "SÜRESİZ" Then
               rs!notlar = "İmha Edilemez"
           ElseIf Format(Now(), "yyyy") >= Abs(rs!brmarsvdvryil) And Format(Now(), "yyyy") <= Val(GeciciMetin35) Then
               rs!notlar = "Birim Arşivinde Saklanacak"
           ElseIf Format(Now(), "yyyy") >= Val(GeciciMetin35) And Format(Now(), "yyyy") <= Val(GeciciMetin37) Then
               rs!notlar = "Kurum Arşivinde Saklanacak"
           ElseIf rs!brmarsvsklmsure = "SÜRESİZ" And rs!krmarsvsklmsure = "SÜRESİZ" Then
               rs!notlar = "İmha Edilemez"
           Else
               rs!notlar = "İmha Edilecek"
           End If
       
       

       rs.Update

       rs.MoveNext
   Loop
End If



rs.Close
Set rs = Nothing

MsgBox ("işlem tamamlandı")

dediğiniz gibi devir kısmını başkabir yedek üzerinde denedim sıkıntı çıkmadı. daha sonra kayıtları 50 ye kadar düşürdüm. ondan sonra hata vermeye başladı. orjinalinde de aynı şekilde hata verdi. o nedenle  tekrar hata veriyor diye dönüş yaptım.  şu anda sorunum düzeldi. elinize sağlık
Cevapla
#9
(06/02/2017, 04:06)ozanakkaya yazdı: 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 ozanakkaya, yukarıdaki kodda hata denetimi olayı var. burada ki hata denetiminde hata bulamadığı zaman 
Kod:
MsgBox (rs!listeno & " numaralı kayıtta boş olmaması gereken veri var kontrol ediniz.")
burada hata veriyor. hata vermeden bu kısımın aktif olarak çalışması için nasıl bir yol izlemeliyim.

Ekledim
.rar tumverileritarama.rar (Dosya Boyutu: 351,9 KB | İndirme Sayısı: 6)
Son Düzenleme: 09/02/2017, 16:34, Düzenleyen: hknct.
Cevapla
#10
Merhaba, buton tıklandığında bahsettiğiniz hatayı veren örnek uygulamanızı ekleyiniz.
Cevapla
#11
Merhaba, örnek uygulamanızı önceki mesajınızı düzenlemek yerine yeni mesaj olarak eklerseniz örneğinizi eklediğinizi anlayabiliriz

Butonun tıklandığında olayındaki kodları aşağıdaki ile değiştirerek deneyiniz.

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 rs!brmarsvsklmsure = "SÜRESİZ" Or rs!brmarsvsklmsure = "DEVİR" Or rs!brmarsvsklmsure = "BİRLESTİ" Then
               GeciciMetin35 = "0"
           Else
               GeciciMetin35 = Abs(rs!brmarsvdvryil) + Abs(rs!brmarsvsklmsure)
           End If

           If rs!brmarsvsklmsure = "SÜRESİZ" Or rs!brmarsvsklmsure = "DEVİR" Or rs!brmarsvsklmsure = "BİRLESTİ" Then
               GeciciMetin37 = "0"
           Else
               GeciciMetin37 = Abs(rs!brmarsvdvryil) + Abs(rs!krmarsvsklmsure)
           End If
       
           If Abs(rs!brmarsvdvryil) > 0 And rs!brmarsvsklmsure = "SÜRESİZ" Then
               rs!notlar = "İmha Edilemez"
           ElseIf Abs(rs!brmarsvdvryil) > 0 And rs!brmarsvsklmsure = "DEVİR" Then
               rs!notlar = "Devir Edildi."
           ElseIf Abs(rs!brmarsvdvryil) > 0 And rs!brmarsvsklmsure = "SÜRESİZ" Then
               rs!notlar = "İmha Edilemez"
           ElseIf Abs(rs!brmarsvdvryil) > 0 And rs!brmarsvsklmsure = "BİRLESTİ" Then
             rs!notlar = "Birleştirildi."
         
           ElseIf Format(Now(), "yyyy") >= Abs(rs!brmarsvdvryil) And Format(Now(), "yyyy") <= Val(GeciciMetin35) Then
               rs!notlar = "Birim Arşivinde Saklanacak"
           ElseIf Format(Now(), "yyyy") >= Val(GeciciMetin35) And Format(Now(), "yyyy") <= Val(GeciciMetin37) Then
               rs!notlar = "Kurum Arşivinde Saklanacak"
           ElseIf rs!brmarsvsklmsure = "SÜRESİZ" And rs!krmarsvsklmsure = "SÜRESİZ" Then
               rs!notlar = "İmha Edilemez"
           Else
               rs!notlar = "İmha Edilecek"
           End If
       
       

       rs.Update
       
       GeciciSiraNo = rs!listeno

       rs.MoveNext
   Loop
End If

Me.notlar.Requery


rs.Close
Set rs = Nothing

MsgBox ("işlem tamamlandı")

Cikis:
Exit Sub

Hata:
MsgBox (GeciciSiraNo & " numaralı kayıtta boş olmaması gereken veri var kontrol ediniz.")
Dim rsa As Object
Set rsa = Me.Recordset.Clone
rsa.FindFirst "[listeno] = " & str(Nz(GeciciSiraNo, 0))
If Not rsa.EOF Then Me.Bookmark = rsa.Bookmark
Resume Cikis
End Sub
Cevapla
#12
(09/02/2017, 18:52)ozanakkaya yazdı: Merhaba, örnek uygulamanızı önceki mesajınızı düzenlemek yerine yeni mesaj olarak eklerseniz örneğinizi eklediğinizi anlayabiliriz

Butonun tıklandığında olayındaki kodları aşağıdaki ile değiştirerek deneyiniz.

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 rs!brmarsvsklmsure = "SÜRESİZ" Or rs!brmarsvsklmsure = "DEVİR" Or rs!brmarsvsklmsure = "BİRLESTİ" Then
               GeciciMetin35 = "0"
           Else
               GeciciMetin35 = Abs(rs!brmarsvdvryil) + Abs(rs!brmarsvsklmsure)
           End If

           If rs!brmarsvsklmsure = "SÜRESİZ" Or rs!brmarsvsklmsure = "DEVİR" Or rs!brmarsvsklmsure = "BİRLESTİ" Then
               GeciciMetin37 = "0"
           Else
               GeciciMetin37 = Abs(rs!brmarsvdvryil) + Abs(rs!krmarsvsklmsure)
           End If
       
           If Abs(rs!brmarsvdvryil) > 0 And rs!brmarsvsklmsure = "SÜRESİZ" Then
               rs!notlar = "İmha Edilemez"
           ElseIf Abs(rs!brmarsvdvryil) > 0 And rs!brmarsvsklmsure = "DEVİR" Then
               rs!notlar = "Devir Edildi."
           ElseIf Abs(rs!brmarsvdvryil) > 0 And rs!brmarsvsklmsure = "SÜRESİZ" Then
               rs!notlar = "İmha Edilemez"
           ElseIf Abs(rs!brmarsvdvryil) > 0 And rs!brmarsvsklmsure = "BİRLESTİ" Then
             rs!notlar = "Birleştirildi."
         
           ElseIf Format(Now(), "yyyy") >= Abs(rs!brmarsvdvryil) And Format(Now(), "yyyy") <= Val(GeciciMetin35) Then
               rs!notlar = "Birim Arşivinde Saklanacak"
           ElseIf Format(Now(), "yyyy") >= Val(GeciciMetin35) And Format(Now(), "yyyy") <= Val(GeciciMetin37) Then
               rs!notlar = "Kurum Arşivinde Saklanacak"
           ElseIf rs!brmarsvsklmsure = "SÜRESİZ" And rs!krmarsvsklmsure = "SÜRESİZ" Then
               rs!notlar = "İmha Edilemez"
           Else
               rs!notlar = "İmha Edilecek"
           End If
       
       

       rs.Update
       
       GeciciSiraNo = rs!listeno

       rs.MoveNext
   Loop
End If

Me.notlar.Requery


rs.Close
Set rs = Nothing

MsgBox ("işlem tamamlandı")

Cikis:
Exit Sub

Hata:
MsgBox (GeciciSiraNo & " numaralı kayıtta boş olmaması gereken veri var kontrol ediniz.")
Dim rsa As Object
Set rsa = Me.Recordset.Clone
rsa.FindFirst "[listeno] = " & str(Nz(GeciciSiraNo, 0))
If Not rsa.EOF Then Me.Bookmark = rsa.Bookmark
Resume Cikis
End Sub
 
teşekkürler kod hata vermiyor. çözüm için teşekkürler. ancak çalışırken hatalı kayıtı 1 eksik gösteriyor..
Son Düzenleme: 09/02/2017, 22:42, Düzenleyen: hknct.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task