• ベストアンサー

アクセスサブフォーム2つを同時にレコード移動したい

お世話になります。 メインフォームに サブフォームが2つあります。 片方のサブフォーム内のレコードを移動させたら、同時にもう片方の方も自動的にレコード移動をさせたいです。 理由は、テーブル内のフィールド数が255個までのため分割してるからです。 本来、両方合わせて1つのレコードだからです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • chayamati
  • ベストアンサー率41% (260/624)
回答No.5

お節介2 T-診察の補足 添付はT-診察をデザインビューで開いて ・患者IDをクリック ・下枠をルックアップに ・各項目の右列の右端をクリックで 以下のように設定します。 した状態です。 1.表示コントロール リストボックス→コンボボックス 右端クリックでテキストボックス、テキストボックス、 コンボボックス表示されます コンボボックス選択で添付のような設定項目になります 2.値集合タイプ 規定値 3.値集合ソース 右クリック→T-患者 4.連結列 規定値 5.列数 1→2 T-患者の左端から2つ(患者ID、患者名) 6.列見出し 規定値 7.列幅 空白→0 各フィールドの表示幅を左からカンマ区切りで定義します 空白にするとおまかせ 患者IDの表示は必要ないので0 8.リスト行数 16→32 その他リストの順をフリガナ順に出来ますが 先ずご自分で探ってください

k7qa170622
質問者

お礼

たいへんお礼が遅くなり申し訳ありません。 結局、255フィールドを超えると、入力フォームだけは何とかなるのですが、後の運用が大変なので、フィールドを減らすことを考えました。 歯周病のチェックを入れるところを、4つを一つにしました。 チェック印を 定型入力で v v v v と一つのフィールドに入れました。 後の運用は、このv印をカウントするだけです。 このvの合計で治療をするかどうか決めます。 10月いっぱいに期限を延ばしてもらいました。 教えて頂いたことは、いろいろ参考にさせて頂いてます。 これから先まだ行き詰まることが出て来るかもしれません。 その時は、宜しくお願い致します。

その他の回答 (4)

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.4

その後いかがですか 少し整理しましょう 納期が9月末で、忙しいのにまたかと思われるかも知りませんが 自分なりに目的が見えてきたので今一度 情報の発生状況で固定情報と随時発生情報に分かれます。 テーブルを設計するときはこれを意識して設計します。 テーブルには主キーを定義するのが一般的ですが、 主キーのデータ型はオートナンバー型にします まず固定情報 T-患者 随時発生情報 T-診察 T-診察明細 の3つのテーブルから始めます。 患者は複数回診察に見える為 診察データを新規登録することになります。 T-患者 患者ID オートナンバー型 氏名 テキスト型、8文字 生年月日 日付型 … T-診察 診察ID オートナンバー型 患者ID 長整数型 ルックアップ機能でT-患者を参照 診察日 日付型 所見 メモ型 … T-診察明細 診察明細ID オートナンバー型 診察ID 長整数型 このフィールドでT-診察でリレーション設定 歯No. 整数型 成人の歯の数は32ですね 有効値1~32 歯の状態 整数型 1-正常 2-治療済 3-虫歯 9-無 歯周病上 Yes/No 型 有るときYes 歯周病下 Yes/No 型 有るときYes 歯周病左 Yes/No 型 有るときYes 歯周病右 Yes/No 型 有るときYes 歯茎 整数型 歯茎の健康状態を歯との剥離深さ(単位mm) … これらのテーブルを基に診察登録(診察登録サブ)を作成しました。 添付図をご覧下さい。 追記 オートナンバー型式のふぃーるどはソフトにお任せということで フォーム上では省略できます。 診察明細で各歯に6項目提示しましたので6×32=192追加項目はまだありますね (歯茎の裏表、虫歯の場所、治療済みの内容等) 今回はT-患者とはリレーションの必要は有りません 他のフォーム、レポート等で一時的にリレーションを設置して住所、年齢計算 をすることが出来ます。

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.3

