外出自粛中でも楽しく過ごす!QAまとめ>>

Access初心者です。

フォームで入力時に重複データを入力した場合
エラーメッセージとして受け付けないようにしたいのですが、もっとも簡単な方法を教えてください。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

No.3です。



> このときにエラーメッセージを出すのは難しいのですかね?

テーブルでの入力・編集には対応できなくなりますが、フォームからの入力・編集に
限定してよいのでしたら、対応法は幾つかあると思います。

No.1の方の回答にあるように、更新前イベントにチェック機能を組み込むのも手ですが、
「マクロやVBAはちょっと・・・」と思われるのでしたら、『入力規則』を設定してやるのが
簡単だと思います。
(但し、複数フィールドの組み合わせで重複チェックを行う場合は、ややこしくなります;
 従って、今回はそちらの説明は割愛させていただきます)

○『入力規則』と『エラーメッセージ』の設定方法;
 1)フォームをデザインビューで開く
 2)重複チェックを行うコントロール(テキストボックス等)をダブルクリックして、
  そのコントロールのプロパティシートを開く
 3)プロパティシートの『データ』タブをクリック
 4)『入力規則』欄に「Dcount("*","テーブル1","[ID]=[TB_ID]")=0」と入力
 5)『エラーメッセージ』欄に、出させたいメッセージを入力
  (改行を入れて複数行にしたい場合は、Shift+Enterキーを押します)
 6)フォームを保存
・・・以上です。

なお、
 ・重複チェックを行うテーブル=「テーブル1」
 ・重複チェックを行いたいフィールドの名前=「ID」
 ・「ID」を表示させるためのテキストボックス=「TB_ID」
  (「TB_ID」テキストボックスの『コントロールソース』=「ID」)
として説明しています。
実際のテーブル名・フィールド名・コントロール名に合わせて、「テーブル1」
「ID」、「TB_ID」の部分を変更して下さい。


上記の設定をすると、重複データを入力した場合にはメッセージが表示され、
重複しないデータを入力し直すか、Escキーを押して入力を取り消さない限り、
他のコントロールに移動したりデータを保存したりすることができなくなります。
    • good
    • 3

もし、1フィールドでの重複を判定したいということでしたら、No.1,2の方が回答されている


『インデックス』ダイアログボックスを表示させなくても、設定は可能です。
(「複数フィールドの組み合わせで判定したい」「設定したインデックスを一覧的に確認したい」
 という場合は、同ダイアログを表示させた方が便利ですが)


○1フィールドで重複したデータを受け付けないようにしたい場合;
 1)テーブルをデザインビューで開く
 2)重複させたくないフィールドにカーソルを移動
 3)画面左下の『インデックス』を、「はい(重複なし)」に設定
 4)テーブルを保存
 ・・・以上です。
 なお、すぐ上の『値要求』を使えば、『インデックス』とは無関係に、空白(Null)を許可
 するかどうかを設定できます。

○2つ以上のフィールドの組み合わせでの重複を避けたい場合;
  (「ID」と「サブID」の組み合わせでデータを管理する場合など)
 1)テーブルをデザインビューで開く
 2)メニューで「表示(V)→インデックス(I)」を選択
 3)『インデックス:○○』ダイアログボックスの『インデックス名』欄に
  適当な名前を入力し、組み合わせの対象となるフィールド群を
  『フィールド名』欄に設定
 4)『インデックス名』を入力した行にカーソルを移動
 5)ダイアログボックスの左下にある『固有』欄に「はい」を設定
 6)テーブルを保存
 ・・・以上です。
 『Null無視』により、上と同様、空白(Null)を許可するかどうかを、『固有』の設定に
 関係なく指定できます。
    • good
    • 0
この回答へのお礼

ありがとうございます。
早速やってみましたら入力はでき、レコード保存時に
リレーションシップなんたらというメッセージで
重複を防いでいるのですね。
このときにエラーメッセージを出すのは難しいのですかね?
何も知らなくてすみません。
よろしくお願いいたします。

お礼日時:2006/11/08 18:06

#1です。


