Windows 11 & Office 2021 Access 2021

チェックがオンになったら非連結のテキストボックスの文字列を表示

投稿日:2023年2月12日 更新日:

Accessのフォームで複数の入力項目があっても、必要な項目をすべて入力せずに保存されてしまうことがあります。

できるだけ、入力の手間を省いて、また未入力の項目がないようにしたいものです。

非連結のテキストボックスに条件付き書式を設定して、チェックがオンになったら、非連結のテキストボックスの文字列を目立たせて入力を促すようにします。

チェックボックスがオンになると文字列が表示されるフォーム

非連結のテキストボックスを作成

サンプルとして商品の在庫チェックの単票フォームを作成しています。

単票フォーム

フォームは、以下のテーブルをもとに作成しています。

テーブルのデザインビュー

確認者の入力を忘れる方が多いので、[確認済]のチェックボックスがオンになったら、注意書きを表示して入力を促すようにします。

単票フォームをデザインビューで開いて、非連結のテキストボックスを挿入します。

[フォームデザイン]タブの[コントロール]から[テキストボックス]を選択して、[詳細]セクション内の任意の位置へドラッグします。

この時[Ctrl]キーを押しながら、ドラッグするとラベルは挿入されず、テキストボックスのみが挿入されます。

[フォームデザイン]タブの[コントロール]から[テキストボックス]

挿入後、[テキストボックスウィザード]ダイアログボックスが表示されたら[キャンセル]ボタンをクリックしてください。

[テキストボックスウィザード]ダイアログボックスの[キャンセル]ボタン

非連結のテキストボックスが挿入されました。

非連結とは、どのフィールドにも紐づけされていないということです。なので、テーブルに保存されることはありません。

非連結のテキストボックスの挿入

表示したい文字列を入力

非連結のテキストボックスに表示したい文字列を入力します。

ここでは、[="確認者を入力してください!"]とします。

="確認者を入力してください!"

必ず文字列はダブルクォーテーションで囲むようにします。

非連結のテキストボックスに文字を入力

非連結のテキストボックスに入力したものは、プロパティの[データ]タブの[コントロールソース]にも入力されます。

非連結のテキストボックスのプロパティの[コントロールソース]

参考プロパティの[既定値]に文字列を入力してもかまいませんが、コントロールソースに入力しておいたほうが分かりやすいと思います。

プロパティの[既定値]に文字列を入力

テキストボックスの書式

境界線スタイルは、[透明]にします。[背景スタイル]は既定の[普通]にしておきます。

[背景スタイル]を[透明]にすると、条件付き書式で背景色の設定ができません。

非連結のテキストボックスの書式

参考非連結のテキストボックスは、自動的に名前が付けられていますが、必要であればプロパティの[その他]タブで名前を付けてください。

非連結のテキストボックスプロパティの[名前]

条件付き書式の設定

条件付き書式を設定する前に、チェックボックスの名前を確認しておきます。ここでは、[確認済]ですね。

チェックボックスの名前をプロパティで確認

[条件付き書式ルールの管理]ダイアログボックスの表示

テキストボックスを選択したまま[書式]タブの[コントロールの書式設定]グループにある[条件付き書式]をクリックします。

[書式]タブの[コントロールの書式設定]グループにある[条件付き書式]

[条件付き書式ルールの管理]ダイアログボックスが表示されます。

[新しいルール]をクリックします。

[条件付き書式ルールの管理]ダイアログボックスの[新しいルール]

[新しい書式ルール]ダイアログボックスが表示されます。

[ルールの種類を選択してください]では、[現在のレコードの値を確認するか、式を使用する](既定)を選択して、[次のセルの書式設定]で[式]を選択します。

[新しい書式ルール]ダイアログボックス

コントロール[確認済]のチェックボックスがオンという式を入力します。

[確認済]=True

[新しい書式ルール]ダイアログボックスで[式]を選択して式を入力

