
アクセスで大分類・中分類・小分類を作っています。
コンボボックスを連動させて,作成したのですが?
データー入力後,例えば中分類を変更しても,大分類や小分類がそのままで登録されてしまうのです。
それではダメですよね・・・
その部分がデータとしてあっていればいいのですが,違うければ弾いて欲しいやり方を
ご教示していただきたいのです。。。
ちなみに!
大分類に SELECT DISTINCT 配置署所 FROM ボンベ管理クエリ;
中分類に SELECT DISTINCT 署所記号番号 FROM ボンベ管理クエリ WHERE 配置署所=[大分類];
小分類に SELECT [ボンベID], [容器記号番号] FROM ボンベ管理クエリ WHERE 配置署所=[大分類] AND 署所記号番号=[中分類];
中分類と小分類には,イベントとして
Private Sub 小分類_Enter()
Me.小分類.Requery
End Sub
を書き込んでいます。
※ この質問をする場合のカテゴリ選択のようにしたいのです・・・・
ぜひどうかよろしくお願いします。
No.2ベストアンサー
- 回答日時:
そのフォームは単票でしょうか。
帳票なら以下の方法ではできません(コントロールを重ねないと不可能だと思います。)
現状のフォームをコピーし、コピーした方で動作確認してみます。
レコードが更新されても良いようにバックアップは取っておきます。
コピーした方のフォームに記述してあるイベント関係のものをすべて削除し、
以下の記述と置き換えてみます。
Private Function EnterCheck()
Dim vN As Variant
Dim i As Long, j As Long
vN = Array("大分類", "中分類", "小分類")
For i = LBound(vN) To UBound(vN)
If (Me.ActiveControl Is Me(vN(i))) Then
For j = LBound(vN) To i - 1
If (IsNull(Me(vN(j)))) Then
Me(vN(j)).SetFocus
Exit Function
End If
Next
Exit For
End If
Next
With Me.ActiveControl
.Requery
.Dropdown
End With
End Function
Private Function UpdateCheck()
Dim vN As Variant
Dim i As Long, j As Long
vN = Array("大分類", "中分類", "小分類")
For i = LBound(vN) To UBound(vN)
If (Me.ActiveControl Is Me(vN(i))) Then
For j = i + 1 To UBound(vN)
Me(vN(j)) = Null
Next
If (i <> UBound(vN)) Then
Me(vN(i + 1)).SetFocus
Exit Function
End If
Exit For
End If
Next
End Function
Private Sub Form_Load()
Dim vN As Variant
Dim i As Long
vN = Array("大分類", "中分類", "小分類")
For i = LBound(vN) To UBound(vN)
With Me(vN(i))
.ValidationRule = "Is Not Null"
.OnEnter = "=EnterCheck()"
.AfterUpdate = "=UpdateCheck()"
End With
Next
End Sub
Private Sub Form_BeforeUpdate(Cancel As Integer)
If (IsNull(Me.小分類)) Then Cancel = True
End Sub
※※ 操作は、必ず "大分類" → "中分類" → "小分類" の順であるとします。
※ Enter 時の動き
どのコンボボックスの Enter でも同じ処理を走ります。
まず、Enter になったのは「誰」を求めます。
求まったら、前操作のコンボボックスが入力されているか確認します。
値が設定されていなければ、そのコンボボックスにフォーカスを移動します。
値が設定されていれば、 Requery 後 Dropdown 表示します。
※ AfterUpdate 時の動き
どのコンボボックスの AfterUpdate でも同じ処理を走ります。
まず、AfterUpdate になったのは「誰」を求めます。
求まったら、後操作のコンボボックス値を Null に変更します。
次のコンボボックスにフォーカスを移動します。
※ フォームのオープン時
各コンボボックスに上記関数を実行する様、イベントに設定していきます。
また、入力規則に念のため Is Not Null を設定しておきます。
既に値が設定されていて、Delキー 等で削除された場合エラーとなるように・・・
※ フォームの更新前処理
コンボボックスは、必ず "大分類" → "中分類" → "小分類" の順と決めたので、
最後の Me.小分類 が Null なら Cancel = True として、更新を拒否します。
※ コンボボックス3つの処理をまとめましたが、個別に記述しても良いと思います。
※※ 検証等は十分に行ってください。また、不具合等あれば修正してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) コンボボックス及びリストボックスを5段階連動させる方法をご存知の方ご教授頂きたいです。 Excelで 3 2022/04/03 21:43
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Excel(エクセル) エクセルについて/Excel グラフを作りたいのですが、エクセルが苦手でうまくできません。 グラフの 1 2022/07/28 00:35
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- Visual Basic(VBA) 該当セルに行替えを含むデータを命令文に入れて、2行に表示したい。 5 2023/07/20 11:51
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「A,B組の女子の氏名のよみ。 1 2023/05/16 15:28
- ビジネスマナー・ビジネス文書 何か書類を作る時に相手の名前を1番下に入れて自分の会社の前を上の方に書くのはダメですか? 説明しにく 5 2023/05/08 11:02
- 医療・安全 コロナ案件、区分変更? 知事の黒岩などはコロナ区分を現2類から5類に変えよと必死ですが、5類になると 2 2022/07/29 13:50
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS リストボックスの字の色...
-
Accessのコンボボックスでリス...
-
ACCESSクエリ抽出条件について
-
Accessのコンボボックスの”すべ...
-
Accessフォーム 大分類→小分類...
-
アクセス:フォーム入力:【大...
-
更新クエリで変数は使えない?
-
SQL…オーバーラップする時間
-
帳票フォームでのあるコンボボ...
-
Accessのクエリで抽出したデー...
-
.flex-direction プロパティは...
-
同一値集合ソースの複数コンボ...
-
accessでオートコンプリート機...
-
エクセルで、抽出したデータだ...
-
ACCSESS2013VBA フォームのレコ...
-
ソフトの製品コードを知りたい
-
インデックスまたは主キーにはn...
-
Access 複数フォームを...
-
スクロールバーをVBAで操作したい
-
Access2000、これはいったい・...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessのコンボボックスでリス...
-
Accessのコンボボックスの値が...
-
accessでオートコンプリート機...
-
帳票フォームでのあるコンボボ...
-
ACCESS リストボックスの字の色...
-
ACCESSでコンボボックスにSQLで...
-
コンボボックスのボタンの大き...
-
Oracleで文字列型の時間を引き...
-
Accessフォーム 大分類→小分類...
-
Accessのコンボボックスのデフ...
-
Accessのクエリで抽出したデー...
-
同一値集合ソースの複数コンボ...
-
Access 帳票フォームのコンボボ...
-
SQLサーバーからひっぱるACCESS...
-
リストボックスの時はリンク先...
-
[Access2003]コンボボックスと...
-
アクセスでのコンボボックス複...
-
accessでのリストボックス選択...
-
ACCESSクエリ抽出条件について
-
アクセス コンボボックス絞り込...
おすすめ情報