Skip to main content

AccessTr.neT


Log Kaydı Oluşturmak

Log Kaydı Oluşturmak

#19
(15/03/2020, 23:39)accessman yazdı: Örnek zaten ekli yani taruzun araçar örneğinin casus formunda sadece ilişkisiz bir metin kutusu eklenecek o kadar
Maliesef dediğiniz gibi bir metin kutusu eklemekle denenmiyor.

Şunu söyleyebilirimki dosyayı denedim ilişkisiz olayındada Log tutuluyor tabii biraz kodlar değişiyor.

Bunun için kullanacağınız form ve tablo örneği gerek nasıl olacaksa.Tabii örnek ekleyin demektende bıkkınlık geldi artık aynı kelimeleri yazmaktan.

Dediğim gibi kısaca Tablo ve Form eklerseniz ve yardım etmeye çalışabiliriz.Eklemezsenizde ben kendim için yapıp arşivleyeceğim bilgisayarıma.

Dediğim gibi inanın artık bıkkınlık geldi aynı kelimeleri yazmaktan maliesef.
Cevapla
#20
Baya bi uğraştım her yolu denedim ama galiba metin kutusunun Oldvalue özelliği ilişkisiz iken çalışmıyor
Cevapla
#21
(16/03/2020, 18:21)accessman yazdı: Baya bi uğraştım her yolu denedim ama galiba metin kutusunun Oldvalue özelliği ilişkisiz iken çalışmıyor
Anlatamıyorum galiba yada dosya ekleyin kısmını göremiyorsunuz sadece o kısmı.Oldvalue kısmına gerek yok.

Neyse ben vazgeçtim üstad.
Cevapla
#22
@feraz beyin belirttiği gibi.....
teorik olarak önerebileceğim şey tüm formdan çağırabileceğiniz bir dizi oluşturmak
alanlara değer atarken bu değerleri diziye yüklemek
ve son aşamada eski-yeni kıyaslaması yaparken bu dizi değerini çağırmak olabilir
Option Compare Database
satırının altına
Dim EskDgr() As Variant
satırını ekleyerek diziyi tanmladık
ilk değeri almak için gerekli kodlar
'hy_______________________________________________ ilk değeri alma
Dim ctl As Control
x = 0
For Each ctl In Me.Controls

Select Case ctl.ControlType  'Tüm kontrolleri gözden geçirelim..
        Case acTextBox, acComboBox, acCheckBox, acOptionGroup
        ReDim Preserve EskDgr(x)
            EskDgr(x) = Nz(ctl)
            x = x + 1
        End Select
Next ctl
'hy__________________________________________________
kontrol sırasında çalıştırılacak kod
kırmızı olanlar eklenmiş yeşil olanlar değiştirilmiştir
'________________________________________________________________________________________________
x=0
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(EskDgr(x))
            YeniData = nz(kontrol)

            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
        x=x+1
        End Select

    Next Kontrol
'__________________________________________________
gerisi size kalmış
Not: diziye değer atama mantığı for each döngüsünün nesneleri aynı sırayla aldığı varsayımı üzerine kurulu
hatalı bir varsayım olabilir o durumda diziye nesne adı ve değeri atanıp tekrar döngüyle kontrol edilebilir
Cevapla
#23
çok teşekkürler ilk fırsatta deneyeceğim
Cevapla
#24
Not: hatırlatma ilişkisiz formlarda tablo adını sizin girmeniz gerekmektedir
Ayrıca Kontrol.Name sizin nesneye verdiğiniz isim olduğundan tablodaki alan adı ve nesne adı ilişkisiz olduğundan ilk bakışta hangi alanın değiştiği anlasilamayabilir.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da