1

Access 2010 のフォームに次のようなクリック イベントがあります。

Private Sub SaveRecord_Click()
     checkDataIntegrity(Me)
End Sub

は次checkDataIntegrityのように定義されます。

Function checkDataIntegrity(ByVal fForm As form) As Boolean

これはうまく機能します。ただし、別のクリック イベントがあります。

Private Sub LFS_Flashed_Successfully_Fail_Click()
     preventSimultaneousPassAndFail (Me)
End Sub

は次preventSimultaneousPassAndFailのように定義されます。

Function preventSimultaneousPassAndFail(ByVal fForm As form) As Boolean

このクリック イベントを呼び出すと、次のエラーが発生します。

Run-time error '13':
Type mismatch

ここで何が間違っていますか?どちらのイベント呼び出しも同じフォームで呼び出され、同じモジュールで関数を呼び出します。

4

2 に答える 2

0

関数の戻り値で何もしていないように見えるので、引数を括弧で囲まないでください。

'preventSimultaneousPassAndFail (Me)
preventSimultaneousPassAndFail Me

これは標準的な VBA の慣習です。残念ながら、あるケースではエラーが発生し、別のケースではエラーが発生しなかった理由を説明できません。したがって、この問題は問題に寄与しない可能性がありますが、除外するためにその変更を行うことをお勧めします.

これらの関数の詳細はわかりませんが、 のByRef代わりにフォーム オブジェクトを渡すことを検討することをお勧めしますByVal

于 2013-10-10T18:15:07.610 に答える