2014-08-31 64 views
0

我正在創建一個帶有界面的數據庫,用於跟蹤學校的學生數據。在添加到MS Access中的導航窗體時刪除子窗體上參數的提示

我遇到的一個特殊問題是修改學生數據的表單,特別是顯示學生被分配到的班級的子表單。的形式(具有子形式)如下所示(紅色箭頭指示子形式):

modify student with sub-form

子形式從使用從主模中的參數(在查詢獲取其數據MIS_ID字段)。查詢如下:

SELECT classes.classCode, subjects.subjectCode 
FROM (subjects INNER JOIN classes ON subjects.[subjectID] = classes.[subjectID]) 
INNER JOIN studentClasses ON classes.[classID] = studentClasses.[classID] 
WHERE (((studentClasses.MIS_ID)=[Forms]![modifyStudent]![MIS_ID])); 

這一切工作正常,直到我將此表單添加到導航窗體選項卡。一旦我這樣做,當我嘗試打開導航形式,我得到以下提示:當我剛打開主修改學生的形式

prompt for parameter

此提示不會出現。另外,奇怪的是,如果我先打開修改學生表單,然後打開導航表單 - 則不會出現提示。

如何防止Access顯示此提示。我的MS訪問技能不是很好,所以簡單的解釋會有所幫助。

謝謝!

+1

是否查詢總是變化?如果不是,你爲什麼不把它作爲沒有where子句的標準查詢,通過 LinkMasterField,LinkChildField綁定主窗體和子窗體.. – 2014-09-01 10:11:01

回答

0

只是爲了回答你的問題「爲什麼這不能用於導航形式」 導航控件有一個「導航變形」控件,你的表單將被加載。這意味着您的主窗體(modifyStudent)被加載到「NavigationSubform」窗體控件中,因此無法訪問原始窗體名稱(ModifyStudent)。

從您的子窗體訪問父值,你既可以使用

me.parent!field.value 

NavigationForm.NavigationSubform.field.value 

或者只是綁定使用linkMasterFiled和linkChildField主機和子女的形式。

OR 如果你真的想構造SQL: 做在子form_onOpen事件,並將其分配給me.recordSource 這種方式,您可以訪問me.Parent.Field.value

+0

感謝您的支持!對於第一個響應 - 綁定主表單和子表單 - 解決了我的具體問題。 你的第二個迴應,將SQL放到form_open事件中,幫助我處理後續問題。 – Tristan 2014-09-02 23:14:37