2012-11-12 54 views
0

爲我的格式化道歉。ms訪問從子表格向SQL數據庫表中插入數據

我遇到Access數據庫表單問題。

我有一個從參與者表中調用參與者信息的表單。然後我需要一個子表單包含在參與者表的id號(PK)上過濾的另一個表的子集。子窗體(通過使用訪問子窗體嚮導創建)執行此作業即可。 (兩個窗體通過主窗體上的ID和子窗體上的GI_ID鏈接,但在這裏也不相關)。

現在棘手的部分,在子窗體上我有一個按鈕,當它按下時打開另一個窗體(澄清),然後插入一個新的行到新的窗體表中,鏈接bY子窗體(Diary.ID)和澄清.DiaryID。操作員現在可以填寫澄清表中的字段,該字段將始終鏈接回日記表。 總結

Participant table; ID (pk) 
healthdiary Table; ID (PK) GI_ID (fk - participant table) form= frm_healthdiary_edit_record.ID 
Clarification Table ID (PK), DiaryID (fk) form=tbl_healthdiary_clarif 

這是工作(另一種形式中上),當它不是一個窗體後面的按鈕的代碼。

SQL_Txt = "INSERT INTO tbl_healthdiary_clarif (HDR_ID) Values (forms!frm_healthdiary_record.ID)" 
DoCmd.RunSQL SQL_Txt 
SQL_Txt = "" 
DoCmd.OpenForm "frm_healthdiary_clarif", , , "[HDR_ID] = forms!frm_healthdiary_record.ID" 

在子窗體frm_healthdiary_record按鈕上的onClick CONTRAL使用時,下面的SQL插入代碼不起作用。無論我嘗試什麼,它總是要求輸入frm_healthdiary_record.ID。

SQL_Txt = "INSERT INTO tbl_healthdiary_clarif (HDR_ID) Values (me.frm_healthdiary_edit_record.form.ID)" 
DoCmd.RunSQL SQL_Txt 

SQL_Txt = "" 

我試圖改變代碼me.frm_healthdiary_edit_record.form.ID和表單!frm_healthdiary_record..Form.ID,但總是要求輸入同樣的結果,並不能找到控制。

它非常令人沮喪。

讓我清楚,我希望子窗體上的按鈕(onclick)爲1-插入一個新行到tbl_healthdiary_clarif然後2 - 打開另一個窗體,基於tbl_healthdiary_clarif剛插入的記錄。

如果有更好的方法,請建議。

在此先感謝。

回答

2

你不能在sql文本中包含對錶單的引用,它必須在外面,因爲它是一個變量。例如,如果ID是在當前形式的子窗體:

SQL_Txt = "INSERT INTO tbl_healthdiary_clarif (HDR_ID) Values (" _ 
    & me.frm_healthdiary_edit_record.form.ID & ")" 
CurrentDB.Execute SQL_Txt, dbFailOnError 

要引用子窗體的窗體上的當前形式外:

SQL_Txt = "INSERT INTO tbl_healthdiary_clarif (HDR_ID) Values (" _ 
    & Forms.MyFormName.frm_healthdiary_edit_record.form.ID & ")" 

還可以通過ID作爲OpenArg OpenForm方法:

DoCmd.OpenForm "Clarification", , , , , , Me.ID 

然後,您可以在名爲「澄清」的表單上引用Me.OpenArgs。

+0

謝謝你今晚晚些時候再試。 – Darklantern

+0

我得到「錯誤438;對象不支持這個對象或方法。嘗試你的第一個代碼,並修改它爲'SQL_Txt =」INSERT INTO tbl_healthdiary_clarif(HDR_ID)值(「_ &Forms.health_diary_edit_filtered.Subfrm_healthdiary_edit_record.Form.ID&」 )「 CurrentDb.Execute SQL_Txt,dbFailOnError' – Darklantern

+0

當我嘗試你的第一個腳本 - 」沒有找到方法或數據方法。「 – Darklantern

相關問題