Skip to main content

AccessTr.neT


formda sadece kaydet butonunun kaydetmesi

formda sadece kaydet butonunun kaydetmesi

Çözüldü #19
Kodlarınızı inceleme vaktim yok ancak tahminim "bir formdan diğer form üzerindeki onay kutusunu işaretliyorsunuz". Böyle yapmak yerine Kaydetme işlemi yapılınca yani Kaydet butonuna basılınca diğer formdaki o kaydı tablosunda bulup alanı güncellemek daha sağlam bir yol olacaktır. İllaki sistemi bozmayalım diyorsanız iptal durumunda diğer formdaki onay kutusunun işaretini kaldırırsınız.

KONU DIŞI : Vaktim çok dar olduğundan geniş kodları inceleyemiyorum ne yazık ki. Ayrıca konuda çok sayıda mesaj var. İşte bu gibi durumlarda bu kadar mesajı kimse okumak istemez ve dosyaları indirip gelişimi takip edemez. Bundan dolayı her sorunuzu ayrı konu açıp 8-10 mesajda konuyu bitirmek en güzeli. Bu konuda belki baştan beri aynı soru üzerinde çalışılıyordur yanlış anlamayın. Hep dediğimiz her sorunuzu ayrı bir konuda sorun takip etmesi kolay olsun diyoruz kullanıcılara onun için iyi bir örnek oldu Img-grin
AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.
Cevapla
Çözüldü #20
anlıyorum, haklısınız.. evet sistemi bozmamak adına (epey bir zaman harcandı çünkü) biraz kod yardımı gerekli.
teşekkür ederim.
Cevapla
Çözüldü #21
Alıntı:ozan bey sizin daha önce yapmış olduğunuz alışlar formundaki kapatma butonundaki kodları kendimce düzenleyerek satışlar formuna uyarlamaya çalışıyorum.. fakat şu uyarıyı alıyorum:

eksik işleç... debug:

DoCmd.RunSQL "UPDATE alislar SET [Satildi] = -1 WHERE [imeiid]=" & Me.imeiid.Value & ";"

Kapat butonundaki bu kod alışlar formu için yazıldı. Satışlar formunda böyle bir işleme gerek olmadığı için bu kodu kullanmayacaksınız.

Sizin öncelikle hangi kodun ne için yazıldığını öğrenmeniz gerekiyor.
.rar telefon_sld.rar (Dosya Boyutu: 72,98 KB | İndirme Sayısı: 8)
Cevapla
Çözüldü #22

ilginize teşekkür ederim ozan bey ama sorun devam etmekte. siz yanlış anladınız sanırım sorunu.. gördüğüm kadarıyla sizin eklediğiniz kod sadece formu kapatıyor..

sorunu tekrar anlatayım;

tüm kutucuklar doldurulup hata ile tab tuşuna bastım veya tüm kutular dolu iken satıştan vazgeçtim. şöyle bir durum oluşuyor;
ilgili kayıt (satışı yapılmak istenen alış), alışlar tablosunda satıldı işaretlenmiyor ve satışlar tablosuna yeni kayıt açıyor. (satıldı görünüyor)
ama ilgili kayıt satışlar formunda satışlar listesinde yine görünmekte.. (satış işleminden vazgeçildiği halde)

evet, kodları tam olarak anlamıyorum. yarım yamalak anlıyorum bu da yeterli olmuyor.

sanırım yapılan işlemi geri alma ile alakalı bir kod kullanmak gerek, sanırım bu da "Me.Undo" olsa gerek ki bu kod tek başına yeterli midir ve ya hangi satıra yazılmalıdır bilmiyorum.

uzunca yazıp kafa karıştırmak istemem ama ancak böyle anlatabildim, teşekkürler.

If IsNull(Me.satistarihi) Or IsNull(satisfiyati) Or IsNull(musteribilgi) Then

If MsgBox("Formda Boş Alanlar Mevcut. Kaydedilmeden Kapatılsın mı?", vbInformation + vbYesNo, "Kapatılıyor...") = vbYes Then
Me.Undo
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