ツールバーの主キー(鍵型のアイコン)の隣に
インデックス(稲妻のアイコン)があります。
これで主キー以外に固有のインデックスが作れます。
    • good
    • 0
この回答へのお礼

ありがとうございます。
早速試しましたら、#3さんと同じメッセージが出るのですね。
やはり”同じ名前は入力できません”エラーメッセージを出すのはむずかしいのでしょうか?
VBAとかいうのを使うのでしょうか?

お礼日時:2006/11/08 18:10

元のテーブルで、固有のキーとして登録すれば重複の登録は出来ませんが...


ただ、上記の指定をした場合、空白は許されなくなりますので注意してください。

上記以外だと、そのフィールドの更新前イベントで
DCOUNT関数を使って、結果が0でなければメッセージを表示させて元の値に戻すとか?
    • good
    • 0
この回答へのお礼

ありがとうございます。
"固有のキー"というのは、主キーのことですか?
主キーは、他のフィールドにしているので
具体的にはどうすればよいでしょうか?
初心者過ぎてすみませんが教えてください。

お礼日時:2006/11/08 12:10

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAccessで重複データを入力できないようにしたい。

Access初心者です。

重複データを入力した際、任意のメッセージを表示して入力をできないようにしたいと考えています。
具体的には、
テーブル1に、「姓」「名」「勤務先」があり、
クエリ1をもとにフォーム1が「姓」「名」「勤務先」のテキストボックスを持っています。
フォーム上で「姓」と「名」を入力した際、「姓」&「名」が重複した場合(同姓同名の場合)に、他のコントロールへの移動やデータ保存ができないようにするにはどうしたらいいでしょうか。
できれば、マクロやVBAを使わずに済ませたいと思いますが、簡単な方法をご存知の方、教えていただければ幸いです。

よろしくお願いいたします。

Aベストアンサー

横レス失礼致します。

> テキストボックスの入力規則欄に「DCount("*","テーブル1"," [テーブル1]![姓]=[姓]")=0」と入力

「"」(ダブルクォーテーション)内に入れた「姓」はテーブル1のフィールドとして判断されてしまうため、
上記の式では意図した動作にはならないものと思います。
(姓がNullでないレコードが1件以上あった時点で、何を入力しても入力規則違反?)
とりあえず、フォーム上の入力/編集で『姓』の重複を一切認めない、とする場合の入力規則欄の
式は以下のようになります:

DCount("*","テーブル1","[ID]<>" & [ID] & " And [姓]='" & [姓] & "'")=0

『ID』は、レコードを一意に特定できるフィールド(→主キーなど)で、数値型を想定しています。
これを追加しておかないと、「既存データを間違えて上書きしかけたため、同じ姓を入力し直そうと
した」ときに、DCount関数の戻り値が「1」となり、弾かれてしまうことになります。
(新規追加時や、一旦別の姓で上書保存してから元に戻した場合は、弾かれませんが)
※上記の式は、テキストボックス名とフィールド名が同一という前提です。

なお、データ型がテキスト型と推測される『姓』についての条件式では、右辺に相当する部分が
「'」(シングルクォーテーション)で括られる形になっていること、また「And」の前後に半角スペースが
入っていることに注意してください。
(『「"」「 」(スペース)、「And」、「 」、「[姓]」、「=」、「'」、「"」』と、『「"」、「'」、「"」』の塊の部分)
さらに(注釈が多くて恐縮ですが)、IDは必ず『姓』『名』よりも先に入力しておく必要があります。
(DMax+1で既定値を設定するか、フォームの挿入前イベントで代入するのがよいかと思います)


姓と名が別フィールドで同姓同名を不可とする場合は、『姓』と『名』のテキストボックスの双方で、
入力規則の式を以下のように設定します:

DCount("*","テーブル1","[ID]<>" & [ID] & " And [姓]='" & [姓] & "' And [名]='" & [名] & "'")=0

・・・以上です。
「'」は全部で4つ(→「[姓]」と「[名]」をそれぞれ括る)あるなど複雑ですが、間違いなく入力して下さい。

