Accesste Trigger
-
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.
-
hmmm akıllıca Accessten çok anlamam acıkcası ama işe yarıyabilir gibi gözüküyor
-
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.