Sql Yapısı İçindeki Çalışmayan Dmax() Fonksiyonu

21/09/2020, 09:35

tarkanaykın

DoCmd.RunSQL "INSERT INTO egitimler_kisiler ( kisi_id, egitim_id ) SELECT kisiler.kisi_id, egitimler.egitim_id  FROM kisiler INNER JOIN egitimler ON kisiler.departman = egitimler.departman  WHERE (((kisiler.kisi_id) = DMax(("[kisi_id]", "[kisiler]")))"

merhaba herkese kolaylıklar dileyerek.... arkadaşlar WHERE ifadesinin içine yerleştirilen bu fonksiyon normalde başka bir yere yazıp denediğim zaman çalışıyor ama bu sorgunun içinde "expected end of statement" uyarısı veriyor, normalde sorguda bi sıkıntı yok denedim çalışıyor,  bi bakar mısınız dosyayı da göndereyim.  ayrıyeten bir a değişkenine atıyorum o a değişkenini WHERE den sonra yazıyorum bu defa a değerini input  kutusuyla benden istiyor, komedi gibi
21/09/2020, 10:54

berduş

Dosyanızı inceleyemedim ama yazdığınız koda bakınca şu hatayı gördüm:
SQL komutları metin tabanlıdır Vba kodlarında metinsel veriler çift tırnak içine alınır eğer kullandığınız ifadede de çift tırnak varsa ifadeyi tekrar çift tırnak içine alırken ifadede kullandığınız çift tırnaklar ya tek tırnağa çevrilir yada çift çift tırnağa çevrilir
Örneğin yukardaki kodda dmax içinde 4 adet çift tırnak kullanılmış dolayısıyla ifade aşağıda şekilde yazılmalı

DoCmd.RunSQL "INSERT INTO egitimler_kisiler ( kisi_id, egitim_id ) SELECT kisiler.kisi_id, egitimler.egitim_id  FROM kisiler INNER JOIN egitimler ON kisiler.departman = egitimler.departman  WHERE (((kisiler.kisi_id) = DMax(('[kisi_id]', '[kisiler]')));"
Yada

DoCmd.RunSQL "INSERT INTO egitimler_kisiler ( kisi_id, egitim_id ) SELECT kisiler.kisi_id, egitimler.egitim_id  FROM kisiler INNER JOIN egitimler ON kisiler.departman = egitimler.departman  WHERE (((kisiler.kisi_id) = DMax((""[kisi_id]""""[kisiler]"")));"

Bir de tabletten incelediğim için emin olamadım ama acılan kadar kapatılmalı parantezler
21/09/2020, 11:21

tarkanaykın

çok şükür çok teşekkür ederim, taşlar zamanla bir bir yerine oturuyor, sayın berduş hocam çok teşekkür ettim, sonunda istediğim şeyi oluşturabildim , çoka çok ilişkili tablolarda  ilk hamlede A tablosunu doldurup ikinci hamlede ise  B tablosuna eklediğim her yeni kayıtta A tablosuyla B tablosunu ilişkilendirme olayı bu şekilde de olabiliyormuş, çok teşekkürler, emeğinize sağlık.
21/09/2020, 11:24

berduş

Rica ederim)
yalnız bir önceki konunuza dönüş yapmadınız son 3 konunuz da çözülmüş oldu mu, cevaplanmışlara taşıyalım mı?
21/09/2020, 11:54

tarkanaykın

Aynen, aslında aynı hedefe ulasan farklı konular, taşıyabilirsiniz, kolay gelsin