横レス失礼致します。

> テキストボックスの入力規則欄に「DCount("*","テーブル1"," [テーブル1]![姓]=[姓]")=0」と入力

「"」(ダブルクォーテーション)内に入れた「姓」はテーブル1のフィールドとして判断されてしまうため、
上記の式では意図した動作にはならないものと思います。
(姓がNullでないレコードが1件以上あった時点で、何を入力しても入力規則違反?)
とりあえず、フォーム上の入力/編集で『姓』の重複を一切認めない、とする場合の入力規則欄の
式は以下のようになります:

DCount("*...続きを読む

QACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ

ACCESSで空白のデーターをクエリで判定/識別する方法を教えてください。
EXCELでは空白を""で判定/識別表していますがACCESSではどうなるのでしょうか。

下の例はフィールドに試験番号があればその番号を、空白なら”欠席”と表示しようとしています。
IIf(([試験番号]="空白の場合何を入れる?"),[試験番号],"欠席")

Aベストアンサー

もうひとつの書き方は
式1: IIf([試験番号] Is Not Null,[試験番号],"欠席")
第2、第3引数の、質問の順序にあわせるとこうなる。

QAccessのRefresh・Requery・Repaintの違い

Requeryはもう一度ソースレコード(テーブル)を読み込むようです。このとき、テーブルの先頭レコードに移動してしまいます。
Refreshは最新のレコード(テーブル)を再表示するような気がします。レコードの移動は起こらない気がします。
Repaintは、VBAでキャプションなどを変更したとき使っています。
でも、よくわかっていません。
どんなときにどんなメソッドを使えばいいのでしょうか?
詳しい方、よろしくお願いいたします。

Aベストアンサー

たびたびすみません。
調べてたらこんなのがでてきました。
http://www.nurs.or.jp/~ppoy/access/access/acF007.html

参考URL:http://www.nurs.or.jp/~ppoy/access/access/acF007.html

QACCESSでフォームを使って、テーブルを参照、データ入力、データ更新をしたいのです

フォームを使って、テーブルを参照、データ入力、データ更新をしたいのです。

売上テーブル

 ID   商品コード  日付    金額 
 1    G1     20080101  532153
 2    G1     20080101  564281
 3    G1     20080301  538123
 4    J4     20080301  124531
 5    J4     20080302  125483

ID:オートナンバー 商品コード:数値型 日付:数値型 金額:数値型

これを使い、
フォームではまず

レコードナンバーを入力画面
       ↓
レコード番号を入れると、そのレコードのデーターが画面に表示され、
その画面で修正可能
       ↓
 保存 ボタンで保存

という流れです。

レコードナンバーはIDを使おうと思っています。

データの量が莫大な為、コンポボックスなどは使えません。

できるだけ、VBAなどは使わずに作りたいです。

よろしくお願い致します。

フォームを使って、テーブルを参照、データ入力、データ更新をしたいのです。

売上テーブル

 ID   商品コード  日付    金額 
 1    G1     20080101  532153
 2    G1     20080101  564281
 3    G1     20080301  538123
 4    J4     20080301  124531
 5    J4     20080302  125483

ID:オートナンバー 商品コード:数値型 日付:数値型 金額:数値型

これを使い、
フォームではまず

レコードナンバーを入...続きを読む

Aベストアンサー

まずそのテーブルを基にしてフォームを作成します。
そのフォームのヘッダー部分にテキストボックスを配置後、一旦
上書き保存。
フォームのレコードソースを
SELECT *
FROM テーブル名 WHERE ID=[Forms]![フォーム名]![テキストボックス名]
とします。
次にテキストボックスの更新後処理に
Me.Requery
とすれば完成です。
フォームを開いてテキストボックスにID入力後エンターしてください。

保存に関しては、コマンドボタン作成後クリック時イベントに
DoCmd.RunCommand acCmdSaveRecord
とすれば良いでしょう。

この手のモノは検索すれば相当数ヒットするので、そちらを参考にされるのもよろしいかと。

QAccessで別テーブルの値をフォームに表示したい

初めてのAccessで分からない事があり質問させてください。

<会社テーブル>
会社ID
会社名
住所

<社員テーブル>
会社ID
社員名
ソート番号

*1社に対し複数の社員レコードが存在

以上のようなテーブルがあるとします

現在「会社テーブル」を表形式で一覧表示しています
会社ID,会社名、住所とフィールドが並んでいるのですが、その後ろに「社員テーブル」のソート番号が一番若い社員名を表示したいと考えています(現状は番号関係なく表示させる方法すら分かりません)

色々いじくりまわしたのですが、初めてAccessをさわる事もあってよくわかりません

リレーション等でひっぱってくる事ができるのでしょうか?

どなたか教えて頂けませんでしょうか

何卒よろしくお願い致します

PS.Access2013で作成中です

Aベストアンサー

単純にテーブル[会社]のみでフォームを作成し、社員表示用テキストボックスを追加。そして、そのプロパティを表示し

コントロールソース=DBLookup("SELECT 社員名 FROM 社員 WHERE 会社ID=" & [会社ID] & " ORDER BY ソート番号")

これは、以下の標準モジュールに登録したユーザ関数 DBLookup()を使っています。これで、クエリを用意しなくても目的を達成できます。

さて、かかるユーザ関数を標準ライブラリに登録したくない場合、

1、"社員ソートクエリ"を作成します。

SELECT 社員.会社ID, 社員.社員名
FROM 社員
ORDER BY 社員.ソート番号;

2、コントロールソースに次のように書きます。

=DLookUp("社員名","社員ソートクエリ","会社ID=" & [会社ID])

http://office.microsoft.com/ja-jp/access-help/HA001228825.aspx

DLookup()については、マイクロソフトの解説を参照されてください。

【DLookup()の限界を破るにはVBAで同じ関数を作るしかない】

マイクロソフトの解説を読めば判りますが、ORDER BY 節を指定する引数が用意されていません。ですから、どうしても、"社員ソートクエリ"を作成するという手間が必要となります。そこで、SQL文を引数とするDBLookup()をVBAで書けば、その手間を省けるという算段になります。この辺りは、好みと趣味の問題。どっちでも良いと思います。そういうお断りをした上で DBLookup()を紹介しておきます。なお、ADOは、つぎのように参照設定しないと利用できません。

http://www.happy2-island.com/access/gogo03/capter00307.shtml

Public Function DBLookup(ByVal strQuerySQL As String, _
             Optional ByVal ReturnValue = Null) As Variant
On Error GoTo Err_DBLookup
  Dim DataValue
  Dim rst     As ADODB.Recordset

  Set rst = New ADODB.Recordset
  With rst
    .Open strQuerySQL, _
       CurrentProject.Connection, _
       adOpenStatic, _
       adLockReadOnly
    If Not .BOF Then
      .MoveFirst
      DataValue = .Fields(0)
    End If
  End With
Exit_DBLookup:
On Error Resume Next
  rst.Close
  Set rst = Nothing
  DBLookup = IIf(Len(DataValue & ""), DataValue, ReturnValue)
  Exit Function
Err_DBLookup:
  MsgBox "SELECT 文の実行時にエラーが発生しました。(DBLookup)" & Chr$(13) & Chr$(13) & _
      "・Err.Description=" & Err.Description & Chr$(13) & _
      "・SQL Text=" & strQuerySQL, _
      vbExclamation, " 関数エラーメッセージ"
  Resume Exit_DBLookup
End Function

単純にテーブル[会社]のみでフォームを作成し、社員表示用テキストボックスを追加。そして、そのプロパティを表示し

コントロールソース=DBLookup("SELECT 社員名 FROM 社員 WHERE 会社ID=" & [会社ID] & " ORDER BY ソート番号")

これは、以下の標準モジュールに登録したユーザ関数 DBLookup()を使っています。これで、クエリを用意しなくても目的を達成できます。

さて、かかるユーザ関数を標準ライブラリに登録したくない場合、

1、"社員ソートクエリ"を作成します。

SELECT 社員.会社ID, 社員.社員名
FR...続きを読む

Qアクセス関数を使って、重複チェック

アクセス2003を使っています。
ある講座の受講者のデータが入っているデータベースを作ろうと考えています。
その講座には受講者が実際に重複して受講する人がいます。
重複して受講しているかどうかを、「選択クエリ上の関数」を使って調べたいです。

具体的には
 氏名  受講月
山田太郎 2009/1
佐藤一郎 2009/2
山田次郎 2009/3
佐藤一郎 2009/4
というデータベースがあり、佐藤一郎が重複しています。(受講月は重複していません)
これをクエリを使って、
 氏名  受講月
山田太郎 2009/1
佐藤一郎 2009/2 重複
山田次郎 2009/3
佐藤一郎 2009/4 重複
というクエリを作りたいです。

どうすれば良いでしょうか?

Aベストアンサー

DCount 関数
http://office.microsoft.com/ja-jp/access/HA012288171041.aspx

> 重複:DCount("氏名","テーブル")

重複:DCount("*", "テーブル名", "氏名 = '" & [氏名] & "'")

こう言う事でしょ?
サンプルから、どう使うものか、予測できないと、先々覚えていくのが辛いよ

QACCESS IIF関数 複数条件の設定について

 選択クエリにおいて、あるフィールド「 X」 のレコード数値が
 
  0<[X]<=50   であれば A 
  50<[X]<=100  であれば B 
  100<[X]<=150  であれば C

 と表記させるフィールド「Y」を追加したいと考えています。
 この場合、Yのフィールド設定で指定する数式についてご教授願います。

 一応、
  IIf(0<[X]<=50,"A","") Or IIf(50<[X]<=100,"B","") Or IIf(100<[X]<=150,"C","")

  としましたが、実行すると、Yの列がすべて「-1」と表記されてしまいます。

 何卒よろしくお願いいたします。

Aベストアンサー

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A", [X]<=100, "B", [X]<=150, "C", True, "")


なお、数学あるいは一般生活では確かに「0<[X]<=50」という表記をしますが、
Accessの関数などではこれだと正しい結果が得られません。
正しく認識させるためには、等号・不等号を挟んだ式は、「左辺」と「右辺」の
2つの要素からなる形にする必要があります。
(「0<[X]<=50」は「[X]>0 And [X]>=50」と分割してやる、と)

但し、今回のご質問のような『連続した範囲』であれば、前(左)で既出となる
式の要素で「[X]<=0」が「真(=-1)」とならなかった時点で、「[X]>0」が保証
されますので、上記のように、「[X]>0」を省略して「[X]<=50」だけを条件として
指定すればOk、ということになります。
(「0<[X]<=50」の次が「80<[X]<120」などのように、「50~80」が欠けた
 場合は、省略ができない、と)


【参考】
「0<[X]<=50」は、このままだと「0 < ([X]<=50)」という式と解釈されます。
この場合、「[X]<=50」は、「真(=-1)」か「偽(=0)」か「Null」のいずれかに
なります。
何にせよ、「0<[X]<=50」全体として「正(=-1)」となることがないため、
ご質問の式では、IIF関数は常に第3引数に指定された値「""」を返す
ことになります。

この結果、式全体としては「"" Or "" Or ""」という形となり、「0かNull」
以外なので、「真(=-1)」という値が返された、ということです。

なお、Nullについては、以前、他の方の質問につけた回答も、併せて参考までに:
http://oshiete.goo.ne.jp/qa/4850675.html

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A"...続きを読む

Qaccess ダブリ登録を防止したい

 ダブリ入力を防止したいのです。一作業で大量に入力するので、ダブリ入力をしたらその場でダブったことを知らせる警告文を表示させたいと思っています。
 入力はフォームのデータシートビューのコントロール(テキストボックス)に入力させてます。このフォームのレコードソースはテーブルです。

 コントロール(テキストボックス)の更新後処理としてやっているのですが、うまくいきません。
 重複クエリ・ウィザードでレコードソースであるテーブルそのものを参照して、Dcountで2以上を返したら警告文を表示、としましたが、うまくいきません。クエリ結果とDcountの数がなぜか一致しません。

 いま行き詰まってます。よろしくご教授ねがいます。

Aベストアンサー

インデックスの設定で解決していれば蛇足ですが・・・

インデックスを指定した場合、エラーが出るのはコントロールの入力時ではなく、レコードの登録時になります。

入力時に、即メッセージを表示したいなら、コントロールで処理すべきだと思います。

例:入力規則を設定
コントロールのプロパティ、データ→入力規則

DCount("*","テーブル名","フィールド名='" & [Forms]![フォーム名]![フィールド名] & "'")=0

現在のレコードはまだ保存されていないので、=0 です。


例:イベントで処理
Private Sub フィールド名_BeforeUpdate(Cancel As Integer)
If DCount("*", "テーブル名", "フィールド名='" & Me![フィールド名] & "'") >=1 Then
MsgBox "重複しています。"
Cancel = True
End If
End Sub

現在のレコードはまだ保存されていないので、>=1 です。
更新後処理ではなく、更新前処理の方が適しています(キャンセルできるので)。


>Dcountで2以上を返したら警告文を表示、としましたが、うまくいきません。

現在のレコードはまだ保存されていませんので、1以上でエラーにすべきだと思います。

インデックスの設定で解決していれば蛇足ですが・・・

インデックスを指定した場合、エラーが出るのはコントロールの入力時ではなく、レコードの登録時になります。

入力時に、即メッセージを表示したいなら、コントロールで処理すべきだと思います。

例:入力規則を設定
コントロールのプロパティ、データ→入力規則

DCount("*","テーブル名","フィールド名='" & [Forms]![フォーム名]![フィールド名] & "'")=0

現在のレコードはまだ保存されていないので、=0 です。


例:イベントで処理
Pr...続きを読む

QアクセスVBAのMe!と[ ]

基本的なことですみません。

アクセスのイベントプロシージャで、Me!ってありますけど、これはどういう意味なんでしょうか?

また、Me!の後に、Me!.~~と書く場合と、Me!.[~~]と書く場合がありますが、どこが違うのでしょうか?

Aベストアンサー

>プロシージャ内で[]を使う場合は、そのフォーム外のオブジェクトを使う場合と考えてよろしいでしょうか?
別のオブジェクトを使う場合だけではありません。
Hensu = Me![Text1]のようにHensuという変数に自身のTest1の値を代入する場合のように。
[]で括られているのがオブジェクト名やコントロール名だよという事。
クエリの抽出条件に存在しない[?]とすれば?というコントロール等が参照できないので?というダイアログが表示されるように?というオブジェクトやコントロールは何?と聞いてくるように。
>フォーム内のオブジェクトの場合はあくまでMe!で良いのでしょうか
Forms.[フォーム名]![コントロール名]やForms![フォーム名]![コントロール名]が構文。
アクティブなフォームが自分自身ならForms![フォーム名]の変わりにMeでもOKですという事。

と言う解釈の方が良いと思います。

QAccessテキストボックスの未入力チェック

いつも参考にさせて頂いております。
Accessテキストボックスの未入力チェックで上手くいかず悩んでいます。過去の情報等調べましたが、わかりませんでした。
どなたか宜しくお願い致します。

フォーム1にテキストボックス1、ボタン1があります。

テキストボックスを何も入力せず、Enter等で移動する時にチェックをかけたいです。
もし、テキストボックスに何も入力がなかったら、メッセージを出し、フォーカスをテキストボックスに戻す。
何か入力があれば、ボタンにフォーカスが移動する。

If IsNull(Me.テキストボックス1) = "" Then
msgbox "未入力です。"
Me.テキストボックス1.SetFocus
End If

宜しくお願い致します。

Aベストアンサー

テキストボックスのフォーカス喪失時に

Private Sub テキストボックス1_Exit(Cancel As Integer)

If IsNull(Me.テキストボックス1) = "" Then
msgbox "未入力です。"
Cancel = True
End If

End Sub

で、良さそうですが・・・


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング