アプリ版:「スタンプのみでお礼する」機能のリリースについて

名前を入力してその人のデータを抽出したい。パスワードが空欄のときメッセージを表示させコントロールソースを変更したいのですが、できません。どなたかアドバイスお願いします
If (Forms![名前検索]![SUB_名前検索]![職員アカウント.職員番号].Value = "") Then
↑これが認識しません。「NULL」でやってもだめです。

以下がソースです。

Private Sub cmd検索_Click()

Forms![名前検索]![SUB_名前検索].Requery

If DCount("[使用者氏名]", "q_リンク名前抽出") = 0 Then
MsgBox "データがありませんよ"
Me.txt名前入力.SetFocus
End If

If (Forms![名前検索]![SUB_名前検索]![職員アカウント.職員番号].Value = "") Then
MsgBox "から"
Forms![名前検索]![SUB_名前検索]![職員アカウント.職員番号].ControlSource = "入力データフォーマットV8新人.職員番号"
End If

A 回答 (4件)

="" =NULL の命令はあんまり 機能発揮しないことがありますからね


ISNULL 関数を使うほうがいいと思います

Forms![名前検索]![SUB_名前検索]![職員アカウント.職員番号]
をどこか1次的な 項目へ入れて
DIM KOMOKU-1 AS VARIANT

KOMOKU-1=Forms![名前検索]![SUB_名前検索]![職員アカウント.職員番号]
IF ISNULL(KOMOKU-1) THEN
MsgBox "から"
ENDIF

---------------------------------------------------------
あと 気づいた点は
サブフォームの中の項目指定は
[Forms]![フォーム名]![サブフォーム名].[Field名]
でいいんじゃないでしょうか
Value はなくてもいい???
    • good
    • 0

If (Nz(Forms![名前検索]![SUB_名前検索]![職員アカウント.職員番号].Value) = "") Then



ではどうでしょうか?
NzでNull値をNullでない空の値(変数の型によって0または""またはその他)を返してくれます。
    • good
    • 0

#1さんの回答で、ほぼ終了だと思うけど・・・



補足で、Nullは、型でもあり、値でもあると言うことで、=は、代入の意味でしか使用できません
等号演算としての=はNullは、使用できないんですよ

Nullを検出するならIsNull関数か? Is 演算子を使用することになります
どっちが楽かといえば、IsNull関数の方が楽かな?

Valueは、Vriant型で、文字の場合、Vriant/String型、空白の場合、Variant/Null型と、型が変更になってたと思うよ
    • good
    • 0

X If (Forms![名前検索]![SUB_名前検索]![職員アカウント.職員番号].Value = "") Then


O IF Not Len(Forms![名前検索]![SUB_名前検索]![職員アカウント.職員番号] & "") Then

は、判るんですが、メイン・サブフォームの関係では使えないと思います。
だって、サブフォームですから複数行が発生していると思います。

部門:

ID_部門
_1_A
_2_B

職員名簿:

部門_ID__ID__職員名
______1___1__OOOO
______1___2________

このサブフォームの部門=1、職員名簿.ID=2 が空とのメッセージを出す場合は・・・。
こんな難しいことは私はしないです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!