質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

1回答

606閲覧

Accessで商品コードがない場合にバックの色を変えたい

d_neko

総合スコア108

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2020/12/05 04:57

Accessで商品コードを入力して、該当の商品コードがない場合、
入力した商品コードのバックカラーを赤色に変更したいです。

そこで、次のようにしてみました。

Private Sub txt商品コード_AfterUpdate() If "" = Nz(DLookup("[商品名]", "[商品]", "[商品コード]=Form![txt商品コード]"), "") Then [txt商品コード].BackColor = vbRed End If End Sub

でもできませんでした。
どうすればバックカラーを変更できるのでしょうか。
お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

比較する内容が文字列として埋め込まれて、値になっていないからだと思います。
以下のようにしてみて下さい。

VBA

1Private Sub txt商品コード_AfterUpdate() 2 If "" = Nz(DLookup("[商品名]", "[商品]", "[商品コード]='" & txt商品コード & "'")) Then 3 txt商品コード.BackColor = vbRed 4 End If 5End Sub

※商品コードが数値の場合は"'"での括りは不要です。

投稿2020/12/05 05:01

編集2020/12/05 05:54
sazi

総合スコア25327

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

d_neko

2020/12/05 05:21

回答ありがとうございます。 試してみましたが、色が変わりません。 「[txt商品コード].BackColor = vbRed 」この部分の処理はあっているでしょうか。 というのは、「txt商品名] = "Error"」を追記するとちゃんと「商品名」に「Error」が表示されます。 また、MsgBoxを入れても表示されるので、if部分は働いているようです。 だから、バックカラーを指定の方法が間違っているのではないかとおもっています。
sazi

2020/12/05 06:01

指定の方法は間違っていないと思います。 他のイベントで何かを行っていないですか? 試しに、新しいテキストボックスを追加して、このイベントでそのテキストボックスの色を変えてみて下さい。 変わるようなら、商品コードのテキストボックスに対して何かを行っているという事になりますから。
d_neko

2020/12/05 07:18

久しぶりにACCESSをさわるので、VBAが曖昧です。 イベントも適当にコピペしたので、もう一度見直してみます。 ありがとうございました。
sousuke

2020/12/05 10:34 編集

横からですがテキストの背景を透明にしているんじゃないですか?それか条件付き書式に何かあるとか、サブフォームのデータシートとか
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問