MSアクセスのいくつかのフォームで同じメッセージ(つまりエラーノート)を使用することが多いため、テーブル内のすべてのメッセージを整理し、機能:MsアクセスVBA - モジュール関数からMsgBoxでケースを選択
Public Function message(msg_name As String, Optional msg_type As VbMsgBoxStyle)
output = MsgBox DLookup("Msg_Text", "vba_msg", "Msg_Name='" & msg_name & "'"), _
msg_type, _
DLookup("Msg_Caption", "vba_msg", "Msg_Name='" & msg_name & "'")
プレーンでシンプルです。簡単な通知( "ouput ="と括弧はもちろんこのためには必要ありません)のためにうまく動作します。しかし、私のSelect Caseコンテキストでこれらのメッセージを使用することはできません。
Select Case message("test_message_name", vbYesNo)
Case vbYes
MsgBox "Yes"
Case vbNo
MsgBox "No"
End Select
「はい」を押しどちらも「いいえ」などとして認識されています。私は "Case Else"も定義しておけば回答が得られます。 私は1つ同じサブ以内に同じ手順を行うと、すべてが正常に動作します:
output = MsgBox DLookup("Msg_Text", "vba_msg", "Msg_Name='" & "test_message_name" & "'"), _
msg_type, _
DLookup("Msg_Caption", "vba_msg", "Msg_Name='" & "test_message_name" & "'")
Select Case output
Case vbYes
MsgBox "Yes"
Case vbNo
MsgBox "No"
End Select
私は何かが足りないのですか?
ああ、ほとんどあなたも命名で少し矛盾しているしている、忘れてしまった: 'オプションms_type'は' MSG_TYPE '後で' output'は決して宣言されません。これらのエラーをより簡単に発見するには、 'Option Explicit'をオンにしてください(両方でコンパイルエラーが発生します)。 –
ああ、ありがとう。 "ms_type"は実際にはタイプミスです。私はAccessからコピー貼り付けはしなかったが、もう一度コードを書いた。 –