2017-08-08 14 views
0

我用下面的代碼打開一個特定的記錄或添加數據模式的形式:訪問開放的形式並不瞭解進口場

Private Sub Open_Click() 

    Dim recordID As Integer 

    recordID = Me.ID 
    'Debug.Print Me.ID 
    'Stop 
    If Me.ID <> "" Then 
     DoCmd.OpenForm "Add Task", acNormal, , "ID=" & recordID, acFormEdit 
    Else 
     DoCmd.OpenForm "Add Task", acNormal, , , acFormAdd 
    End If 

End Sub 

即使訪問了解並打印我的ID,它就會失敗打開該記錄的表格。只有當我通過從Excel導入它們來添加記錄時纔會發生這種情況

你能幫忙嗎?

回答

0

Me.ID是一個整數,並將其與字符串進行比較。這觸發了Option Explicit上的類型不匹配運行時錯誤,但僅返回Null,並且Option Explicit已關閉,在If語句中將其視爲False

請加Option Explicit,尊重數據類型(瞭解Explicit選項here

正確的代碼:

Private Sub Open_Click() 

    Dim recordID As Integer 

    If Not IsNull(Me.ID) Then 
     'Note that IsNull(RecordID) would always return true, as integers can't be Null. 
     recordID = Me.ID 
     DoCmd.OpenForm "Add Task", acNormal, , "ID=" & recordID, acFormEdit 
    Else 
     DoCmd.OpenForm "Add Task", acNormal, , , acFormAdd 
    End If 

End Sub