Write conflict hatasi (yazma çakışması hatası)
Tarih
27/01/2010 21:48
Konu Sahibi
dereza
Yorumlar
7
Okunma
2796
Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 5
  • 4
  • 3
  • 2
  • 1

Derecelendirme: 0/5 - 0 oy



dereza
Üye
Kullanici Avatari
Üye
24
8
17/03/2009
0
Kocaeli
Ofis 2000
10/02/2012,03:43
Çözüldü 
üstadlara bir sorum olacak,

kendi bölümüm için tasarlamış olduğum ufak bir database'de write conflict (yazma çakışması) hatası almaktayım. bu konuda yardımcı olabilirseniz çok sevinirim. şimdiden herkese teşekkürler..
.rar   gatmaca.rar (Dosya Boyutu: 148,59 KB / İndirme Sayısı: 8)

sorun şöyleki, ekli dosyada bulunan mdb dosyasında bir main form ve buna bağlı sürekli bir sub form mevcut. bu sürekli sub formda bir comboyu secip ( Sub Comment, Responsible comboları) değiştirmek istediğimde sürekli formdaki diğer kayıtlara ait combo değerleri de secmiş olduğum değer ile değiştirilsin. seçimi yapıp değiştiriyor ama aynı ekranda başka bir satıra geçtiğimde bir hata ve hemen ardından Write conflict uyarısı almaktayım. save record dedikten sonra kayıt işlemini yapabiliyorum. bu durumu nasıl aşarım.. yardımlarınızı bekliyorum..
Cevapla


Seruz
Uzman
Kullanici Avatari
Uzman
S.... U....
1.544
7
30/10/2008
804
Tekirdağ
Ofis XP
02/12/2016,15:18
Çözüldü 
Responsible combo'sunun after update'i şu şekildeydi.

Kod:
1
2
3
4
5
6
7
8
9
10
11
    If MsgBox("Do you want to change record ?", vbYesNo + vbQuestion + vbDefaultButton1, " W A R N I N G") = vbYes Then
    DoCmd.SetWarnings False
    DoCmd.RunMacro "MCR_Resp_Update"
    Me.Kayıtlı.Value = True
    Me.Lsst_Update_Date.Value = Now()
    Me.Text54.Value = Username()
    Me.Combo58.Requery
    DoCmd.SetWarnings False
    Else
    SendKeys "{ESC}"
    End If


* Msgbox'tan Yes cevabını aldıktan sonra "DoCmd.SetWarnings False" ile uyarıları kapatıyorsunuz
ancak then bloğunun sonunda true ile tekrar açmanız gerekiyordu, atlamış ve tekrar false yaptırmışsınız.

* DoCmd.RunMacro "MCR_Resp_Update"
komutu ile "QRY_Responsible_Update" adlı güncelleme sorgusunu çalıştırıp arkasından formu requery ile güncelliyorsunuz.
Ama burada atladığınız şu, siz henüz üzerinde olduğunuz mevcut kaydı kaydetmediniz.
Combo ile bir alanda değişiklik yaptığınız için mevcut kayıt güncelleme pozisyonunda kaldı.

Kod:
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

Bu makroyu çalıştırmadan önce bu komut ile değişikliği tabloya kaydetmelisiniz.

* Devamında mevcut kayıtta kod ile yine değişiklik yapıyorsunuz.

Kod:
    Me.Kayıtlı.Value = True
    Me.Lsst_Update_Date.Value = Now()
    Me.Text54.Value = Username()

ve yine tabloya kaydetmiyorsunuz, kayıt güncelleme pozisyonunda kalıyor.

Kod:
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

yine aynı komut ile yapılan değişikliği tabloya kaydetmelisiniz.

* Me.Combo58.Requery
comboyu güncellemişsiniz ancak bunu niye yaptığınızı anlamadım.
combonun verilerinde değişiklik yoksa, güncellemeye de gerek yok.

Bu şekilde mevcut kaydı 2 defa üst üste kaydetmiş oldunuz tabloya.
Eğer işlemlerin yerlerini değiştirirseniz bir defa kaydederek çözebilirsiniz.
Yani önce update ile ilgili yaptığınız değişiklikleri atayıp, kaydedin.
Sonra güncelleme sorgusunu çalıştırın.

Kod:
1
2
3
4
5
6
7
8
9
10
11
    If MsgBox("Do you want to change record ?", vbYesNo + vbQuestion + vbDefaultButton1, " W A R N I N G") = vbYes Then
        Me.Kayıtlı.Value = True
        Me.Lsst_Update_Date.Value = Now()
        Me.Text54.Value = Username()
        DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
        DoCmd.SetWarnings False
        DoCmd.RunMacro "MCR_Resp_Update"
        DoCmd.SetWarnings True
    Else
        SendKeys "{ESC}"
    End If


