1

次のコードがあります。

Dim IDfiltr As Long
IDfiltr = Forms!KONTROLA!ID_OS
DoCmd.OpenForm "OSOBA", acNormal, "", "", , acNormal
Forms!OSOBA.FilterOn = False
DoCmd.ApplyFilter "", "[Forms]![OSOBA]![ID_OS] Like " & IDfiltr

最後の行で、VBA 変数 IDfiltr を の式に置き換えようとしていますが、うまくいきDoCmd.ApplyFilterません。私もこれを試していました:

DoCmd.ApplyFilter "", "[Forms]![OSOBA]![ID_OS] Like IDfiltr"

しかし、それも機能しません。VB 変数 IDfiltr を式に代入するにはどうすればよいですか?

4

1 に答える 1

1

LIKE コマンドは文字列に対して機能します。また、これをコーディングして、文字列のどの部分と一致させたいかを LIKE コマンドに伝える必要があります。たとえば、Long 変数を文字列の先頭に一致させたいとします。

DoCmd.ApplyFilter "", "[Forms]![OSOBA]![ID_OS] Like '" & CStr(IDfiltr) & "*'"

したがって、フィールド [ID_OS] が文字列の場合、IDfiltr がフィールド [ID_OS] の先頭であるすべてのレコードに一致します。

私の答えは技術的には正しいですが、あなたは本当に何か他のことをしようとしているように感じます. [ID_OS] はおそらく Integer または Long であり、実際には他の結果が必要です。

于 2013-05-15T22:39:50.577 に答える