質問: rs!mojiB Exit Sub ``` 上記のようなコードを記述して、テキストAにTableAから抽出したmojiBを表示したいのですが、表示されません。 こちらもどうしたらよいのか教えて頂きたいです。
回答: ### 1.SetFocusについて 入力チェックは、通常は更新前処理のイベントで行います。 現状のコードだとエンターキーを押したときのみ入力チェックを行うようですが、 それでいいのでしょうか。 エンターキー以外のキー(矢印キーなど)やマウスクリックでフォーカス移動したときは、入力チェックせずに確定されてしまいますが。 もし、それでいいということなら、 ``` 'Enter押下時のチェック処理 ElseIf KeyCode = vbKeyReturn Then If Me.コンボ = 0 Then KeyCode = 0 MsgBox "エラー" End If End If ``` とすればエンターキーの入力をキャンセルできるので、カーソルは留まります。 `KeyCode = 0` がキー入力のキャンセルです。 ちなみに、エンターキー以外でも入力チェックを行いたい場合は、 ``` Private Sub コンボ_BeforeUpdate(Cancel As Integer) If Me.コンボ = 0 Then Cancel = True MsgBox "エラー" End If End Sub ``` `Cancel = True` で更新イベントがキャンセルされ、カーソルは留まります。 ### 2.Date型から数値型への変換について このテキストボックスは連結コントロールですか、非連結コントロールですか。 連結コントロールなら連結しているフィールドのデータ型はなんですか(数値型 or 日付/時刻型) 連結コントロールで、連結しているフィールドが数値型ということなら、 書式プロパティを、 0000\/00\/00 と設定するだけで希望の結果になります。 非連結でも同様の設定でOKです。 VBAは必要ありません。 ### 3.SQLで取得した値を画面に表示する場合(コードの記述で) コード自体は問題ないです。 SQLが正しくないか、条件に合致するレコードがないかのどちらかではないですか。 ``` Debug.Print mySQL 'SQLが正しいか確認 rs.Open mySQL, cn Debug.Print rs.RecordCount 'レコード件数の確認 ``` というようにデバッグコードを挿入してイミディエイトウィンドウで結果を確認してみてください。