Master/Detail與查閱欄位一問. |
尚未結案
|
sucm
一般會員 ![]() ![]() 發表:24 回覆:29 積分:10 註冊:2005-01-17 發送簡訊給我 |
我有一個FORM1,裡面MASTER的值是從FORM2帶出來的..
DETAIL的值是由使用者自行輸入...
MASTER的值是在FORM2本來就建好的....
所以存檔時只存FORM1的DETAIL的值..跟MASTER/DETAIL對應的..FK..
但是現在我在DETAIL使用了DBLookupComboBox做查閱欄位...
因為DERAIL的TABLE1還有跟別的TABLE3做關連,做關連的是編號.但是顯示的是姓名
所以我才用DBLookupComboBox做查閱欄位...
可是現在在Form1.ADOQuery1.Open或insert時卻出現了"無法識別的錯誤".....
我的做法如下.....
FORM1的
ADOQuery1.SQL.Text:='select * from table1 where form1對應的欄位=:form2對應的欄位'
ADOQuery1.DataSource:=Form2.DataSouce1
MASTER元件的DataSource:=Form2.DataSouce1因為我是在form2查詢出我要的值直接帶到form1..
DBLookupComboBox的DataSource:=Form1.DataSource1...
所對應的DataField是FORM1.ADOQuery1所new 的 Field....
new field的設定如下.....
key field:=table1要存的欄位....
Dataset:=ADOQuery2(ADOQuery2.SQL.Text:=select * from table3)
LookupKeys:=table2與table1所對應的欄位
ResultKeys:=DBLookupComboBox要顯示的欄位
我的設定大約如上.....
如果今天我把form1的ADOQuery1的DataSource設成空白....
就不會出現錯誤....但是master/detail對應的值就不會存入detail
到底要如何做呢.....這個問題以經試了好久...真不知該如何..
只好麻煩各位前輩了..... 我是新手...請原諒我的笨問題
|
mustapha.wang
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:89 回覆:409 積分:274 註冊:2002-03-13 發送簡訊給我 |
看我理解你的做法没有:
你是在Detail里建了一个Lookup字段,而这个字段的LookupDataset就是Master表。
如果这样的话,问题原因如下:
对Lookup的Field来说,当有资料改变时,它就企图到LookupDataSet去重新获得LookupResult,这个动作就会卷动LookupDataSet表,而LookupDataSet就是Master表,Master表一卷动,Detail就跟着卷动,然后正在修改状态的Detail就放弃修改..........所以在Detail表apply某个Field的修改最后到被迫放弃修改,整个事件就乱套了。
解决办法是把LookupDataSet指定到第3个DataSet
------
江上何人初见月,江月何年初照人 |
sucm
一般會員 ![]() ![]() 發表:24 回覆:29 積分:10 註冊:2005-01-17 發送簡訊給我 |
不好意思...我打錯了...
new field的設定如下.....
key field:=table1要存的欄位....
Dataset:=ADOQuery3(ADOQuery3.SQL.Text:=select * from table3)
LookupKeys:=table3與table1所對應的欄位
ResultKeys:=DBLookupComboBox要顯示的欄位 LookupDataSource應該是ADOQuery....指向另一個table 我是新手...請原諒我的笨問題
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |