Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


746 / 9994 ←次へ | 前へ→

【12557】Re:テキストボックスをダブルクリックで自動に番号を振る
回答  かるびの  - 14/6/4(水) 1:34 -

引用なし
パスワード
    VBAのコードを書くことになります。
 なお、マクロでもできると思いますが、私は、マクロは使ったことがないので、
よくわかりません。でも、考え方は、VBAの場合と同じだと思います。

>「番号」テキストボックスをダブルクリックしたとき
の処理を自動化するわけですから、
「番号」テキストボックスのダブルクリックイベントにコードを書きます。

>1.「種別」テキストボックスが空欄の場合
>または、
>2.「番号」テキストボックスに既に数値が入っている場合
>は、ダブルクリックしても番号が振られないようにもしたいです。
 If文により場合分けしてあげればいいです。
 
 上記の条件からすると、
「番号」テキストボックスにVBAにより自動で値を入力するのは、
   「種別」テキストボックスが空欄でなく、
   かつ、「番号」テキストボックスに数値が入っていない場合
となりますね。
 
 「空欄」というのは、ちょっとだけ厄介です。
 一般に、空欄であるとは、テキストボックスの値がNullである場合、
又は長さ0の文字列が入力されている場合を言います。
 だから、「空欄でない」ということは、
   テキストボックスの値がNullでなく、
   かつ、値が「""」でもない場合
ということになります。
 
 それからNullであるとか、Nullでないとかは、
「値=Null」という式では判定できません。
IsNull関数を使う必要があります。

 「『番号』テキストボックスに既に数値が入っている場合」をどう考えるかですが、
最も単純にはIsNull関数を使うことになりますね。
 「番号」テキストボックスに文字列が入っていてはだめだ
ということを強調したければ、
IsNumeric関数を使って、「番号」テキストボックスに入力されている値が
数値として使える文字列かどうかを判定します。
 なお、テーブル1の「番号」フィールドが数値型であり、かつ、
「番号」テキストボックスが連結コントロールであれば、
そもそも「番号」テキストボックスには、文字列は入力できませんけどね。

>「みかん」の番号の最大値
は、DMax関数を使います。
 この関数の第3引数の書き方にはクセがあるので、注意してください。
 第3引数の書き方の基本は、「フィールド名=値」ですが、
「フィールド名」のフィールドがテキスト型の場合、値をダブルコーテーションで囲みます。
   フィールド名="太郎"
 そのフィールドが日付・時刻型の場合は、#で値を囲みます。
   フィールド名=#2014/06/03#
 そのフィールドが数値型の場合は、何も囲みません。
   フィールド名=234 

 以上をコード化するだけです。
244 hits

【12555】テキストボックスをダブルクリックで自動に番号を振る ガッツだぜ! 14/6/3(火) 21:54 質問[未読]
【12557】Re:テキストボックスをダブルクリックで自... かるびの 14/6/4(水) 1:34 回答[未読]
【12558】Re:テキストボックスをダブルクリックで自... ガッツだぜ! 14/6/4(水) 7:22 質問[未読]
【12562】Re:テキストボックスをダブルクリックで自... かるびの 14/6/6(金) 0:48 回答[未読]
【12565】Re:テキストボックスをダブルクリックで自... マルチネス 14/6/15(日) 7:35 発言[未読]

746 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078191
(SS)C-BOARD v3.8 is Free