Skip to main content

AccessTr.neT


On Error - Hata denetimi hakkında.

On Error - Hata denetimi hakkında.

#1
Merhabalar,

Form silme butona şu şekil bir silme işlemi yaptırıyorum.
Public Sub sil_taslakici()
Dim rS As New ADODB.Recordset
rS.Open "T_RECETETASLAKMALIYET", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rS.Find "[ReceteTaslakNo]=" & Me.taslakno
rS.Delete
rS.Close: Set rS = Nothing
End Sub
Public Sub sil_taslak()
Dim rS As New ADODB.Recordset
rS.Open "T_RECETETASLAK", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rS.Find "[ReceteTaslakNo]=" & Me.taslakno
rS.Delete
rS.Close: Set rS = Nothing
End Sub

Önce sil_taslakici silme işlemi yaptırıyorum. Daha sonra sil_taslak silme işlemini yaptırıyorum.
Fakat taslak icinde veri olmayınca hali ile silme işlemi gerçekleştirilemediğinden hata vermekte.
Bu durumda nasıl bir hata denetimi yapmalıyım. Yani sil_taslakici çalışmasa bile veri olmasa bile yani silmese bile devam edip sil_taslak işlemini gerçekleştirmesini istiyorum. Nasıl yapabilirim acaba?
Alıntı:Her şey bir fikirle başlar.
Cevapla
#2
Merhaba,

rS.Find "[ReceteTaslakNo]=" & Me.taslakno
kodu ile kaydı bulduktan sonra


if rs.recordcount <> 0 then
rs.Delete
end if

şeklinde kod düzenlemesi yapabilirsin.
Cevapla
#3
(17/12/2016, 00:58)ozanakkaya yazdı: Merhaba,

rS.Find "[ReceteTaslakNo]=" & Me.taslakno
kodu ile kaydı bulduktan sonra


if rs.recordcount <> 0 then
rs.Delete
end if

şeklinde kod düzenlemesi yapabilirsin.

Hocam olmadı. Şu şekilde düzenledim hatalı mı acaba?
Public Sub sil_taslakici()
Dim rS As New ADODB.Recordset
rS.Open "T_RECETETASLAKMALIYET", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rS.Find "[ReceteTaslakNo]=" & Me.taslakno
If rS.RecordCount <> 0 Then
rS.Delete
End If
rS.Delete
rS.Close: Set rS = Nothing
End Sub
Public Sub sil_taslak()
Dim rS As New ADODB.Recordset
rS.Open "T_RECETETASLAK", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rS.Find "[ReceteTaslakNo]=" & Me.taslakno
rS.Delete
rS.Close: Set rS = Nothing
End Sub
Sadece sil_taskaici ne dediğinizi uyguladım.
Alıntı:Her şey bir fikirle başlar.
Cevapla
#4
Merhaba,

sizin uyguladığınız kodda sorun yok. Sanırım find ile veri arama ile ilgili sıkıntı var. Daha önceden verdiğim
If rS.RecordCount <> 0 Then

kodunu aşağıdaki ile değiştirerek deneyiniz.

if rs.eof=false then
Cevapla
#5
Teşekkürler.

Sorun çözüldü.

-----
Tekrar kontrol ettiğimde aslında çözülmedi. Hata verme işlemi durdu evet ama bu seferde sadece bir satırı siliyor. 10 satır işlem olduğu zaman geri kalan 9 kayıt kalıyor.
Alıntı:Her şey bir fikirle başlar.
Son Düzenleme: 17/12/2016, 01:57, Düzenleyen: nightashes.
Cevapla
#6
Merhaba,

örnek uygulama eklemediğinizde kodu deneme imkanımız olmuyor ve yazılan cevaplar malesef farazi oluyor.

Kodu aşağıdaki ile değiştirerek deneyiniz.


Public Sub sil_taslakici()
Dim rS As New ADODB.Recordset
rS.Open "T_T_RECETETASLAKMALIYET", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

If rS.EOF Then
   Exit Sub
Else
   rS.MoveFirst
       Do Until rS.EOF
           If rS![ReceteTaslakNo] = Me.taslakno Then
               rS.Delete
           End If
           rS.MoveNext
       Loop
End If

rS.Close
Set rS = Nothing
end sub
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task