プロが教える店舗&オフィスのセキュリティ対策術

文字で伝わるかどうかわかりませんが、教えてください。
テーブル1
ID 名前 
例:201 佐藤

テーブル2
 日時     会合名    参加者
10月20日 おりがみの会 201佐藤、222有光、233工藤
10月22日 キッチンの会 222有光
10月30日 アクエリの会 201佐藤、222有光

というデータベースがあったとします。
テーブル2の参加者はフォームからの入力で、
ID 名前、ID 名前、ID 名前・・・・
というように、”、”で区切られたテーブル1のIDと名前が入るようになっています。

行いたいのは、フォームからIDをクリックすると
テーブル2の参加者のフィールドから、IDと名前を抽出して
参加者ごとの会合リストを作りたいのです。
例えば、201佐藤のIDをクリックすると
  日時  会合名    参加者
10月20日 おりがみの会 201佐藤、222有光、233工藤
10月30日 アクエリの会 201佐藤、222有光
233工藤のIDをクリックすると
日時  会合名    参加者
10月20日 おりがみの会 201佐藤、222有光、233工藤

という具合です。
ちなみにこちらの構成は他人が作っており、テーブルから新規にシステム構築すればできそうですが、
今回は改築するよう上司から頼まれました。
参加者のフォームはフリーフォームで作られています。
わかる方、ぜひご教授ください。

A 回答 (2件)

テーブル1は、そのままでAccessでも流用は出来ます。


然し、№1の方が言われる様に、テーブル2はAccessで
使える形には成っていません。

ですから、ここではテーブル2をAccessのデータベースに
合わせる様に変換をしないといけません。

このテーブル2の変換が出来て初めて本来の作業に移る
事が出来ます。

テーブル2を次の形式に変換します。
日時、会合名、参加者

ここで、テーブル2をテキストに一旦変換して
日時、会合名、参加者をタブで区切ります。
参加者の所は、コンマで区切られていますので。

splitで、リストを作る。後は、ヘッダーとして
先頭から、日時、会合名、参加者を順次出力をする
だけです。

この様な文字列処理はperlが得意とする所ですが。
access vbaでも何とか処理をする事は出来ますが、
かなりに苦労はすると思います。

ここでは、折角データが有るのですから、これを
活かさない方法は有りません。

若しも、この方法が出来ないと言うので有れば、
ここでは№1の言う様に最初からのデータの作リ直しです。

もしも、ここでperlの環境が有れば、そのコードを
ここに書いても良いですが。

環境が分かりませんので、perlのコードをここに書くのは
控えます。

ご検討願います。perlが有れば、そんなにテーブルの
変換は難しい事では有りません。

頑張って見て下さい。
    • good
    • 0

一から作り直されるなら、以下のようにされるといいと思います。



テーブル1「参加者マスタ」
・フィールド:名前ID、名前

テーブル2「会合マスタ」
・フィールド:会合ID、会合名

テーブル3「参加会合テーブル」
・フィールド:参加者ID、日時、会合ID、

テーブル1、2で参加者と会合をIDに紐づけして、3にはIDと日時だけ入れていきます。
こうすると、クエリで参加者IDを選択すれば、その人の参加会合だけが抽出されます。

アクセスは、余計なデータがデータベースの中に複数存在しないようにして作るのが基本です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!