>Accessは昨日から始めたばかりの初心者
ならば、Access のヘルプ文を全て印刷して3度程度通読されたし。
一度目は、チンプンカンプンでも最後まで読み通すこと。
二度目は、必要と思われるサンプルを演習すること。
三度目は、自分なりの作法、開発手法を意識して再度通読すること。
これ位の質問準備をしてから・・・。
基本データテーブル1[会社一覧]:
ID__表示順位__会社名
_1_________1__会社名1
_2_________2__会社名2
随時データテーブル1[XXXXXX](主):
ID__管轄区分__回収元_ID
_1_________1__________1
この段階で[クエリ1]を作成してみます。
クエリ1:
ID__管轄区分__回収元_ID__会社名
_1__1:区分A___________1__会社名1
SELECT 主テーブル.ID, 主テーブル.管轄区分, 主テーブル.回収元_ID, 回収元一覧.会社名
FROM 主テーブル LEFT JOIN 回収元一覧 ON 主テーブル.回収元_ID=回収元一覧.ID;
[クエリ1]では、バイト型の[管轄区分]は区分名に変換されて表示されています。
[クエリ1]では、主テーブルには無かった[会社名]もLEFT JOIN操作で表示されています。
結果、日々管理する主テーブルのデータは、[管轄区分]と[回収元_ID]だけになっています。
従テーブル:
ID__主テーブル_ID__ハンディID__シリアルNo__プリンタNo
_1______________1___________1___________1___________1
_2______________1___________2___________2___________2
_3______________1___________3___________3___________3
この段階でフォームウイザードでフォームを生成すると・・・。
ID__________[___1]
管轄区分____[1:区分A]<---コンボボックス
回収元_ID___[____1][会社名1_________]<---変更不可に!
従テーブル:
=====================================================
ID__主テーブル_ID__ハンディID__シリアルNo__プリンタNo
=====================================================
_1______________1___________1___________1___________1
_2______________1___________2___________2___________2
_3______________1___________3___________3___________3
[クエリ1]、[従テーブル サブフォーム]というフォームが出来上がります。
<問題点>表示されるレコード順が必ずしも[ID]の順番通りにはならない。
<改善点>ORDER BY 節で[クエリ1]、[従テーブル]の順位を制御する。
例えば、[従テーブル サブフォーム]のレコードソースを次のように変更。
SELECT 従テーブル.* FROM 従テーブル ORDER BY 従テーブル.ID;
これで、[従テーブル]の並びは制御できます。
<問題点>表示されるレコード順が必ずしも[ID]の順番通りでもない。
<改善点>[従テーブル]に[行No]列を追加して確実に何行目のデータかも記憶する。
従テーブルの2行目を削除し、また、2行目に追加するなどすれば順番は無茶苦茶に!
ですから、[ID]で並べても実際上は意味がない訳です。
さて、ここまでで、登録フォーム、検索フォーム云々の前にやる事山積が判ったことでしょう。
先ずは、テーブル設計を再検討すべきです。
この再検討にあたっては、リレーショナルデータベースの基礎概念の把握、
加えて、クエリやSQL文に関する初歩的知識も必要。
更に、明細行の追加・削除に応じて列[行No]を自動で振り直すにはVBAの素養も。
私のサンプルは最適ではないでしょう。
が、一応は、「フムフム!ガッテン!」と判断できる知識の取得が先決。
ということで、Access のヘルプ文を全て印刷して3度程度通読されたし。
なお、私は、プログラマでも何でもない素人です。