そして、[背景色]と[フォントの色]を設定して、[OK]ボタンをクリックします。

ここでは、黄色の背景に赤のフォントにしています。

太字や斜体、下線の設定もありますので、任意で設定してください。

[新しい書式ルール]ダイアログボックスで書式を設定

[新しいルール]をクリックして、今度は、コントロール[確認済]のチェックボックスがオフのときの書式を設定します。

[式]には、以下のように入力します。

[確認済]=False

そして、フォントの色で白を選択します。[詳細」セクションに背景色を設定している場合は、その背景色と同じ色を選択します。

[新しい書式ルール]ダイアログボックスでチェックボックスがオフのときの書式を設定

[条件付き書式ルールの管理]ダイアログボックスは以下のようになります。

[条件付き書式ルールの管理]ダイアログボックス

参考非連結のテキストボックスのプロパティで前景色を白(詳細セクションの背景色と同じ色)に設定する方法もあります。その場合は、条件付き書式の式が「[確認済]=False」の書式ルールは不要になります。

ただ、非連結のテキストボックスには、コントロールソースの文字列は表示しておいたほうが後々分かりやすいと思います。

[確認者]が入力されたらメッセージを非表示にする

[確認者]の名前が入力されたらメッセージは非表示にします。

[条件付き書式ルールの管理]ダイアログボックスで、[新しい書式ルール]をクリックします。

[次のセルのみ書式設定]で[式]を選択して、以下を入力します。[確認者]が空白ではないという意味です。

書式は、フォントの色で白を選択して[OK]ボタンをクリックします。

[確認者] Is Not Null

[新しい書式ルール]で式を入力

以下のように3つの書式ルールがあります。

最後の[式が[確認者] Is Not Null]を選択して、[上へ移動]ボタンを2回押して先頭に配置します。

条件付き書式の優先順位は上から順に適用されます。

[条件付き書式ルールの管理]ダイアログボックスでルールの順番を変更

3つの書式ルールの順番が以下のようにできたら、[条件付き書式ルールの管理]ダイアログボックスの[OK]ボタンをクリックして閉じます。

[条件付き書式ルールの管理]ダイアログボックス

フォームビューで確認

フォームビューに切り替えて、動作を確認してみます。

キーボードから[F5]キーを押すと、デザインビューからフォームビューに切り替えられます。

[確認済]のチェックボックスをオンにすると、非連結のテキストボックスの文字が現れます。

フォームビューで[確認済]のチェックボックスをオンにしたときに非連結の文字が表示されたフォーム

[確認者]を入力すると、メッセージは非表示になります。

[確認者]が入力されたときのフォーム

[確認済]のチェックボックスをオフにしても、非連結のテキストボックスは非表示になります。(消えたように見えます)

チェックボックスをオフにしたときのフォーム

また、[確認済]のチェックボックスをオンにして、[確認者]を入力した後、[確認者]を削除してもレコードを保存するときにメッセージが表示されます。

レコードを保存時に[確認者]がNullの場合はメッセージが表示

これで確認者が未入力になることは少なくなるかもしれません。

未入力のテキストボックスがあれば、閉じる時にメッセージボックスを表示する方法もありますが、条件付き書式で文字を表示する方法は簡単で作成しやすいと思います。

以下は、もっと効率よく入力するための方法です。

参考Accessの条件付き書式については、以下の記事でも解説しています。

カーソルがあるテキストボックスのレコード全体に背景色をつける

Accessの帳票フォームでフォーカスがあるテキストボックスに色を付けるのは、条件付き書式で簡単に設定できます。 でも、フォーカスがあるレコ ...

続きを見る

フォームとレポートの条件付き書式(データバー機能)

Access2010の新機能です。 フォームやレポートの[条件付き書式]で他の値との比較結果をExcelと同じように[データバー]として表示 ...

続きを見る

チェックをオンしたら背景色を付ける(条件付き書式で複数条件の結び付けも)

Accessのフォームやレポートでは条件付き書式を設定することができます。 この条件付き書式で、複数の条件を満たされているかどうかを判定する ...

続きを見る

チェックをオンにしてテキストボックスを使用不可にする(条件付き書式)

Accessのフォームでチェックボックスをオンにすると、指定したコントロールを使用不可にする方法です。 条件付き書式の数式を使用して、条件が ...

続きを見る

チェックがオンになるとコンボボックスのリストを自動表示するには

コンボボックスは、フォーカスされると自動的にリストを表示できるように設定できます。

チェックボックスをオンにしたら、コンボボックスに移動するようにすると、リストも表示されるようになります。

[確認者]のコントロールソースには、以下のように[値集合タイプ]を[値リスト]にして、[値集合ソース]にリストに表示したい値を直接入力しています。

コンボボックスのプロパティ

参考コンボボックスの作成方法は、いろいろあります。コンボボックスの作成やプロパティの設定については、以下の記事で解説しています。

コンボボックスとリストボックスのカスタマイズ(プロパティの設定)

フォームにコンボボックスやリストボックスを使用すると、一覧のリストの中から選択できるようになります。 作成方法はいくつかありますが、コンボボ ...

続きを見る

チェックボックスがオンになったらコントロールへ移動

チェックボックスがオンになったら、自動的に[確認者]のコンボボックスへ移動するようにします。

ここでは、マクロビルダーでの解説です。

コントロール[確認済]を選択して、プロパティの[イベント]タブの[更新後処理]の[ビルダー選択]ボタン[…]をクリックします。

そして、[ビルダーの選択]ダイアログボックスから[マクロビルダー]を選択して[OK]ボタンをクリックします。

[確認済]プロパティの[イベント]タブの[更新後処理]の[ビルダー選択]ボタン

[新しいアクションの追加]の▼をクリックしてマクロアクションの一覧から、[コントロールの移動]を選択して、[コントロール名]に[確認者]と入力します。

アクションカタログから、追加することもできます。

上書き保存して閉じます。

[新しいアクションの追加]で[コントロールの移動]を選択

閉じると、プロパティの[イベント]タブの[更新後処理]には、[埋め込みマクロ]と表示されています。

設定後のプロパティ[更新後処理]

フォーカス取得後にリストを表示

次に[確認者]のコンボボックスを選択して、プロパティの[イベント]タブの[フォーカス取得後]の[ビルダー選択]ボタン[…]をクリックします。

[ビルダーの選択]ダイアログボックスから[マクロビルダー]を選択して[OK]ボタンをクリックします。

[確認者]プロパティの[イベント]タブの[フォーカス取得後]の[ビルダー選択]ボタン

[新しいアクションの追加]の▼ボタンをクリックして、[If]を選択します。

[新しいアクションの追加]で[If]を選択

そして、以下を入力します。[確認済]のチェックボックスがオンならば、という意味です。

[確認済]=True

すぐ下にある[新しいアクションの追加]で[プロシージャの実行]を選択します。

[If]の条件を入力

そして、以下を入力します。

[確認者].dropdown

[新しいアクションの追加]で[プロシージャの実行]を選択して入力

次に[Elseの追加]をクリックします。

[Elseの追加]をクリック

[マクロデザイン]の[表示/非表示]グループにある[すべてのアクションを表示]をクリックします。

そして、マクロアクション[値の代入]を選択します。

[値の代入]は[すべてのアクションを表示]をオンにしないと表示されませんので、気をつけてください。[値の代入]はマクロアクションの一覧の最後から4番目にあります。

[値の代入]の[アイテム]に以下を入力します。

[確認者].Value

[式]には、以下を入力します。

Null

マクロアクション[値の代入]を選択して入力

[確認済]のフォーカス取得後のマクロアクションは以下のようになります。

確認したら、上書き保存して閉じます。

マクロアクションを設定後に上書き保存

これで、[確認済]のチェックボックスをオンにすると、コンボボックス内にカーソルが移動して自動的にリストが表示されるようになります。

[確認済]のチェックボックスをオンにしてコンボボックス内にカーソルが移動して自動的にリストが表示されたフォーム

[確認済]のチェックボックスをオフにすると、[確認者]のコントロールはNullになります。

非連結の文字列も消えます。

[確認済]のチェックボックスをオフにして[確認者]のコントロールがNullになったフォーム

参考コンボボックスにカーソルが表示されると、自動的にリストを表示する方法は、以下の記事で詳しく解説しています。

コンボボックス内にカーソルが移動すると自動でリストを表示するには

Accessの入力フォームでコンボボックスを使うことは多いと思います。 コンボボックスって、▼ボタンを押してリストを表示しますが、コンボボッ ...

続きを見る

日付の自動入力

[チェック日]のコントロールには、自動的に今日の日付を入力することができます。

[チェック日]のテキストボックスを選択して、プロパティの[イベント]タブの[フォーカス取得後]の[ビルダー選択]ボタン[…」をクリックします。

そして、[ビルダーの選択]ダイアログボックスから[マクロビルダー]を選択して[OK]ボタンをクリックします。

[チェック日]プロパティの[イベント]タブの[フォーカス取得後]の[ビルダー選択]ボタン

ここは、[確認者]コントロールと同じように設定します。

[すべてのアクションを表示]をクリックしないとマクロアクション[値の代入]は選択できませんので、気をつけてください。

また、時刻まで表示したいのであれば、[式]には、[Now()]と入力します。

[チェック日]の[フォーカス取得後]のマクロアクションの設定

そして、[確認済]の[更新後処理]の埋め込みマクロに追加します。

[埋め込みマクロ]と表示された[…]をクリックします。

[確認済]プロパティの[埋め込みマクロ]と表示された[…]

[新しいアクションの追加]でマクロアクション[コントロールの移動]を選択して、[コントロール名]に[チェック日]と入力します。

[上へ移動]ボタンをクリックします。

[新しいアクションの追加]でマクロアクション[コントロールの移動]を選択

以下のようになります。

[チェック日]のあとに、[確認者]へ移動します。

確認して上書き保存して閉じます。

マクロアクションの順番を入れ替え

フォームビューに切り替えて、動作を確認します。

[確認済]のチェックボックスをオンにすると、今日の日付が自動的に入力され、コンボボックスの[確認者]のリストが表示されます。

非連結のテキストボックスの文字も現れます。

フォームビューで確認済のチェックボックスをオンにした状態

[確認者]を選択した状態です。メッセージは消えます。

[確認者]を入力したフォーム

[確認済]のチェックボックスをオフにすると、[チェック日]と[確認者]はNullになります。

[確認済]のチェックボックスをオフにして[チェック日]と[確認者]がNullになったフォーム

参考チェックボックスの値を文字として表示する方法は、以下の記事で解説しています。

印刷時は、チェックボックスより文字列で表示したほうが分かりやすくなります。

Yes/No型をチェックボックスではなく文字列で表示するには

Accessのテーブルでフィールドのデータ型を[Yes/No型]にすると、データシートビューではチェックボックスになります。 テーブルや、フ ...

続きを見る

日付選択カレンダーをフォーカス取得時に自動表示する設定については、以下の記事で解説しています。

日付選択カレンダーをフォーカス取得時に自動表示するには

Accessで[日付/時刻型]のデータ型を選択すると、既定で日付選択カレンダーが表示されます。 Access2007からの機能です。 日付/ ...

続きを見る

検索

ほかの記事も検索してみませんか?

Access / Excel / PowerPoint / Word

関連記事30件

moneytizerPCのみ

Profile

執筆者/はま

-Windows 11 & Office 2021 Access 2021

Copyright © 2001-2024 初心者のためのOffice講座 All Rights Reserved.

Copyright© 初心者のためのOffice講座 , 2024 AllRights Reserved Powered by AFFINGER4.