|
横から失礼。
DFirstには、下記の技術情報が出ています。
http://support.microsoft.com/kb/208190/ja
DFirstでの取得で正しいのかどうかは、質問者が判断して下さい。
また、
>Function TEST001()
については、下記のようにすべきかと。
(同じDLoookupを繰り返すのは処理が遅くなるだけなので、
1回処理した結果は変数等に格納し、2度手間かけさせないようにすべき。)
Function TEST001()
Dim wk_Dfirst_1 AS String, wk_Dfirst_2 AS String
wk_Dfirst_1 = Nz(DFirst("ModelNo", "M1"), "")
wk_Dfirst_2 = Nz(DFirst("ModelNo", "M2"), "")
If wk_Dfirst_1 = "あ" And wk_Dfirst_2 = "い" Then
MsgBox "M1、M2正解"
ElseIf wk_Dfirst_1 = "あ" Then
MsgBox "M1不正解"
ElseIf wk_Dfirst_2 = "い" Then
MsgBox "M2不正解"
End If
End Function
# 元コードではEnd Ifの後に、MsgBox "M2不正解"やってますよ。
1行でやらせたくても、M1、M2が正解の場合と、どちらかが不正解の
場合に出すメッセージパターンが違うので、現状の仕様では、同一には、
出来ません。
# 出来なくはないけど、結局、IFで3回チェックするのは変わりません。
# (1行に見えるだけで、結局は3回処理させるので)
MsgBox "M1:" & IIF(wk_Dfirst_1 = "あ","正解","不正解") & CHR(13) & _
"M2:" & IIF(wk_Dfirst_2 = "い","正解","不正解")
というように、正解の時に出すメッセージパターンと不正解の時に出す
メッセージパターンを同一にすれば可能かと。
|
|