15/06/2017, 14:17
Arkadaşlar sitede göremedim yardımcı olursanız sevinirim. Sanırım bir yerde mantık hatası yapıyorum. Form üzerinde ilişkisiz ve satır kaynağı başka tablo olan iki listboxım var. Birinden diğerine butonlarla ekleme çıkarma yapıyorum. Formda yeni bir kayıt oluşturduğumda ekleme yapmam için Vba da refresh komutunu eklemem gerekiyor, aksi halde listboxlar arası öğe ekleme yapamıyorum. Çünkü ana tabloda satır henüz oluşmamış oluyor ( kaydetmeden son çıkış yaptığımda kontrol etmek istiyorum). Buraya kadar sıkıntı olmuyor ama bu sefer de kayıt kontrolü yapamıyorum çünkü refresh komutu before update olayını tetikliyor ve before update içinde kaydetme işlemi yapmama izin vermiyor. Yani kısacası refresh yapmadan tablolar arası ekleme yapamıyorum, yapınca da formdaki kayıt kontrolünü gerçekleştiremiyorum. Bu döngüde takıldım kaldım
Private Sub btn_ekle_maket_click()
Me.Refresh 'problem burada'
Set tbl_proje_maketleri = CurrentDb
CurrentDb.Execute "INSERT INTO [tbl_proje_maketleri](Projeler_IDFK,Maketler_IDFK)" _
& "select '" & Me.Projeler_ID & "','" & Me.lst_tum_maketler.ItemData(-1) & "'"
'liste öğeleri yenileme ve formun kirli olayının aktif edilmesi
Me.lst_secilen_maketler.Requery
Me.Projeismi.SetFocus
Me.Dirty = True
End Sub
Private Sub Form_BeforeUpdate(Cancel As Integer)
If Me.Dirty = True Then
soru = MsgBox("Değişiklikler Kaydedilsin mi?", vbYesNoCancel)
If soru = vbCancel Then
Cancel = True
ElseIf soru = vbYes Then
DoCmd.RunCommand acCmdSaveRecord 'problem burada'
MsgBox "Değişiklikler Kaydedildi"
Else
DoCmd.RunCommand acCmdUndo
End if
End If
End Sub