Me.satisfiyati.Enabled = False
Me.satistarihi.Enabled = False
Me.musteribilgi.Enabled = False
DoCmd.RunSQL "UPDATE alislar SET [Satildi] = -1 WHERE [imeiid]=" & Me.imeiid.Value & ";"
MsgBox "Satış Gerçekleşti..."
DoCmd.Close
Case 7

Me.Undo
DoCmd.Close
Case 2

Exit Sub
End Select

End If

sanırım bunun gibi bir kod olmalı ama tam olarak doğru çalışmadı, nasıl yapabilirim bunu?

teşekkürler.

If IsNull(Me.satistarihi) Or IsNull(satisfiyati) Or IsNull(musteribilgi) 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 satisid FROM satislar WHERE (((satisid) Is Null));")
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

Me.satisfiyati.Enabled = False
Me.satistarihi.Enabled = False
Me.musteribilgi.Enabled = False
DoCmd.RunSQL "UPDATE alislar SET [Satildi] = -1 WHERE [imeiid]=" & Me.imeiid.Value & ";"
MsgBox "Satış Gerçekleşti..."
DoCmd.Close
Case 7

Me.Undo
DoCmd.Close
Case 2

Exit Sub
End Select

End If

son olarak böyle düzenledim kodları. ve şu an sanırım kayıtlarda bir hata vermiyor (ileriki zamanlarda bu kodlar bana sorun yaşatır mı bilemiyorum)

kutular dolu iken form kapatıldığında, evet seçilince şöyle bir uyarı alıyorum:

[Resim: do.php?img=4136]

sonrasında da düzgün bir şekilde işlem kaydediliyor.
bunu uyarının görünmesinin sebebini anlayamadım. sanırım kodlar da eksiklik var.

forumda bilgili arkadaşlara rica ediyorum, bu uyarıyı nasıl önleyebilirim? bu kodlar doğru mu?
.rar telefon.rar (Dosya Boyutu: 84,17 KB | İndirme Sayısı: 11)
Cevapla
Çözüldü #23
 DoCmd.RunSQL "UPDATE alislar SET [Satildi] = -1 WHERE [imeiid]=" & Me.imeiid.Value & ";"

bu kodun üstüne
 DoCmd.SetWarnings False
altına da
 DoCmd.SetWarnings True
kodu ekleyiniz.


Formun kayıt kaynağını aşağıdaki ile değiştirirsen daha iyi olacak gibi.

SELECT satislar.*, alislar.Satildi FROM satislar INNER JOIN alislar ON satislar.alisid = alislar.alisid WHERE (((alislar.Satildi) Is Null));


Birde, kaydet butonunun tıklandığında olayındaki kodları aşağıdaki ile değiştir.

DoCmd.SetWarnings False
Dim strSQL, stfyt, msblg As String
If IsNull(Me.satisfiyati) Then stfyt = MsgBox("Satış Fiyatını Girmeden Kaydedemezsiniz!!!", 64, "Satış Fiyatını Girmeden Kayıt yapamazsınız"): Me.satisfiyati.SetFocus: Exit Sub
If IsNull(Me.musteribilgi) Then msblg = MsgBox("Müşteri Bilgilerini Girmeden Kaydedemezsiniz!!!", 64, "Müşteri Bilgilerini Girmeden Kayıt yapamazsınız"): Me.musteribilgi.SetFocus: Exit Sub
DoCmd.RunSQL "UPDATE alislar SET [Satildi] = -1 WHERE [imeiid]=" & Me.imeiid.Value & ";"
DoCmd.SetWarnings True
Me.satisfiyati.Enabled = False
Me.satistarihi.Enabled = False
Me.musteribilgi.Enabled = False
MsgBox "Satış Gerçekleşti..."
Me.SatilacakTelefonlar.Requery
Requery
Cevapla
Çözüldü #24
sağolun, bir sorun görünmüyor, sanırım sorun çözüldü. elinize sağlık, iyi çalışmalar dilerim.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task