2017-08-08 4 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がオンの型不一致実行時エラーが発生しますが、はOption Explicitとなり、If文ではFalseと表示されます。

Option 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 
関連する問題