Access'te bir formu kapattığınızda beklenmeyen yazma çakışması hatası oluşur

Orta: Temel makro, kodlama ve birlikte çalışabilirlik becerileri gerektirir.Bu makale, bir Microsoft Access veritabanı (.mdb) ve bir Microsoft Access projesi (.adp) için geçerlidir.

Belirtiler

Aynı kayıt kaynağına sahip birden çok form kullanan verileri edindiğinizde, aşağıdaki hata iletisini alabilirsiniz:

Bu kayıt, düzenlemeye başladığınızdan beri başka bir kullanıcı tarafından değiştirildi. Kaydı kaydederseniz, diğer kullanıcının yaptığı değişikliklerin üzerine yazarsınız. Değişiklikleri panoya kopyalamak, diğer kullanıcının girilen değerlerine bakmanızı ve değişiklik yapmaya karar verirseniz değişikliklerinizi geri yapıştırmanızı sağlar.

Ardından, aşağıdaki üç düğmeden birini tıklatabilirsiniz:

  • Kaydı Kaydet

  • Panoya kopyala

  • Damla Değişiklikleri

Neden

Bu davranış, aynı anda aynı veri kaynağını güncelleştiren iki form açtığınızda oluşur. İlk form kayıt veya kayıtlara bir edit kilidi koyar ve ikinci form kaydı veya kaydı değiştirir ve değişiklikleri kaydeder. İlk form kapatmaya ve tabloya geri yazmaya çalıştığında, ikinci form tarafından yapılan değişiklikler algılanır. Bu, hatanın döndürülmeye neden olur.

Çözüm

Bu davranışı niçin çözüme yönelik olarak, Microsoft Access veritabanı (.mdb) dosyası için listelenen iki yöntemden birini veya Access project (.adp) dosyası için listelenen yöntemi kullanın.

Microsoft Access veritabanı (.mdb) dosyası için

Yöntem 1

Formun RecordLocks özelliğini Düzenlenen Kayıt'aayarlayın. Bunu yapmak için aşağıdaki adımları izleyin:

  1. Formu Tasarım Görünümü'nde açın. Not Access 2007'de, adım 3'e gidin.

  2. Görünüm menüsünde Özellikler'itıklatın.

  3. Veri sekmesinde, Kayıt Kilitleri özelliğini Düzenlenen Kayıt olarak değiştirin.

Yöntem 2

Kaydı kaydetmek için her iki formun OnDeactivate olay yordamına kod ekleyin. Bunu yapmak için aşağıdaki adımları izleyin:

  1. Formu Tasarım Görünümü'nde açın. Not Access 2007'de, adım 4'e gidin.

  2. Görünüm menüsünde Özellikler'itıklatın.

  3. Ekle menüsünde Formu Seç'itıklatın.

  4. Olay sekmesinde, OnDeetkin özelliği kutusunda sağ tıklatın ve sonra Oluştur'utıklatın.

  5. Oluşturucu seç kutusunda Kod Oluşturucu'yutıklatın ve ardından Tamam'ıtıklatın.

  6. Aşağıdaki kodu yazın veya yapıştırın:

    DoCmd.RunCommand acCmdSaveRecord
  7. Tasarım görünümünde ikinci formu açın ve 2'den 6'ya kadar olan adımları yineleyin.

Microsoft Access Project (.adp) dosyası için:

Kaydı kaydetmek için her iki formun OnDeactivate ve OnActivate olay yordamlarına kod ekleyin. Bunu yapmak için aşağıdaki adımları izleyin:

  1. Formu Tasarım Görünümü'nde açın. Not Access 2007'de, adım 4'e gidin.

  2. Görünüm menüsünde Özellikler'itıklatın.

  3. Ekle menüsünde Formu Seç'itıklatın.

  4. Olay sekmesinde, OnDeetkin özelliği kutusunda sağ tıklatın ve sonra Oluştur'utıklatın.

  5. Oluşturucu seç kutusunda Kod Oluşturucu'yutıklatın ve ardından Tamam'ıtıklatın.

  6. Aşağıdaki kodu yazın veya yapıştırın:

    DoCmd.RunCommand acCmdSaveRecord
  7. Dosya menüsünde Kapat'ı tıklatın ve Microsoft Access'e döndürün.

  8. Olay sekmesinde, OnActivate özelliği kutusuna sağ tıklayın ve sonra Oluştur'utıklatın.

  9. Oluşturucu seç kutusunda Kod Oluşturucu'yutıklatın ve ardından Tamam'ıtıklatın.

  10. Aşağıdaki kodu yazın veya yapıştırın:Bu makaledeki örnek kodun Microsoft ActiveX Veri Nesneleri kullandığınıunutmayın. Bu kodun düzgün çalışması için Microsoft ActiveX Veri Nesneleri 2.x Kitaplığı'na (2.x 2.1 veya daha büyük olduğu) başvurmanız gerekir. Bunu yapmak için Visual Basic Düzenleyicisi'ndeki Araçlar menüsünde Başvurular'ı tıklatın ve Microsoft ActiveX Veri Nesneleri 2.x Kitaplık onay kutusunun seçildiğinden emin olun.

    Dim rs As ADODB.RecordsetSet rs = Me.Recordset.Cloners.Bookmark = Me.BookmarkDoCmd.RunCommand acCmdRefreshMe.Bookmark = rs.Bookmarkrs.CloseSet rs = Nothing
  11. Tasarım görünümünde ikinci formu açın ve ardından 2'den 10'a kadar olan adımları yineleyin.

Ek Bilgi

Access 2003'teki davranışı çoğaltma adımları

  1. Erişimi Aç.

  2. Yardım menüsünde Örnek Veritabanları'nıişaret edin ve ardından Northwind Örnek Veritabanı'nıtıklatın.

  3. Veritabanı penceresinde, Nesneleraltındaki Tablolar'ı tıklatın ve ardından Çalışanlar tablosunu tıklatın.

  4. Ekle menüsünde Otomatik Form'utıklatın.

  5. FrmNewEmployeesolarak formu kaydedin.

  6. Çalışanlar formunu açın ve ardından İlk Ad alanını Nancy1olarak değiştirin.

  7. FrmNewEmployees formunu açın ve ardından İlk Ad alanını Nancy2olarak değiştirin.

  8. FrmNewEmployees formunu kapatın.

  9. Çalışanlar formunu kapatın. Bu makalenin "Belirtiler" bölümünde belirtilen "Çakışma Yazma" iletisini aldığınızı unutmayın.

Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek için aşağıdaki makale numaralarını tıklatın:

304181 Formu Kapattığınızda Beklenmeyen Yazma Çakışma Hatası

280730 ACC2000: Bağlantılı SQL Server Tablosunda Kayıtları Güncelleştirmeye Çalıştığınızda Çakışma Hatası Yazma

Daha fazla yardıma mı ihtiyacınız var?

Yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Microsoft Insider 'a katılın

Bu bilgi yardımcı oldu mu?

Geri bildiriminiz için teşekkür ederiz!

Geri bildiriminiz için teşekkürler! Office destek temsilcilerimizden biriyle görüşmeniz yararlı olabilir.

×