Formun DİRTY özelliği nedir?

10/12/2009, 15:56

firdevs

Sayın hocaları bu soruyu accessmen hocamın "kayıtta değişiklik olup olmadığını kontrol için" konusununiçinde sormuştum ama başkalarının da ihtiyacu olabileceğini düşünerek yeni konu olarak açtım.

Formun dirty özelliği hakkında biraz bilgi verebilirmisiniz?

hazırladığım forma sihibaz yardımı ile formu kapatma butonu ekledim
ancak bir iki kullanımdan sonra
formun dirty özelliğine uygun hareket edilmediği yolunda mesaj verdi ve düğme artık çalışmadı.
Bende kod dan

If Me.Dirty Then Me.Dirty = False

satırını sildim çalıştı.
Ancak bir süre sonra o da hata verdi ve çalışmadı.
bu konuda biraz açıklama yapabilir misiniz?
10/12/2009, 16:22

Seruz

Formlarda, Dirty özelliğini kullanarak, geçerli kayıt üzerinde değişiklik yapılıp yapılmadığını belirleyebilirsiniz.
Örneğin, kullanıcıya, kayıttaki değişikliklerin istenen değişiklikler olup olmadığını sormak ve değilse,
kullanıcının değişiklikleri kaydetmeden bir sonraki kayda geçmesine izin vermek isteyebilirsiniz.

Dirty özelliği, evet veya hayır değeri döndürür.
Evet ise; Geçerli kayıt değiştirildi,
Hayır ise; Geçerli kayıt değiştirilmedi,
anlamına gelir.

Kod:
If Me.Dirty Then Me.Dirty = False
yerine
Kod:
If Me.Dirty Then Me.Undo
şeklinde deneyin.
Bu şekilde eğer kayıtta herhangi bir şekilde değişiklik yapılmış ise,
Undo komutu ile kayıtta yapılan değişiklikler geri alınır.

Daha fazla bilgi için:
Dirty Özelliği (Microsoft Office Sitesi)
10/12/2009, 16:24

arzuu

sn firdevs hanım Access soruları ve cevapları bölümüne konu açmanız gerekiyodu.

Dirty özelliğini kullanarak, son kaydetme tarihinden bu yana geçerli kayıt üzerinde değişiklik yapılıp yapılmadığını belirleyebilirsiniz. Örneğin, kullanıcıya, kayıttaki değişikliklerin istenen değişiklikler olup olmadığını sormak ve değilse, kullanıcının değişiklikleri kaydetmeden bir sonraki kayda geçmesine izin vermek isteyebilirsiniz. Okunur/yazılır Boolean.

ifade.Dirty

ifade Gerekli. Uygulama listesindeki nesnelerden birini döndüren bir ifade.

Açıklamalar
Dirty özelliği aşağıdaki ayarları kullanır.

Ayar Visual Basic Açıklaması
Doğru Doğru = Geçerli kayıt değiştirildi.
Yanlış Yanlış =Geçerli kayıt değiştirilmedi.

Bu özellik, Form görünümü (Form görünümü: Verileri göstermek veya kabul etmek için bir form görüntüleyen pencere. Form görünümü, tablolara veri eklemenin ve tablolardaki verileri değiştirmenin birincil aracıdır. Bu görünümde formun tasarımını da değiştirebilirsiniz.) ve Veri sayfası görünümü (Veri Sayfası görünümü: Tablodan, formdan, sorgudan, görünümden veya depolanmış yordamdan gelen verileri satır-sütun biçiminde görüntüleyen bir pencere. Veri Sayfası görünümünde, alanları düzenleyebilir, veri ekleyip silebilir ve veri arayabilirsiniz.)'nde kullanılabilir.

Bu özellik, bir makro (makro: Görevleri otomatikleştirmek için kullanabileceğiniz bir eylem veya eylem kümesi.) veya Visual Basic for Applications (VBA) (Visual Basic for Applications (VBA): Microsoft Windows tabanlı uygulamalar programlamak için kullanılan ve bazı Microsoft programlarıyla birlikte gelen makro dili sürümü.) kodu kullanılarak ayarlanır veya okunur.

Kayıt kaydedilirken, Microsoft Office Access 2007 Dirty özelliğini Yanlış olarak ayarlar. Kullanıcı kayıtta değişiklikler yaptığında, özellik ayarı Doğru olur.

Örnek
Aşağıdaki örnek, veri değiştirildiğinde btnUndo düğmesini etkinleştirir. Metin kutusu denetimlerinin GüncelleştirmeSonrasında olayından UndoEdits( ) alt yordamı çağrılır. Etkinleştirilen btnUndo düğmesi tıklatıldığında, OldValue özelliği kullanılarak denetimin özgün değeri geri yüklenir.
Sub UndoEdits()
If Me.Dirty Then
Me!btnUndo.Enabled = True ' Enable button.
Else
Me!btnUndo.Enabled = False ' Disable button.
End If
End Sub

Sub btnUndo_Click()
Dim ctlC As Control
' For each control.
For Each ctlC in Me.Controls
If ctlC.ControlType = acTextBox Then
' Restore Old Value.
ctlC.Value = ctlC.OldValue
End If
Next ctlC
End Sub

sn seruz mesajınızı görmedim.
10/12/2009, 16:24

Bilgisayarcı

Bu da linki
Msdn - Dirty

DİRTY değil DIRTY
10/12/2009, 16:34

firdevs

teşekkür ederim hepinize
11/12/2009, 07:42

benremix

Bilgi veren bütün arkadaşlara teşekkürler. Saygılar...