AccessTr.neT

Tam Versiyon: Kayıt İşleminde Altarnatif Çözümler
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2 3
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
aşağıdaki kodu dener misiniz?
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
son eklediğim örnekte iki buton var admin butonu 
Me.AllowEdits = True
Me.AllowAdditions = True
ve user butonu
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
Me.AllowEdits = False
Me.AllowAdditions = False
Me.Refresh
kodları ile formu sadece okunur hale getirip depişiklik yapmak istenirse düzenle butonuna
Me.AllowEdits = True
Me.AllowAdditions = True
yazıp controlleri kullanıma açıp kaydet butonu ile tekrar 
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
İ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.
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
Sayfalar: 1 2 3