Sitemizde ve google amcada araştırma yaptım ancak aradığım cevaba ulaşamadım. Belki de aradığım cevaba ulaşabilmek için doğru aramayı yapamamış olabilirim. Sorunum ile alakalı olarak destek verebilecek olan olursa çok memnun olurum.
Öncelikle Access kullanmayı tamamen bu siteden öğrendim ve geçmiş tecrübem pek yok. Çalıştığım iş yerinde birimler arasında İletişim kuran ve veri kaydı sonrası bir sonraki birime kendisiyle alakalı verileri girmesi için bir program yazdım.
Program servis firması tarafından müşteriden arızası için alınan ürünün fabrikaya onarımı için gönderim sürecinden başlıyor ve fabrikanın deposu ürünü teslim aldığını servise ve fabrikanın ilgili bölümüne mail ile bilgi geçiyor. Fabrikada ürünün kendisinemi yoksa export üretimse exporta gönderileceğinin bilgisini kayıt ediyor ve program mail atıyor. Depo fabrikadan yapılan bilgi girişine istinaden gönderim süreci başlatıyor gibi bir döngü mevcut.
Bu döngüyü ilk etapta programı her bir ürün için tek kayıtlık form kurgulamıştım. Ancak formu kullanacak kişilerden bir kayıt altına birden fazla veri oluşturma talebi geldi ve bende Servis firması tarafından girilen formda listboxlı bir formda update yöntemi ile bir servis no altında artan kalem nolar ile birden fazla veri girişini başarılı şeklide uyguladım. Ancak Depo ve fabrika tarafının kullandığı formlarda ise tek bir ana tablo üzerinden filtreleme yöntemi ile sürekli form kullanarak forma gelen bilgiler üzerinde değişiklik yapılarak kayıt etmelerini sağladım. Buraya kadar her şey çok iyi ancak problem şu noktada başlıyor. Önceki birim veri girişi yapıp mail gönderdiğinden bir sonraki birim kayıt üzerinde değişiklik yapmış ise önceki birimin aynı kayıt üzerinde önceki girdiği veriyi değiştirmesini önlemeye çalışıyorum. Bu nedenle de formun kaydet butonuna sonraki birim için önceden mail gönderilip gönderilmediğini kontrol ettiriyorum ve önceden mail ile bilgisi gönderilmiş olan kayıta değişiklik yapılmasını engelliyorum.
iptal butonumda sorun yaşıyorum. Formum bir sürekli form ve ana tablodan filtreleme ile gelen veriler üzerinde sonraki aşama bilgileri oluşturulduğundan Access'in özelliği olan ilgili satırda değişiklik yapıldığında anında veriyi tabloya kayıt ediyor olması sebebiyle aşağıdaki kodumda değişiklik yapılıp yapılmadığını yakalayamıyorum ve dolayısıyla kullanıcının kaçak bir yöntem ile art niyeti olduğunda iptal butonundaki açık sebebiyle bir sonraki birimin verilerini yanıltabilir. Textboxları ilişkisiz olarak denedim ancak formun sürekli form olması sebebiyle yine değişikliği algılatamadım. Bana bu konuda nasıl bir yol izleyebileceğim konusunda mantık ve kod yardımı yapabilirseniz çok memnun olurum...
Umarım meramımı anlatabilmişimdir.
Kod:
Private Sub btnIptal_Click()
If Me.Dirty Then
If MsgBox("Bilgilerde değişiklik yapılmış." & vbCrLf & vbCrLf & "Düzenlemeyi iptal etmek ister misiniz?", vbExclamation + vbYesNo, "Dikkat") = vbYes Then
Me.Undo
Me.cboServisNo = ""
TumDenetimPasif 'bu kod formdaki butonları ve text alanlarını pasif yapmakta
End If
Else
Me.cboServisNo = ""
TumDenetimPasif 'bu kod formdaki butonları ve text alanlarını pasif yapmakta
End If
End Sub