Form kaptıktan sonra verinin formdan silinmesi

1 2
23/11/2012, 17:08

fascioğlu

[attachment=16890]Sayın Hocalarım çalışmakta olduğum bir projemde frm_musteri formunda bulunan Oda No,Oda Tipi,Giriş-Çıkış tarihi Konaklama süresi ve oda fiyatını içeren alanlar var bunun dışında koraklama toplamı diyede ilişkisiz bir alan var Odafiyatı*konaklamasüresini hesaplayıp ilişkisiz alan Konaklama toplamına yazması gerekiyor,bu işlemi ilk kayıt girildiğinda hesplıyor ancak formu kapattıktan sonra yapılan hesaplama form dan siliniyor,bu konuyla ilgili kodlar aşağıdadır,bu sorunu gidermeme yardımcı olabilecek arkadaşlara şimdiden çok tşk.ederim.

Private Sub Kisisayisi_Exit(Cancel As Integer)
If IsNull(Me.Konaklamasuresi) Then Exit Sub
If Me.Konaklamasuresi = 0 Then Exit Sub
Me.Cıkıstarihi = Me.CT
Me.Odatipi = Me.Oda_tipi
Me.Odafiyati = Me.Oda_fiyati
Me.KONTOP = Me.Oda_fiyati * Me.Konaklamasuresi
Forms!frm_musteri.Requery
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
End Sub

İkinci Kod

Private Sub Konaklamasuresi_AfterUpdate()
Me.Cıkıstarihi = Me.CT
Me.Odatipi = Me.Oda_tipi
Me.Odafiyati = Me.Oda_fiyati
Me.KONTOP = Me.Oda_fiyati * Me.Konaklamasuresi
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Call ODARENK2
Forms!frm_Odaplanı.Requery
End Sub
23/11/2012, 17:54

ozguryasin

örneğinizi biraz inceledim. dediğinizi tam anlamadım fakat anladığım. şu durum.
hesaplama bölümlerini tabloya yazdırmak istiyorsunuz. daha projeniz eksik durumda. veya bize geldiği şekil eksik. normal şartlarda hesaplamaları otomatik yapması gerekiyor. fakat biz el ile yazıyoruz. bunları tabloya kaydetmesi gerekiyor. kaydetmiyor çünkü ilişkisiz. tabloya kaydet desek kaydetmeyecek çünkü orada kayıtlı bir değer var (sıfır), onun için yeni bir alan açıp oraya yazacak. o yüzden mecburen güncelleme dememiz gerekir.

If IsNull(Me.musterino) Or Me.musterino = "" Then 'müşteri numarası mevcut mu diye kontrol ediyoruz.

GoTo 100
Else
End If

Dim rs As New ADODB.Recordset
rs.Open "tbl_musteri", CurrentProject.Connection, adOpenKeyset, adLockOptimistic 'tablomuza bağlanıyoruz.

rs.Find "[musteri_no]=" & Me.musteri_no ' işlem yapılacak müşteriyi belirtiyoruz.

rs.Fields("buraya tablo alan adını yazınız") = Me.buraya formda bulunanmetin kutusu adını yazınız.
've üstteki kodu gerektiği kadar tekrar ediniz.

rs.Update '
' Stop
rs.Close

Set rs = Nothing
100
bu kodu istediğiniz olaya yazınız. örneğin. metin kutusundan çıkılınca veya güncelleme sonrası vb.

kod sayesinde tabloyaya yazılacağı için istediğiniz olacaktır diye düşünüyorum.

yanlış anlamadı isem isteğiniz bu.

not: birde müşteri numaranız otomatik sayı düşünceme göre manuel olsa daha mantıklı olur. her müşteride otomatik kendi kendine artan bir şekilde.
23/11/2012, 17:58

fascioğlu

Özgür hocam,meslek noyu anlamadım.
23/11/2012, 18:02

ozguryasin

yanlış yazmışım müşteri no olacak yani bir müşteriyi diğer müşterilerden ayırt eden özellik. oda sizde müşteri numarası. örnektede düzenleme yaptım.
rs.Find "[musteri_no]=" & Me.musteri_no
kodunu kullanarak bulmak istediğimiz müşteriyi buluyoruz.
23/11/2012, 18:12

fascioğlu

Hocam,uygulamaya çalıştım,ama olmadı.Belkide ben yanlış yaptım,bilmiyorum.
24/11/2012, 20:48

Kur@l

Probleminiz ekteki örnekte giderilmiştir.
1 2