2010-05-17 27 views
1

我有這樣的代碼:OpenArgs問題在Access

Dim strResponses As String 
strResponses = Forms!frmResponses.QstnID.OpenArgs 
If Len(strResponses) > 0 Then 
    Me![QstnID].DefaultValue = Me.OpenArgs 
    End If 

當我運行它,它給了錯誤438人能幫我知道那裏的錯誤是什麼?

+0

如果您告訴我們哪條線產生錯誤,您將得到更快的答案。事實上,如果你看到產生錯誤的那一行,你可能很容易就能自己找出答案,而不會在SO上發表任何問題。 – 2010-05-17 21:53:32

回答

1

當然應該是:

strResponses = Forms!frmResponses.OpenArgs 

或者

strResponses = Me.OpenArgs 

只有形式,而在最近的版本中,報告有OpenArgs財產,因此,我想,錯誤「對象沒有按不支持這個屬性或方法「。

0

是誤差438就行了發生的事情:

Me![QstnID].DefaultValue = Me.OpenArgs 

如果作爲一個測試,你可以嘗試設置Me![QstnID].DefaultValue別的東西會發生什麼?例如

Me![QstnID].DefaultValue=42 

那麼,問題是否確實連接到OpenArgs?

+0

我看不到Forms!frmResponses.QstnID.OpenArgs如何成爲正確的語法。 QstnID聽起來像一個控件,它不會有OpenArgs屬性。 – Fionnuala 2010-05-17 10:34:45

+0

@Remou,噢,我明白了。我想這個錯誤發生在Forms!frmResponses.QstnID.OpenArgs這一行上。 +1你的答案。但是,正如我所說的那樣,它確實知道錯誤在哪條線上。 – hawbsl 2010-05-17 10:37:43

0

知道上哪條線是你的錯誤,你可以做以下

  1. 創建labal的myError
  2. 添加「對錯誤轉到myError」條款
  3. 數你的代碼行
  4. 使用'erl'值來顯示錯誤的行號

您還可以使用MZ-Tools for VBA加載項,這可以對y執行此操作只需點擊幾次,一旦正確參數化即可。您也可以查看這個更完整的答案:ms-access-vba-and-error-handling