[メインフォームに サブフォームが2つあります。] うっかりしていました。このままでも出来ます。 この方から親のボックスにアクセスできます。 ・メインフォームに 参照ID:長整数型 2つのサブフォームをそれぞれ ・主サブフォームに 主ID:長整数型 またはオートナンバー型 ・副サブフォームに 副ID::長整数型 を配置して主IDを確定したイベントで Me.Parent!参照ID=主ID 副ID= Me.Parent!参照ID ※サブフォームからメインフォームのボックスの参照、更新はできますが メインフォームからサブフォームのボックスの参照、更新はできません サブフォームから他のサブフォームのボックスの参照、更新はできません

k7qa170622
質問者

お礼

ありがとうございます。 参考にさせて頂きます。 やっと集中できそうなので、また行き詰まった時は、ご指導お願い致します。

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.2

なるほど歯の管理ですか 成人の歯は32本、親知らずも入れて36本になりますか 自分は現在72歳 月1回定期的に歯の管理をしてもらっています。 歯に番号を付けして一本一本チェックして記録に残すのですね チェック項目が各歯に10項目あって360項目ということですか ならば お客様フォーム   キー   key  オートナンバー        氏名        性別        生年月日(年齢はクエリー内で計算します) 年齢:datediff(生年月日,基準日,”Y")        ・・・ 治療フォーム    キー  s1key     オートナンバー        連結key   数値型(このキーにより必要に応じてお客様の基本項目を参照できる)        ※テーブル設計時のルックアップ機能でコンポボックスにしておく        カルテNo.      検査連番   数値型        検査年月日 日付型        ・・・ 治療サブフォーム(子のフォームの中に サブフォームとして作りました)   キー  s2key     オートナンバー        連結key   数値型        カルテNo.        歯No.        検査項目1  数値型        検査項目2  数値型        検査項目3  数値型        検査項目4  数値型        検査項目5  数値型        検査項目6  数値型               検査項目7  数値型        検査項目8  数値型        検査項目9  数値型        検査項目10 数値型 即ち一回の治療で36のレコードになります。 物品売買の納品書と同じ構造になると思いますが なお他のデータベースはともかく、Accessでは主キーをオートナンバーにすると、フォーム上で省略できます。 レポート機能でなくとも、フォームのままで印刷もできます。

k7qa170622
質問者

お礼

ありがとうございます。お礼が遅くなりまして申し訳ありません。 フォームには 手書き用の用紙をスキャナーで写真にし、イメージとして取り込んでます。  1cmマス目を1本の歯として、その歯に上下左右4か所(歯の傷み具合を数値で入れます)+上下左右4か所(歯周病有無を入れます)。windowsのアクセサリーの拡大鏡を使わないとよくわからない程小さいです。 今の所その設置に取り掛かってます。 依頼主には9月いっぱいの期限をもらいました。 この写真への入力用テキストボックス設置で困難になったら、教えて頂いた方法を依頼主に相談しようと思っております。

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.1

勘違いならごめんなさい。 メインテーブルの主キーにサブテーブル1をリレーション設定していますね このサブテーブル1に次のサブテーブル2をリレーションしてはいかがですか フォームも主フォーム-サブフォーム1-サブフォーム2と直列に設定します。 256以上のフィールド多いですね、複数のフィールドの中に一つにまとめられる フィールドがあればこれを一つにまとめて255以内にテーブルにできればこちらの方がよいですね ※ まさかと思いますが日付を元号、年、月、日、曜日の5つのフィールドにしている等

k7qa170622
質問者

お礼

大変遅くなりまして申し訳ありません。いろいろと試行錯誤していたものですから・・・ 今の所 親のメインフォーム・子のサブフォーム(上の歯)・孫のサブフォーム(下の歯)と作りました。 親フォーム   キー   key  オートナンバー        氏名        性別        年齢        ・・・ 子のフォーム(親のフォームの中に サブフォームとして作りました)   (上の歯用)   キー  s1key     オートナンバー        連結key    数値型        検査連番   数値型        検査年月日 日付型        以下のフィールド(検査結果)が180項目ほど 孫のフォーム(子のフォームの中に サブフォームとして作りました)  (下の歯用)   キー  s2key     数値型        以下のフィールド(検査結果)が180項目ほど リレーションシップは   親の key   と 子の連結key (1対多)   子の s1key と 孫の s2key  (1対1) 子と孫は連動してレコード移動できます。(子の移動ボタンで孫も動きます) まだまだ途中ですが、何とかなりそうです。 印刷が難しそうですが・・・ ありがとうございました。

関連するQ&A