バーコードリーダーは「コード検索」テキストボックスにコードを読み込んだあと、Tabキーを送信する仕様です。
ですので、バーコードリーダーを1回クリックすると、「コマンド24」ボタンにフォーカスが移動し、
「コード検索」のLostFocusイベントで、「コマンド24」をクリックさせる。
クリックさせることによってPDF表示させて「コード検索」に戻すという動作になります。
読み込み前は「コード検索」にフォーカス、読み込み後も最終的には「コード検索」にフォーカスといういことですよね。
ひょっとするとCall コマンド24_Clickはコマンド24にフォーカスがないと有効でないと勘違いしているのかな?
Call コマンド24_Clickはコマンド24にフォーカスがなくても実行されます。
前の回答でもいいましたが、LostFocusイベント内で「コード検索」に戻すことはできません。
繰り返しになりますが質問のコードだと詳細に説明すると下記のような動作になります。
コード検索_LostFocusイベント発生(コード検索にフォーカスがある状態)
Call コマンド24_Click実行
「WEBブラウザ」にPDF表示
[Forms]![フォーム1]![コード検索].SetFocus
↑この時点ではコード検索にフォーカスがある状態なので無意味なコマンド
コード検索_LostFocusイベント終了後
Tabキーの動作により次のコントロール(コマンド24)にフォーカス移動
つまり、LostFocusイベント内でSetFocusを実行しても無意味ということです。
そして、最終的に「コード検索」にフォーカスがある状態にしたいのなら、Exitイベント(フォーカス喪失時)でイベントをキャンセルします。
とりあえず下記のコードで想定の動作になりませんか。
Option Compare Database
Option Explicit
Dim コード検索更新 As Boolean
Private Sub コード検索_AfterUpdate()
Debug.Print コード検索.Value
コード検索更新 = True
End Sub
Private Sub コード検索_Exit(Cancel As Integer)
'更新されていて、かつ、12桁の数字(JANコードを想定)になっている
If コード検索更新 = True And Me.コード検索.Text Like "############" Then
Cancel = True 'イベントのキャンセル
Call コマンド24_Click
End If
コード検索更新 = False
End Sub
Private Sub コマンド24_Click()
'以下略
バーコードリーダーは利用したことがないのであくまで想像で書いたコードですので想定の動作になるかは分かりません。
また、12桁のJANコードという想定が書いていますので、実際のコードの仕様に合わせて変更してください。
通報 ...