Merhaba arkadaşlar,
Ekte göreceğiniz veritabanımdaki f_ithalust formunda, kalite bölümündeki veriyi kıstas alarak kontruksiyon alanında veriler çağırılıyor ve kullanıcı bunlardan birini seçiyor.
Eksiklik ise şurada; mevcut olan veri seçilmesi durumunda, "eklemek istiyor musunuz? " sorusu sorulmaması ve mevcut olan verinin bir kopyasının eklenmemesi gerekirken, bu maalesef oluyor.
Yani özetle istediğim, konstruksiyon alanında mevcut olan kayıt seçildiğinde hiçbir soru ve ekleme durumu olmasın, ancak mevcut kaytılarda bulunmayan, yeni bir kayıt eklendiğinde bu sorulsun ve kabul edilmesi dahilinde ekleme yapılsın.
Yardımlarınız için şimdiden teşekkür ederim.
Bu örnekte listede yoksa olayından hareketle yapıyor işlemi. Benimkinde eşleşen tablo verileri aracılığıyla çağırılan verileri kontrol ediyor. O yüzden uyarlamayı başaramadım.
Benim kodda bi hata var da, nerede onu çözemedim.
Zamanınız olduğunda bi göz atarsanız çok memnun olurum.
İstediğiniz örnek biçimi aşağıya eklendi. Güle güle kullanın
Mantık farklı biraz. Benim yaptığım Ozan'ın yıllarca önce yaptığı listede yoksa eklensin olayını sizin isteğinize göre güncellemekti. Bu arada çok da kolay yapmadım çünkü
Sql konusunda ben de çok çok eksiğim. Dikkat ederseniz olay yordamını "listede yokken" olayına yazdım. Sizin örneğinizde daha farklı. Onda güncelleme sonrasında alana girilen veri kontrol edilip tabloda yoksa eklenmesi isteniyor. O biraz daha zor ve
Access nimetlerini kullanmadan daha çok vb mantığıyla hazırlanmış. Benim zorlandığım yer ise, aynı anda tabloya birden çok alanın eklenmesiydi. Biz daha önce tek bir kayıt olan bir tabloya (mesela diyelim bir adres olayında mahalle adı) listede yoksa veri ekliyorduk. Bunun için insert into komutunu kullanarak
Sql ile tabloya veri ekliyoruz. Normalde Ozan'ın eklediği örnekte bunun için tek satır eklendiğinden işimiz eksik kalıyor ve ilişkili olduğu kons_kaliteno verisi de aynı anda eklenemediğinden iş tamamlanmıyor. Bu nedenle sql'de insert into komutunun kullanımıyla ilgili şu adresi inceledim ve çözüme çok yardımı oldu.
SQL insert into açıklaması
Bu arada it_kalite alanındaki ilişkili değerin de sayısal bir değer olarak tablodaki
kons_kaliteno alanına eklenmesi gerekiyordu. Bunun için bir alt formdaki açılan kutunun 2. kolonundan gelen veriyi bir değişkene atadım. Değişkenimin adı memo. (Mehmet'iz ya
Kod:
memo = Forms!f_ithalust![f_ithalalt].[Form].it_kalite.Column(1)
Böylece strsql = "Insert Into t_konst (kons_analiz,kons_kaliteno) values ('" & NewData & "'," & memo & ")" koduyla da memoyu mevcut kodun içine yerleştirdim. Tek değer için
strsql = "Insert Into t_konst (kons_analiz) values ('" & NewData & "')"
olan kodumuz ilavelerle 2 değeri tabloya yazmış oldu. Tablodaki kons_no alanı zaten otomatik sayı olduğundan ona bir şey yapmak gerekmiyordu. Umarım açıklayıcı olmuştur.