Diğer comboların kodlarını değiştirmek size kalıyor.

Bildiğini bilenin arkasından git, bildiğini bilmeyeni uyar, bilmediğini bilene öğret, bilmediğini bilmeyenden kaç.
Konfüçyüs
Cevapla


mehmetdemiral
.
Kullanici Avatari
Uzman
M.... D....
4.734
30/10/2008
Samsun
Ofis 2013 Tr. 32 Bit
05/12/2016,11:17
Çözüldü 
Sayın dereza
Nerdeyse 10 ay önce üye olmuşsunuz ama ilk mesajınızı şimdi yazmışsınız. Özel bir sebebi yoksa, sorabilir miyim neden diye?

Sorunuza gelince; genelde güncelleme sorgularından sonra bu çakışma oluşuyor. Benim önerim formu kapatıp işlemi bir paravan arkasında gerçekleştirip sonra tekrar formu açtırmanız. Böylece form üzerinde kullanılmakta olan bir değerin değiştirilmesi daha sorunsuz olacaktır.

Kolay gelsin.
İnadına, ille de Accesstr.net...
Cevapla


mehmetdemiral
.
Kullanici Avatari
Uzman
M.... D....
4.734
30/10/2008
Samsun
Ofis 2013 Tr. 32 Bit
05/12/2016,11:17
Çözüldü 
Sayın Seruz ayrıntılı bir çalışma sunmuş zaten.. Benim önerimi artık dikkate almanıza gerek yok. Fakat bu arada birşey daha dikkatimi çekti. Listeye eklenmesi için sorulan soruya "Hayır" derseniz ısrarla yeniden soruyor Img-grin)
İnadına, ille de Accesstr.net...
Cevapla


dereza
Üye
Kullanici Avatari
Üye
24
8
17/03/2009
0
Kocaeli
Ofis 2000
10/02/2012,03:43
Çözüldü 
Sayın Seruz verdiğiniz detaylar için çok teşekkür ederim,
yazmış olduğunuz bilgileri okuyup kafamda aşama aşama tasarlayınca nerelerde hata yaptığımı daha iyi anlamış oldum , dediğiniz gibi setwarnings.false olayını true olarak değiştirmeyi unutmuşum, siz yazınca farkettim onuda, tekrardan destekleriniz için çok çok teşekkür ederim. sayın mehmet demiral'in sorusuna da cevap vermek istiyorum, ozel bir sebebi yok tabiki, doğrudur uzun zaman once uye oldum ama sürekli ziyaret ederim siteyi takıldığım konularda daha onceden yazılmış cevaplara bakarak sorunlarımı bir şekilde gideriyordum, yazmış olduğum sorunu yabancı sitelerde de aradım ama genelde Sql hatası tazında cevaplar verilmiş. sonucta çözümü bulamayınca bu konuda deneyimli kişilere sormak istedim.ve konuyu açtım. sağolsun sayın Seruz hemen cevap yazmış. konularda cevap vermek istediğim sorularda olmuştur ama benden hızla cevap veren arkadaşlar olduğunu görünce verilmiş cevabın üstüne tekrar birşeyler yazmak istemediğimden aktif görünmemiş olabilirim.
Listeye eklenmesi için sorulan soruya "Hayır" ısrarla soruyor kısmını da
cancel=true
me.undo
komutu ile düzelttim. bu ayrıntı içinde teşekkür ederim. tekrar görüşmek dileğiyle, herkese iyi çalışmalar.
Cevapla


mehmetdemiral
.
Kullanici Avatari
Uzman
M.... D....
4.734
30/10/2008
Samsun
Ofis 2013 Tr. 32 Bit
05/12/2016,11:17
Çözüldü 
O zaman aramıza -geç de olsa- hoşgeldiniz. İyi çalışmalar..
İnadına, ille de Accesstr.net...
Cevapla







Konuyu Okuyanlar: 1 Ziyaretçi


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Tarih Son Yorum
  OLE server or ActiveX Control hatası temre 4 127 05/12/2016, 22:44 ozanakkaya
  Parametre girin hatası nightashes 3 56 04/12/2016, 23:07 Mesut Kaytan
  method or data hatası murat dikme 7 111 02/12/2016, 19:04 murat dikme
  Sms Göndermede Port Hatası kadirdursun 4 185 28/11/2016, 14:23 atoz112
  Excelden Veri Aktarımı Hatası Xleash 6 136 25/11/2016, 10:52 Xleash


Türkçe Çeviri: MCTR, Forum Yazılımı: MyBB, © 2002-2016 MyBB Group.
DMCA.com Protection Status
© Desing by XSTYLED| Develops by ozanakkaya