2013-03-12 45 views
1

我有一個主窗體,其中有一個組合框,我命名爲FLRecCombo。這是最初設置的,以便在組合框中選擇一個選項將移動到主窗體記錄源上的該記錄。基於窗體的組合框選擇(使用VBA)顯示子窗體上的記錄

然後,我還在主窗體上創建子窗體,當初始設置時,它們將根據主窗體當前使用公共字段的任何記錄源移動到其記錄源中的記錄(即,您可以使用組合框移動到所有子表單上的給定記錄)。

注意如何,這一切都是過去式......

我想添加一些代碼在VBA中FLRecCombo更新後事件;不幸的是,這似乎削減了組合框,主窗體和子窗體之間的關係。我認爲可能是在AfterUpdate事件中創建了一個宏,我通過遍歷代碼生成器大肆掠奪。

我該如何恢復最初的行爲?我試過了這個網站上建議的方法;這裏的對象引用:

  • 表單名稱:Finance_FunderAllocation子窗體
  • 子窗體記錄源:Finance_HeadRec_FunderAllocation
  • 子窗體的記錄源字段名稱相匹配:資金線
  • 形式記錄源字段名稱匹配:FundingLine

下面是我試過的代碼:

Private Sub FLRecCombo_AfterUpdate() 

    With Me.[Finance_FunderAllocation subform].Form.Recordset 
     .FindFirst "Funding Line=" & Me.FLRecCombo 
    End With 

End Sub 

訪問調試器不會雖然喜歡這個,他說:

運行時錯誤 '3077':

語法錯誤(表達式中缺少運算符)。

然後它突出的代碼開始.FindFirst

任何幫助,將不勝感激行!

回答

1

這應該閱讀:

.FindFirst "[Funding Line]=" & Me.FLRecCombo 

或者可能,如果資金行文字:

.FindFirst "[Funding Line]='" & Me.FLRecCombo & "'" 

,因爲你必須在你的領域名稱空間您需要的方括號。爲了你自己,考慮擺脫表和字段名稱中的所有空格。

最後,對於子表單,您可以使用鏈接子字段和主字段做很多事情,包括在沒有任何代碼的情況下過濾子表單的內容。

Link Master Fields: MyCombo 
Link Child Fields : [Funding Line] 
+0

非常感謝。我曾用方括號試過,但得到了相同的結果。因爲它是一個文本字段,您在那裏給我的第二個代碼清除了錯誤。不幸的是,雖然錯誤消失了,但代碼似乎並沒有在子表單上移動記錄。我查看了** Link Master Fields **和** Link Child Fields ** ...這些對我來說似乎沒有問題(Master = FundingLine和Child = Funding Line。還有什麼我可以嘗試的? – 2013-03-12 17:51:39

+0

如果你將鏈接主字段設置爲組合框的名稱,而不是字段名稱,因爲您在組合框中選擇每一行時,子表單的內容將會改變。 – Fionnuala 2013-03-12 17:57:11

+0

感謝您對主/子屬性的編輯;這已經完成了。 – 2013-03-12 17:58:52

相關問題