Skip to main content

AccessTr.neT


Kayıt İşleminde Altarnatif Çözümler

Kayıt İşleminde Altarnatif Çözümler

Çözüldü #1
iyi geceler
tablo ilişkili formlarda kayıt işleminde beni rahatsız eden bir şeyler var 
sanki kontrol bizde değilmiş gibi
yeni kayıt diyorum kutular temizleniyor
ilk karakteri yazınca BeforeInsert çalışıyor
kutulara verileri giriyorum
bütün kutular bitiyor ve öylece bekliyorum
kayıt işlemi bitti ama AfterInsert için bir şeylere tıklayıp herhangi bir olay gerçekleştirmem lazım
kaydettim biliyorum ama yinede sanki bir yerlere tıklayıp onay alsam sonra kaydetsem
bunun için bir butona tıklayıp mesaj ile vbNo olursa  undo ile kaydı geri alabilirim
evet ama tıklamasam yine kaydetmiş durumdayım
unload olayına  mesaj ile vbNo olursa  undo ile kaydı geri alabilirim 
yani kaydedecek ben bir şekilde geri alacağım ama bu beni çok fazla rahatsız ediyor
nasıl yapmak lazım bunu ilişkisiz formla yapmaya çaılştım ama bir çok olay bu durumda çalışmıyor
yok mu bir yolu
.rar new.rar (Dosya Boyutu: 59,05 KB | İndirme Sayısı: 3)
@benbendedeilem
Son Düzenleme: 23/03/2020, 10:03, Düzenleyen: accessman.
Cevapla
#2
https://accesstr.net/konu-kaydet-butonu-hk.html
Bu konu ilginizi çekebilir.
Cevapla
#3
aşağıdaki kodu dener misiniz?
Visual Basic Code
Private Sub Form_BeforeUpdate(Cancel As Integer)
   Dim strMsj As String
   Dim intOnay As Integer
 
   strMsj = "Değişiklikler kaydedilsin m??" & Chr(10)
   strMsj = strMsj & "Kaydetmek için EVET'e iptal etmek için HAYIR'a basınız."
 
   intOnay = MsgBox(strMsj, vbQuestion + vbYesNo, "Kaydedilsin mi?")
    
   If intOnay = vbNo Then
    
      DoCmd.RunCommand acCmdUndo
      Cancel = True
   End If
End Sub
.rar Yeni_Degisiklik_Onay_hy.rar (Dosya Boyutu: 57,25 KB | İndirme Sayısı: 2)
Cevapla
#4
son eklediğim örnekte iki buton var admin butonu 
Visual Basic Code
Me.AllowEdits = True
Me.AllowAdditions = True
ve user butonu
Visual Basic Code
Me.AllowEdits = False
Me.AllowAdditions = False
Me.Refresh
gördüğünüz gibi formda admin yetkisi için  Me.Refresh gerekmiyor iken user olmak için Me.Refresh gerekiyor
gerçekten böyle mi yoksa gözden kaçırdığım bir şeyler mi var

her current olayında çalışacak
Visual Basic Code
Me.AllowEdits = False
Me.AllowAdditions = False
Me.Refresh
kodları ile formu sadece okunur hale getirip depişiklik yapmak istenirse düzenle butonuna
Visual Basic Code
Me.AllowEdits = True
Me.AllowAdditions = True
yazıp controlleri kullanıma açıp kaydet butonu ile tekrar 
Visual Basic Code
Me.AllowEdits = False
Me.AllowAdditions = False
Me.Refresh
controlleri kilitleyip kullanıcının rastgele bilgileri değiştirmesini önlemeyi düşünüyorum 
sizce nasıl olur daha farklı şekilde nasıl yapabillirim
.rar new.rar (Dosya Boyutu: 60,81 KB | İndirme Sayısı: 0)
Son Düzenleme: 23/03/2020, 07:41, Düzenleyen: accessman.
Cevapla
#5
İlişkili formda bende olsam dediğiniz gibi pasif yapardım.Yada  if me.dirty=true gibi birşey vardı forma değişiklik olmuş diye onunla kontrol ettirirdim.
Kontrol etmek için mesela kaydetmek istenmezse hayır dedinmi docmd.undo ile herşey geri alınır.Bu kadar basit olay.Fazla fantaziye gerek yok bence abey.
Cevapla
#6
access defter gibi bir şey kullanıcıya kalemi ve defteri veriyoruz
yazdıktan sonra hoşumuza gitmezse sildirerek eski haline getiriyoruz 
yani illa bir kere yazıyor farklı yöntemlerle Undo çalıştırıyoruz 
belki hiç bir şekilde Undo kısmından kaçamayacak ama yine de beni rahatsız ediyor
düşünün nüleer santralinde milimetrik ayarların yapıldığı bir programda bu riski göze alır mısınız
bence yazamasın ama bu kullanıcı yetkisinden öte bir şey yani kimse yazamasın
mutlaka düzenle diye bir butona ve sonra kaydet diye bir butona basmak zorunda olsun
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da