@
feraz eklediğiniz yönetim araçları eklentisinde kayıt casus kısmında her işlem kaydediliyor
bunun çalışma mantığı anladığım kadarı ile şöyle
Private Sub Form_BeforeUpdate(Cancel As Integer)
Call KayitCasusu(Form, [PersonelNo])
End Sub
ile formun güncelleme öncesinde fonksiyon çalışıyor ama bunun için olayın tetiklenmesi lazım
tetiklenmesi için de formun veri kaynağı tabloya bağlı olması gerekiyor
fonksiyonda controllerin old ve new value leri kontrol edilip kaydediliyor gayet de güzel çalışıyor
ama problem benim formun veri kaynağı tabloya bağlı değil yani
Dlookup ile bilgileri forma yükleyip değişiklik olursa update sorgusu ile verileri güncelliyorum
burada anahtar kelime değişiklik olursa
ben değişiklik olup olmadığını amiyane bir şekilde tüm control valueleri bir stringde toplayıp giriş ve çıkışda karşılaştıryorum mesela girişte
"Ahmet"&"Ankara"&"Erkek" çıkışta
"Ahmet"&"İstanbul"&"Erkek"
ise kaydetme fonksiyonu çalışıyor.
For Each Kontrol In frm
Select Case Kontrol.ControlType 'Tüm kontrolleri gözden geçirelim..
Case acTextBox, acComboBox, acCheckBox, acOptionGroup
'Boş verilere değer atayalım..
EskiData = Nz(Kontrol.OldValue, "Boş")
YeniData = Nz(Kontrol.Value, "Boş")
If EskiData <> YeniData Then
'Diğer değişkenleri tanımyalım
Tablo = frm.RecordSource
kllnc = AktifKullanici
Zmn = Now()
Msj = "Kayıt Değiştirildi"
'Değişiklikleri kaydedelim..
Sorgu = "INSERT INTO TGuncellemeKaydi ([Tablo], [KayitNo], [FormAdi], [DenetimAdi], " _
& "[EskiVeri], [YeniVeri], [Kullanici], [Zaman],[Silinme]) " _
& "VALUES ('" & Tablo & "', '" & KayitKimligi & "', '" & frm.name & "', " _
& "'" & Kontrol.name & "', '" & EskiData & "', '" & YeniData & "', " _
& "'" & kllnc & "', '" & Zmn & "', '" & Msj & "')"
CurrentDb.Execute Sorgu
End If
End Select
Next Kontrol
özetle sorum şu
bu fonksiyonda kontrolun eski ve yani değerlerini alabilmem için formun veri kaynağının bir tabloya bağlı olması şart mı ilişkisiz formlarda
Form_BeforeUpdate olayı çalışır mı