Sn febas, sanırım ben tam olarak anlatamadım..Siz örneğin KMT formunuzdaki frm alanını ölçüt olarak
Sql in sonuna yazmalısınız. Aksi halde her seferinde size parametre soracaktır. KMT formunuzu açarak ekleyeceğiniz bir düğme ile Makro'yu tetikleyin. Ancak öncesinde;
Kod:
DoCmd.RunSQL "SELECT kmtportfoy.ncst, kmtportfoy.frmadrres, kmtportfoy.frmirt, tblyetkili.yetkili, tblyetkili.irttel, tblyetkili.mail, tblyetkili.nprd INTO a FROM kmtportfoy INNER JOIN tblyetkili ON kmtportfoy.kimlik = tblyetkili.baglanti where (firma= forms!KMT!frm)"
SQL i bununla değiştirip terkar deneyin. Parametre sormayacağı için cevaplamanız gereken bir durumda olmayacak, böylelikle hata mesajı ile de karşılaşmayacaksınız..
Daha doğrusu kodlarınızı aşağıdaki ile değiştirir ve KMT formunuza ekleyeceğiniz bir düğme ile çalıştırırsanız. Boş olması halinde istediğiniz mesajı da alabilirsiniz.
Kod:
Public Function ytk()
Dim nesne, nesne1 As Object
DoCmd.SetWarnings False
If IsNull(Forms!kmt!frm) Then
Call MsgBox("Lütfen Firma alanının dolu olduğundan emin olunuz.", vbExclamation, "Dikkat")
Else
DoCmd.RunSQL "SELECT kmtportfoy.ncst, kmtportfoy.frmadrres, kmtportfoy.frmirt, tblyetkili.yetkili, tblyetkili.irttel, tblyetkili.mail, tblyetkili.nprd INTO a FROM kmtportfoy INNER JOIN tblyetkili ON kmtportfoy.kimlik = tblyetkili.baglanti where (firma= forms!KMT!frm)"
DoCmd.TransferSpreadsheet acExport, 8, "a", CurrentProject.Path & "\nprd.xls", False
Set nesne = CreateObject("Excel.Application")
Set nesne1 = nesne.Workbooks.Open(CurrentProject.Path & "\nprd.xls")
nesne.Application.Visible = True
End If
End Function