Accesste Trigger

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    rbtx
    rbtx's avatar
    Kayıt Tarihi: 25/Haziran/2002
    Erkek

    Evet biliyorum access trigger desteklemiyor.Sorunumda burada zaten. Benden istenen access ile basit bir envanter programımı diyim artık projesimi diyim öyle birşey.

    Sorunum şurda, envanterde herhangi bir değişiklik olduğunda misal şimdi bilgisayar parçaları içinde aynı şeyi yapmam lazım a bilgisayarındaki anakart modeli xyz iken zyx yapılmış. Böyle bir rapor cümlesinide diğer bir tabloya aktarmam gerekli.

    Çözüm olarak vba dan before update eventini kullanmayı düşündüm. Daha denemedim teori kısmındayım ama sizdende fikir almak istedim. BeforeUpdate ile şunu düşünüyorum

    DoCmd.RunSql "insert into raportablo (bilgadi,parca1,parca2,parca3) values ("x","y","z")

    Bu durumda alacağım sonuç makinanın o günkü eski hali olacaktır. Evet sonrasındada bir başka sql querysi ile

    select *

    from computer, raportablo

    where computer.name = raportablo.bilgadi ; diyip bir form oluşturup şu configrasyonlu makinanın şu tarihteki konfigrasyonu böyleydi diyebilirim galiba. :D

    Evet taşşak geçmek isteyen geçebilir madem çözdün niye yazdın diyenler içinde böyle bir şey yapmak zorunda olursanız referans olur belkim hem bu çalışmayabilirde hatası varsa söylersiniz bir zahmet.

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    All hail to Tux
    sandman
    sandman's avatar
    Kayıt Tarihi: 01/Eylül/2005
    Erkek
    hmmm akıllıca Accessten çok anlamam acıkcası ama işe yarıyabilir gibi gözüküyor

    Mühendis kahveyi projeye dönüştüren bir insan evladıdır.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    rbtx
    rbtx's avatar
    Kayıt Tarihi: 25/Haziran/2002
    Erkek

    kimse siklememiş ama olsun ben teoriyi pratiğe döküp çözümü buldum sizinlede paylaşayım.

    Öncelikle ana tablomuz oluşturulur. Bende bu tablo "Giris" sonra "Rapor" tablosu. Bir form oluşturulur ve Giris tablosunun tüm elementleri bu forma dahil edilir. Formun BeforeUpdate olayına şu satırlar eklenir:

     

    DoCmd.RunSQL "insert into Rapor (Comp_ID, User,Brand,Modell, Location, Motherboard, Ram, Hdd, Vga,Ethernet) select Comp_ID, User,Brand,Modell, Location, Motherboard, Ram, Hdd, Vga,Ethernet from Giris where Giris.Comp_ID = [Forms]![Giris]![Comp_ID] "

     

    eğer where olayını kaldırırsanız "Giris"tablonuzdaki tüm girişler her bir update te tekrar tekrar kopyalanır. O yüzden where kullanılmalı.

    Daha sonra raporları göstermek içinde basit bir query yazarak sorun tamamiyle çözülmüş olunur. Foruma bir Date veya Now() eklenerek tarihe göre değişikliklerin gösterilmeside mümkün kılınılabilir.

Toplam Hit: 2251 Toplam Mesaj: 3