form kapatma butonu için kod hakkında

08/02/2014, 05:02

miCRoBe`


DoCmd.RunSQL "UPDATE [alislar] SET alisfiyati = '" & Forms!stokarama!Metin334 & "',satisilkfiyati = '" & Forms!stokarama!Metin335 & "' WHERE alisid = " & Forms!stokarama!Metin333 & ""
böyle bir kod denedim kod çalışmakta fakat form kapat butonunda debug hatası almaktayım. yani düzgün çalışmayan bir kod yazımı mevcut sanırım.

stok arama formundaki liste kutusundan ilgili kaydın id sini alışlar tablosundan form üzerine aldım fakat form kapatma butonu için kod sorunu yaşıyorum.
kodun tamamı:

Private Sub Komut28_Click()
If IsNull(Me.Metin334) Or IsNull(Metin335) 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.SetWarnings True
DoCmd.Close
End If

Else

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

Select Case mesaj
Case 6
Me.Metin334.Enabled = False
Me.Metin335.Enabled = False
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE [alislar] SET alisfiyati = '" & Forms!stokarama!Metin334 & "',satisilkfiyati = '" & Forms!stokarama!Metin335 & "' WHERE alisid = " & Forms!stokarama!Metin333 & ""
DoCmd.SetWarnings True
MsgBox "Kaydedildi..", vbInformation, "Kaydedildi"
DoCmd.Close
Case 7

Me.Undo
DoCmd.Close
Case 2

Exit Sub
End Select

End If
End Sub
vakti olan bilgili arkadaşlar yardım edebilirse sevinirim.

teşekkürler.
08/02/2014, 22:31

direnist

merhaba;
UPDATE sorgusunu aşağıdaki sekilde yazıp denermisiniz?
"UPDATE [alislar] SET alisfiyati = " & Forms!stokarama!Metin334 & ", satisilkfiyati = " & Forms!stokarama!Metin335 & " WHERE alisid =  " & Forms!stokarama!Metin335 & ""
Tabi tablolardan da güncellemeleri yapmışmı yapmamış mı kontrolüde gerekli.
08/02/2014, 22:37

ozanakkaya

Bu kodun amacı ne olacak?

Önceki formda kapat butonu için bu kodu yazmıştık, form kapatılmadan boş alan kontrolü ve önce yapılan işlemin iptali gibi işlemleri geri almak içindi.

Arama formunuzun kayıt kaynağı, formdaki metin kutularının denetim kaynağı yok, yani ilişkisiz. Satışı iptal etmediğiniz sürece herhangi bir değişiklik olmayacak.
08/02/2014, 23:02

miCRoBe`

bu kodun amacı, stokta var olan telefonları görüntülemek amacıyla oluşturduğum "stok arama" formunda, istenildiği vakit stoktaki telefonların fiyatlarının güncellenmesi içindi.
bu forma fiyat görme ve fiyat güncelleme formu da diyebiliriz yani.

ozan bey önceki formdan kastınız sanırım satış arama formundaki

DoCmd.RunSQL "UPDATE alislar SET Satildi = 0 WHERE (((alisid)=[Formlar]![satisarama]![alisid]));"
DoCmd.RunSQL "DELETE alisid FROM satislar WHERE (((alisid)=[Formlar]![satisarama]![alisid]));"
kodlarıydı.

bu formda sadece, istenildiğinde alışlar tablosundaki fiyatlar güncellenebilmeli.
fiyat kontrolü için oluşturmuştum fakat böyle bir ihtiyaçta oluştu.
istenildiğinde listeye çift tıklayıp ilgili alışid üzerinde fiyat güncellemesi yapmak için bu kodu denedim.

fiyat güncelle butonu için şu kodlar çalışıyor:

Private Sub Komut32_Click()
If IsNull(Me.Metin334) Then
MsgBox ("Alış Fiyatı alanı boş bırakılamaz!"), vbExclamation, "Alış Fiyatı Alanı Boş!"
Me.Metin334.SetFocus
ElseIf IsNull(Me.Metin335) Then
MsgBox ("Satış Fiyatı alanı boş bırakılamaz!"), vbExclamation, "Satış Fiyatı Alanı Boş!"
Me.Metin335.SetFocus
Else
If MsgBox("Girilen bilgiler güncellenecek..", vbInformation + vbYesNo, "Güncelleniyor...") = vbYes Then
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE [alislar] SET alisfiyati = '" & Forms!stokarama!Metin334 & "',satisilkfiyati = '" & Forms!stokarama!Metin335 & "' WHERE alisid = " & Forms!stokarama!Metin333 & ""
DoCmd.SetWarnings True
MsgBox "Kaydedildi..", vbInformation, "Kaydedildi"
Me.Liste333.Requery
Me.Komut32.Enabled = False
Me.Metin111.SetFocus
Me.Metin333 = ""
Me.Metin334 = ""
Me.Metin335 = ""
End If
Me.Liste333.Requery
Me.Komut32.Enabled = False
Me.Metin111.SetFocus
Me.Metin333 = ""
Me.Metin334 = ""
Me.Metin335 = ""
End If
End Sub
fakat güncelleme sonrasında form kapat butonu için kodları doğru yazmayı başaramadım. debug hatası vermekte.

sayın direnist sizin verdiğiniz kodu da denedim yine debug hatası ile karşılaştım.
08/02/2014, 23:45

ozanakkaya

fiyat güncelle butonunu tıkladığınızda bilgiler güncelleniyor. Butonun tıklandığında olayına

  Me.Metin333 = ""
Me.Metin334 = ""
Me.Metin335 = ""

kodu eklediğiniz için metin kutuları temizleniyor.

Kapat butonunun sorusuna evet dediğinizde bu metin kutuları boş olduğu için
DoCmd.RunSQL "UPDATE [alislar] SET alisfiyati = '" & Forms!stokarama!Metin334 & "',satisilkfiyati = '" & Forms!stokarama!Metin335 & "' WHERE alisid =  " & Forms!stokarama!Metin333 & ""
kodu hata veriyor.

Private Sub Komut28_Click()

kodunun hemen altına

on error resume next

kodunu eklerseniz sorun kalmaz.
09/02/2014, 00:46

miCRoBe`

teşekkür ederim iyi çalışmalar dilerim, sorun çözüldü.