Skip to main content

AccessTr.neT


formda sadece kaydet butonunun kaydetmesi

formda sadece kaydet butonunun kaydetmesi

Çözüldü #1
merhaba.

satışlar formunda,
listedeki telefon çift tıklanıp satış yapılmak istendiğinde ve kutucuklar eksiksiz doldurulduğunda;

kaydet butonu alışlar tablosunda ilgili kaydı satıldı olarak işaretliyor ve satışlar tablosuna ekliyor. düzgün çalışıyor. fakat;

tüm kutucuklar doldurulup hata ile tab tuşuna bastım ve satıştan vazgeçtim. şöyle bir durum oluştu;

ilgili kayıt alışlar tablosunda satıldı işaretlenmedi ve satışlar tablosuna yeni kayıt açtı. bunun sonucu olarak satışlar formunda ilgili kayıt yine görünmekte.
(çözüm için, satışlar formunun özelliklerinde diğer / devir: geçerli kayıt yaptım, fakat sonuç yine aynı oldu.)

satış için çift tıklanınca kutular dolu veya boş ise form kapatılmak istendiğinde vazgeçmek istiyor musunuz gibi bir uyarı ile beraber satışlar formunda satış işlemini mutlak olarak kaydet butonuna bağlamak mümkün mü?

kod bilgim malesef yok, bilgili arkadaşlar bu konuda yapabileceğim bir şey varsa ve yönlendirirlerse memnun olurum.

teşekkür ederim.
.rar telefon.rar (Dosya Boyutu: 75,33 KB | İndirme Sayısı: 23)
Son Düzenleme: 22/01/2014, 17:17, Düzenleyen: miCRoBe`.
Cevapla
Çözüldü #2
Alışlar formundaki kapat butonundaki kodları satışlar formuna uygulayabilirsiniz.
Cevapla
Çözüldü #3
haklısınız ozan bey, deneme yanılma yapıyorum fakat bir sonuca ulaşamadım. biraz fazla değiştirmek ve silmek gerekiyor sanırım. işin içinden çıkamadım doğrusu.

Private Sub Komut62_Click()
If IsNull(Me.alistarihi) Or IsNull(imeino) Or IsNull(markaadi) Or IsNull(modeladi) Or IsNull(tedarikturu) Or IsNull(alisfiyati) Or IsNull(satisilkfiyati) Then

If MsgBox("Formda Boş Alanlar Mevcut. Kaydedilmeden Kapatılsın mı?", vbInformation + vbYesNo, "Kapatılıyor...") = vbYes Then
Me.Undo
DoCmd.SetWarnings False
DoCmd.RunSQL ("DELETE telefonid FROM imeiler WHERE (((telefonid) Is Null));")
If Len(Gmarka) > 0 Then
DoCmd.RunSQL "DELETE markaadi FROM markalar WHERE (((markaadi)=[Formlar]![alislar]![GMarka]));"
End If
If Len(GModel) > 0 Then
DoCmd.RunSQL "DELETE modeladi FROM modeller WHERE (((modeladi)=[Formlar]![alislar]![GModel]));"
End If
DoCmd.SetWarnings True
DoCmd.Close
End If

Else

mesaj = MsgBox("Form Kapatılmadan Önce Girilen Veriler Kaydedilsin mi?", vbCritical + vbYesNoCancel, "Form Kapanıyor...")

Select Case mesaj
Case 6

MarkaModelGuncelle
DoCmd.Close
Case 7

Me.Undo
DoCmd.SetWarnings False
DoCmd.RunSQL ("DELETE telefonid FROM imeiler WHERE (((telefonid) Is Null));")
If Len(Gmarka) > 0 Then
DoCmd.RunSQL "DELETE markaadi FROM markalar WHERE (((markaadi)=[Formlar]![alislar]![GMarka]));"
End If
If Len(GModel) > 0 Then
DoCmd.RunSQL "DELETE modeladi FROM modeller WHERE (((modeladi)=[Formlar]![alislar]![GModel]));"
End If
DoCmd.SetWarnings True
DoCmd.Close
Case 2

Exit Sub
End Select

End If
End Sub
Cevapla
Çözüldü #4
If MsgBox("Form Kapatılsın mı?", vbCritical + vbYesNo, "Form Kapanıyor...") = vbYes Then
DoCmd.Close
Else
Exit Sub
End If
Cevapla
Çözüldü #5
ozan bey tabi kod kapatıyor fakat kutular dolu iken;
form kapatıldığında veya tab tuşuna basılınca yine kayıt yapıyor..
sadece kaydet düğmesi ile kayıt imkanı vermeliyim.
Cevapla
Çözüldü #6
Accessteki ilişkili tablo sisteminde böyle olması gerekiyor. Eğer vb gibi olsun derseniz o zaman ilişkili form ve metin kutularını kullanmadan sadece kod kullanarak kayıt yaptırmalısınız. Bu durumda her bir buton için, kaydet, sil, yeni kayıt, sonraki önceki kayıt, kayıt arama vs. gibi tüm tuşlara kod yazmanız gerekir.

Bir diğer alternatif de formun kayıt kaynağını değiştirme yoluyla yapılabilir. Kaydet butonuna basıldığında tablo bağlantısı kurulur ve daha sonra kayıt terkedilirse, dediğiniz gibi olabilir. Bunu denemedim, şimdi aklıma geldi ama bu da bir alternatif olabilir. Bunun bir diğer biçimini kullanıyoruz zaten. Onda veriler bir geçici tabloya kaydedilir, kayıt butonu basıldığında ana tabloya aktarılır. Geçici tablo her kayıtta temizlenir.

Bir üçüncü alternatif de kaydet butonuna basılmadan çıkılan her kaydın silinmesidir. Bunda da kayıt aslında yapılır, ama kaydetme butonuna basılmadan çıkıldığında "silme" kodları çalıştırılarak silinir. Bunda sadece otomatik sayı varsa o artar, başka bir dezavantajı yoktur.
İnadına, ille de Accesstr.net...
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task