• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ACCESS フォーム間のフィールド同期(日付の同期))

フォーム間のフィールド同期(日付の同期)

このQ&Aのポイント
  • フォーム間のフィールド同期についてアドバイスをお願いします。
  • 【日記記入日】を『F_成長日記(1)』・『F_成長日記(2)』と同期させたいです。
  • 『F_成長日記(1)フォーム』と『F_成長日記(2)フォーム』のどちらから【日記記入日】を入力しても両フォームが同期するようにしたいです。

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

  • ベストアンサー
  • shinkami
  • ベストアンサー率43% (179/411)
回答No.15

■No.12のアドバイスの件 >誕生日(生年月日)については >=(DateDiff("m",[生年月日],Date())+(Format([生年月日],"dd")>Format(Date(),"dd")))\12 & "歳" & (DateDiff("m",[生年月日],D>ate())+(Format([生年月日],"dd")>Format(Date(),"dd"))) Mod 12 & "ヶ月" >にしてあります。 >※今更ですが何でこんなに長いんだ…。(汗) さすがですね エクセルの関数と使い方が違いますね 動作確認せずで済みませんでした。次ではどうでしょうか 年齢 = DateDiff("yyyy", 生年月日, Date) & "歳" & DateDiff("M", 生年月日, Date) Mod 12 & "ヶ月" 蛇足ですが シリアル値について勝手な解釈ですが 日進数と認識しています。 すなわち 日を1として 月、年と繰り上がり 時、分、秒と繰り下がる(大の月、小の月、うるう年も織り込んである) 従って 期間=終了日ー開始日 出計算が出来ます。 ________________________________________________ >■ちょっとお伺いしたいことが…。(その1) >SQL Server 2005 Express Editionの導入です。 > この件全く無知です。 別の質問を立ち上げてください。 ■ちょっとお伺いしたいことが…。(その2) >ACCESSで構築したものを他の支店でも使うつもりですが >テーブルやフィールドの追加、フォームの修正などした場合、 >本店で修正したmdbを、単に上書きしてしまうと支店の稼動していたmdbのレコードが全て消えますのよね。 テーブル以外はインポートでさしかえできますが、テーブルのフィールドの追加は中の情報を残したまま の差し替えになりますね テーブルのデザインによる変更ということになります いずれにしても支店の誰かにしてもらうにはハードルが高すぎますね 自分はt召したことがありませんが ひょっとしてマクロで解決できるかも この件も別の質問を立ち上げてください。 ____________________________________________ >【何千人の中から探すのか!?】という思いがあったので、顧客を抽出するフォーム等を この件数が気になっていたのですが、予想をはるかにに超えています。 メイン画面でふりがなの頭1~2文字で顧客名を確定してから F_成長日記 を開いてはと思いますが メインメニューに フリガナのテキストボックスと顧客検索のコンポボックス配置してコンポボックスの イベントより F_成長日記 を開きます。 仮にこのコンポボックスを「顧客確定」とします。ラベルの標題は「成長日記登録」 Private Sub 顧客確定_Change() DoCmd.OpenForm "F_成長日記" End Sub F_成長日記 にもコンポボックス「顧客確定」とフリガナのテキストボックスを配置します。 ここでの顧客確定をメインメニュウにコピーして、F_成長日記を開きなおします。 Private Sub 顧客確定_Change() Forms!メインメニュウ!顧客確定 = 顧客確定 DoCmd.Close DoCmd.OpenForm "F_成長日記" End Sub Close した後もコードが有効とはいがいですね ______________________________________________ >■上記の件ですが、 >意外と言いますか、???の状態です。 >通常テーブルには主キーを設定しますよね。 >また主キーの場合、社員コードとか顧客コードなど以外は、殆どがオートナンバー型に >なってしまうような気もするので…。 フォームに無くても、オートナンバーは有効に機能し続けます。 ある意味でわけの分からない番号は無い方が画面がすっきりします。 フィールドがオートナンバーでなくとも主キーにすることが出来ますが 主キーはやはりオートナンバーに限ります。 例えば顧客コードを数値型で主キーにしたとして、 情報がある程度たまった時点でコードリレーションを保ったままの変更が出来なくなります。 > >とここまで書いて気付きました。 >F_成長日記メイン部フォームの「カルテNo.」は >今までお話をしまいた[日記ID]の事です。 >[日記ID]の事ならそのままで良いですよね…? フォームからは除去して レコードの移動の可否を確認してください。 尚 あなたの全ての疑問に答え切れてないと思います。お気を使わずに新しくQを立ち上げてください。 >

torento19
質問者

お礼

shinkamiさん こんにちは。 ご返答ありがとうございます。 ■mdbの更新につきましては、かなり厄介ですね。 その都度、支店に足を運ぶのはかなり大変です。 ■[日記ID]の件ですが、フォームから削除しても やはりレコード移動は出来ませんでした…。 ん~~~。これは永久的な課題か~…? 本件のアドバイスでは本当にありがとうございます。 また、その他のご説明も大変丁寧で大変助かりました。 他の質問につきましては、分からない時に別の板で改めて 質問をさせて頂きます。 かなり無謀かもしれませんが SQL Serverの方も少しずつ勉強をして精進していきます。 此度は本当にありがとう御座いました。m(_ _)m

その他の回答 (14)

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.14

F_成長日記メイン部フォームの「カルテNo.」主キーではないいでしょね もし主キーでオートナンバーでしたら、この画面から除去してください 子フォームに主キーがあるとレコードの追加機能が働かないようです。 コンボボックス活用により、キー入力を極力画面のように見受けられます。 ここらでテーブルに戻って、テーブルを見直してみませんか ・ルックアップ ・既定値設定:時間 ・IME変換モード:オフ、ひらがな テキストの既定値はオンになっている ・IME変換モード:一般/人名_地名 既定値は一般になっている ・テキストのフィールドサイズ :既定値は255文字 とバカデカイ テーブルが確定したら、フォームのデザインですが サブフォームのShinkami式作成手順をお伝えしたいんでご連絡下さい。

torento19
質問者

補足

shinkamiさん こんにちは。 >F_成長日記メイン部フォームの「カルテNo.」主キーではないいでしょね >もし主キーでオートナンバーでしたら、この画面から除去してください >子フォームに主キーがあるとレコードの追加機能が働かないようです。 ■上記の件ですが、 意外と言いますか、???の状態です。 通常テーブルには主キーを設定しますよね。 また主キーの場合、社員コードとか顧客コードなど以外は、殆どがオートナンバー型に なってしまうような気もするので…。 とここまで書いて気付きました。 F_成長日記メイン部フォームの「カルテNo.」は 今までお話をしまいた[日記ID]の事です。 紛らわしくなってしまい申し訳ございません。 [日記ID]の事ならそのままで良いですよね…? ■コンポボックスの件ですが 概ねルックアップウィザードより指定して、極力入力の手間がかからない様にしてあります。 ※メインメニュー画面や[F_生体情報]から追加できるようにも構築済みです。 ■IME変換モードにつきましても、概ね設定済みです。タブコントロールも済んでいます。 ■テキストのフィールドサイズ :既定値は255文字 とバカデカイ この件は、実は今でも迷っています。 特に[F_成長日記メイン部]や[F_患部詳細メイン部]で大量に【メモ型】【テキスト型】を使っています。 【メモ型】【テキスト型】の場合、たとえ"Null"の場合でもデータ容量としては肥大化 していくのでしょうか? 処置1~処置4も現在は、メモ型にしていますが 処置3或いは処置4は入力しない場合も多いです。 また行の高さの関係もあり、見た目にもそれほど多くの文字数を入力しないと思うので 【テキスト型】の50文字程度でも良いのでは?と思っています。 このあたりがACCESSの基本として分かっていない部分です。 【255文字とバカデカイ】というお言葉がありますので、 多分Null値でも、制限一杯の255文字を入力した状態でもデータ容量は同じなのかな…??? 引き続き細かい部分のブラッシュアップ作業は進めて行きます。 ■今後の追加機能(構築)の作業として  ・画像管理     生体情報ページに1枚、患部詳細画像ページ(未構築)にサムネイル式で一覧として     12枚ほど表示させようと試みています。     問題は、外部フォルダーへのリンクです!     ACCESS2000ですとかなり大変な様で…。←トライしてみましたが挫折しました…。     ACCESS2007なら標準機能として外部リンクが出来るようですが…?ほんと!?     ※ACCESS2010が出たらバージョンアップします。  ・フィールドに任意に色を付けるON/OFF機能     [F_患部詳細メイン部]に配置した【足の状態】などのフィールドにコメントを入力     した場合や過去にコメントを入力したことがあるのか?     また、重要なコメントが入力されているので注意してほしい!     など、視覚的に分かる様にして欲しいとの要望があります。     一応、[F_成長日記メイン部]の[F_体重測定一覧]の左側空いている部分ありますので     そこに「うまく表示できればいいかな~…。」と安易に考えております。     出来るかどうか?などは、今から考えます。(笑)  ・レポート表示  ・ペットホテル管理     なども課題として残っています。  これらの機能については分からない事があれば、改めて別の板で質問をさせていただきます。 ■サブフォームのShinkami式作成手順をお伝えしたいんでご連絡下さい。 自分に対して大きな技術力アップにつながります。 また今後のシステム作りの大きな参考になると思います。m(_ _)m こちらの件、何卒よろしくお願い致します。

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.13

確認うっかりしていましたが、テーブル間にリレーションシップを設定していますよね リレーションシップの設定はデザイン画面の右クリックから入ります [デザイン画面 右]→[テーブル全てを選択]→「関連のあるテーブル間の一方の項目を他方の項目にドラッグ]→[参照性合成]→[OK] F_成長日記を参考にして、こちらでテーブルを作成して、リレーション設定したものを添付します。 判読困難な部分は?で、用語の意味が分かりませんがラリー(ツリーとも読める)もテーブル参照でしょうか 量、時間もコンボボックスになっているのはキーボードとマウスの行き来をなくすためですね コンボボックスの

torento19
質問者

お礼

■No13のアドバイスの件 リレーション関係は添付していただいた画像とまったく同じです。 それ以外のご報告として [T_成長日記]についてですが、現在は全てのフィールドを[T_成長日記]で管理しています。 ※別テーブルとして管理するとユーザビリティー的に使いにくくなってしまいます。 もしくは、あまり入力しない【足の状態】などのフィールドを[T_患部詳細]テーブルとして データ容量を稼ぐなら、タブフォームで管理するのもいかな~と思っています。 これなら、直感的に同じ診察日を管理しているという気持ちになるかな~…と。 ※ただし、成長日記のタブ以外ではタブでは診察日の変更はできませんが…。 ※また、F_患部詳細のデータを全て見たい場合は別フォームを開かなければいけませんが…。 どちらも悩みどころです。 ■ちょっとお伺いしたいことが…。(その1) ACCESSってデータ保護が最悪じゃないですか…。 起動中はバックアップもできないし。自動でバックアップもできないし。 挙句の果てにmdbでしかバックアップが取れないし…。 で!安易に考えたのが SQL Server 2005 Express Editionの導入です。 ネットや書籍からの情報だけで、アップサイジングって出来ますかね~。 やっぱりバックアップは大事ですから…。 ■ちょっとお伺いしたいことが…。(その2) ACCESSで構築したものを他の支店でも使うつもりですが テーブルやフィールドの追加、フォームの修正などした場合、 本店で修正したmdbを、単に上書きしてしまうと支店の稼動していたmdbのレコードが全て消えますのよね。 こういった場合はどうするものなんでしょうか? 一旦エクセルでレコード情報を避難?させるのかな…?

torento19
質問者

補足

shinkamiさん こんにちは。 いつもいろいろとアドバイスをいただきありがとうございます。 本当に感無量です。 ■No.10のアドバイスの件 >この生体IDはカルテまたは一覧表より拾って入力していますね >プルダウンにリスト表示されれば楽になりませんか DBの入力順番として 1)顧客or生体情報のどちらかを始めに入力します。 2)始めに生体情報を入力したら自動的に[生体ID]は確定   逆に顧客情報から入力した場合は、顧客情報のフォームに   [T_生体情報]テーブルからクエリで[生体ID][生体名][品種]などのフォーム(表形式)作り   サブフォームでリンクで紐付けをしているので、生体名など入力すれば自動で[生体ID]が   確定します。 3)始めに生体情報を入力した時、顧客の確定[顧客ID]の確定が必要になりますが   当初、プルダウンで[顧客ID][顧客名]を選択しようとしていましたが、  【何千人の中から探すのか!?】という思いがあったので、顧客を抽出するフォーム等を   構築して、抽出させてから代入という方法で[顧客ID]を特定しています。   ★[顧客ID]が代入できれば、[T_顧客情報]のフィールドも自由に使えますので。 ■No.11のアドバイスの件 こちらの件ですが、アドバイスのとおり試して見ましたが やはりダメでした。 [日記ID]の抽出が絶対的な値になっているようで うまく行かなかったです。 ▼[日記ID]を抽出させずに、診察日を With Application.Forms![FM_患部詳細]![F_患部詳細メイン部].Controls .Item("日記ID").Value = Application.Forms![FM_成長日記][L_成長日記メイン部].Controls("日記ID").Value ' End With で代入してみました。 が…! 初回時は同じ日記IDが表示され診察日も同じで、レコードの移動も移動できたので よっしゃ~!と喜んでみたら、T_成長日記側の診察日が滅茶苦茶になっていましまし…。 大失敗です。 この件は、妥協案以外の解決方法がいまだに見い出せないままです。 ■No.12のアドバイスの件 誕生日(生年月日)については =(DateDiff("m",[生年月日],Date())+(Format([生年月日],"dd")>Format(Date(),"dd")))\12 & "歳" & (DateDiff("m",[生年月日],Date())+(Format([生年月日],"dd")>Format(Date(),"dd"))) Mod 12 & "ヶ月" にしてあります。 ※今更ですが何でこんなに長いんだ…。(汗) ■F_体重推移について [T_成長日記]テーブルからクエリで抽出したものを表形式でフォームにしています。 抽出項目は [T_成長日記]からは[診察日]と[体重測定値] [T_生体情報]からは[生体ID] [T_成長日記]と[T_生体情報]は[生体ID]でリレーション(1対多)されています。 [F_成長日記]のサブフォームとして[F_体重推移](体重測定値フォーム)を埋め込んでいます。 ■ 親フォーム(F_成長日記フォーム)のヘッター部に設置 これが一番良いのかもしれませんが、見た目的に悪いのと ユーザビリティーの関係でボタンが散らばっているのはどうかと思い、ボタン類は全て フッターに集めています。

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.12

今回は■F_成長日記への提案と質問です。 ▼水色部分 親フォーム⇒F_成長日記フォーム この部分ほとんどが生体情報と顧客情報だと思いますが 生体、顧客、の情報は生体名と顧客名だけにして、詳細についてはヘッダのボタンで 確認フォーム(生体ID、顧客IDで絞り込む)ではダメでしょうか 年齢欄は誕生日より DATEDIF関数で求めることが出来ます。 =DATEDIF(誕生日,date(),"M") 関数はVBAの辞書に記載してありますか? ▼ピンク色 子フォーム⇒F_成長日記メイン部フォーム ▼黄緑色  子の子フォーム?⇒F_体重推移 ここの項目はこれだけですか、テーブルは子フォームと同じものを参照していませんか これが可能うならば、自分にとって新発見です。いつか活用させていただきます。 ▼黄色   親フォーム(F_成長日記フォーム)のヘッター部に設置

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.11

> ■No.9のアドバイスについてですが > こちらも私側で理解できづ、つまづいております。 > 生体IDの削除ですが、親と子のリンクを[生体ID]でおこなっています。 > たぶん、テーブルのフィールドまで削除するのではなく > 単に、「フォーム」と「クエリビルダ」から[生体ID]を削除する > ということでしょうか? > テーブルからも[生体ID]を削除してしまうと > 親と子のリンク自体が成立しなくなっていまいますがどうなんでしょう…。 > まったく別の方法があるのでしょうか…。 > 申し訳御座いません。 ___________________________________ そうです あなたの考え通り「フォーム」と「クエリビルダ」から[生体ID]を削除します。 テーブルは両方とも残して置いてください。 クエリビルダの上枠で T_生体情報とT_顧客情報が生体IDでリレーションされていますね これで 親と子のリンクが成立します。 さてどちらの生体IDを除去するかですが、通常キー設定していない子の方を残します。 理由は子のレコードを追加するためです。 確信は無いですが以下の問題点が解消しませんか > よって、抽出条件で抽出してしまいますので、同じ日記IDのレコードしか > 抽出されていないことになります。 > つまり移動のコマンドボタンを押すと > 【前のレコードに移動】のボタンなら→<指定したレコードに移動できません>が表示 > 【次のレコードに移動】のボタンなら→新規レコードの状態(全てNull)になります。

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.10

> ■No.8のアドバイスについてですが > こちらは私の読解力が悪いようで、どの様な意味、どの症状を改善する為の > 機能なのか理解できませんでした…。 > > ただ操作としてはうまくいったようで、 > プルダウンとして生体名が表示されるようになりました。 _____________________________________________________________ この生体IDはカルテまたは一覧表より拾って入力していますね プルダウンにリスト表示されれば楽になりませんか この機能をF_生体情報の顧客IDにも適用すると登録作業が楽になります。 添付いただいた図では 顧客の姓と名の2つのフィールドになっているようなのですが 一つにすると プルダウンリストが見やすくなります。 T顧客情報に ふりがな のフィールドを追加して、ここでプルダウンリストの 表示順を 読み順にすることが出来ます。 [顧客ID]→[プロパティー]→[データ]→[値集合ソースの右端の…] →[はい]でクエリビルダになります。 顧客ID、姓名、ふりがなを下枠にドラッグしてふりがなの並び替え枠で昇順にします

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.9

回答No.7の追伸です。 添付いただいた図に 生体IDが親フォームと、子フォームにあります。 これはどちらか一方にしてください。 デザインモードで[プロパティー]→[レコードソース]データタグから入るクエリビルダのフィールドからも削除してください。

torento19
質問者

お礼

★文字数の関係で続きはこちらから ■持っている知識にも限界があるので本屋に走ってVBAの辞書なるものも購入してきます。 3000円ぐらいの出費…。痛いけど自分への投資としてめげずに頑張ります。 ■現状の結局の妥協点ですが [Forms]![F_成長日記]![F_成長日記メイン部]![日記ID]を参照した抽出条件で開いたフォームは 単に確認画面としレコードの移動ボタンも削除します。 で! 【他の診察日参照】ボタンを設置して[FM_患部詳細_確認]フォームではなく [FM_患部詳細]フォームを開くようにしました。 1クッション置くことになりましたが、これで[FM_患部詳細]で他の[日記ID](診察日)が レコード移動ボタンで表示される様になりました。 で!! ここまで入力して思い出したのですが これってshinkamiさんからのアドバイスにありました 【生体IDと診察日で情報を特定して確認フォームを開くことにします。】 ではないのか!と思ってしまいました…。(T▽T;) 以上。 取り急ぎ途中報告?としてご報告いたします。

torento19
質問者

補足

こんにちは。torento19です。 いつも丁寧なアドバイスありがとうございます。 ■まず、No.7のアドバイスにありました、 ________________________________ 前後のレコードに 抽出条件 [Forms]![F_成長日記]![F_成長日記メイン部]![日記ID] に合致するレコードは入っていますか ________________________________ についてですが、ダミー情報として6レコード分入っております。 ※その他、生体IDの生体情報や顧客情報も数件分入っており また、他の生体ID分の日記IDもダミーとして数件分入っています。 ■No.8のアドバイスについてですが こちらは私の読解力が悪いようで、どの様な意味、どの症状を改善する為の 機能なのか理解できませんでした…。 ただ操作としてはうまくいったようで、 プルダウンとして生体名が表示されるようになりました。 ■No.9のアドバイスについてですが こちらも私側で理解できづ、つまづいております。 生体IDの削除ですが、親と子のリンクを[生体ID]でおこなっています。 たぶん、テーブルのフィールドまで削除するのではなく 単に、「フォーム」と「クエリビルダ」から[生体ID]を削除する ということでしょうか? テーブルからも[生体ID]を削除してしまうと 親と子のリンク自体が成立しなくなっていまいますがどうなんでしょう…。 まったく別の方法があるのでしょうか…。 申し訳御座いません。 ■ここからお詫びをしなければならないのかもしれませんが No.6のアドバイス時の返答時に『補足説明』で結果報告をした内容ですが [F_患部詳細メイン部]に関しては、[T_成長日記]にあるフィールドから 作成をしました。 当初は [T_成長日記]→[F_成長日記メイン部] [T_患部詳細]→[F_患部詳細メイン部] としていたのですが、どうもうまくいかず 結局[T_成長日記]に[T_患部詳細]のフィールドも全て設定をしてしまいました。 [T_成長日記]の「フィールドA」「フィールドB」「フィールドC」… →[F_成長日記メイン部]に「フィールドA」「フィールドB」「フィールドC」 →[F_患部詳細メイン部]に「フィールドD」「フィールドE」「フィールドF」 という感じです。 もしかしたらこの件で、アドバイスを頂いた内容とチグハグしているのでしょうか…。 ■上記の件を踏まえ、 [T_患部詳細]を作りアドバイスどおりに行ってみましたが抽出条件の時点で うまくいかず断念。 No.6以降の様に、全てのフィールドを[T_成長日記]に持たせいろいろなパターンで 試してみましたが、こちらも結局うまくいきませんでした。 ▼[生体ID]と[診察日]から抽出するパターン  また[診察日]を不等号を使ってみたり…。 ▼Forms!を使って[日記ID]に代入しようとしたが オートナンバー型には代入できないと怒られたり…。 ▼抽出条件の「または」に別の式を入れてみたり…。 その他にもいろいろ試しましたが、どれもうまく行かず…。 ■希望する内容(動き)を会話にしてみると ※ここから、分かりやすいように親フィールドを[FM_~]と言い換えます。 他のフォームで抽出したペットの[FM_成長日記]の中から サブフォームで表示している[日記ID]と同じ番号の[FM_患部詳細]+[F_患部詳細メイン部]を開きたいので コマンドボタンで【患部詳細】ボタンを押し[FM_患部詳細]が開くが 開いた時に、先ほど表示されていた[FM_成長日記]のサブフォームと同じ[日記ID]を【始めに!】開きたいが [F_患部詳細メイン部]にはあるレコードの移動ボタンで、他の[日記ID]のレコードも表示させたい。 となります。 で、あれこれ調べ結局行き着いた結論ですが [Forms]![F_成長日記]![F_成長日記メイン部]![日記ID]で抽出条件を設定した場合 抽出される[日記ID]が絶対的な【数値】であり、他であれこれ設定しても抽出された[日記ID]以外が 表示されない!に行き着きました。 つまり 一度抽出したレコード以外を使いたい場合は 一度リセット?しなおさなければダメ! リセットをして新たにレコードで移動をさせるか、抽出をしなければいけない。 となります。 これがDBの基本なんでしょうか どんなんでしょう…。 もしかしたら"IIF"など【もし】というかたちでうまく抽出すれば、うまく行くのか…。 それとも抽出条件で、同じ[生体ID]を抽出するがフォームで表示されている [日記ID]の値を【参照】して表示の順番を【優先的】に表示させる! みたいなVBAがあれば良いのですが…。 ん~~~~~。頭噴火中です…。

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.8

添付いただいた画面 生体ID、顧客IDの欄に実名がほしいですね T_生体情報のフィールドが 生体ID,生体名 … の順であるとして デザインモードで [生体ID 右] →[コントロールの種類の変更]→[コンボボックス] →[プロパティー]→[データ]→[値集合ソースの右端]→[▼] →[T_生体情報]→[書式]→「2」列数→「0,2」列幅 ※テーブル作成時に下枠のフィールドプロパティーの ルックアップタグより設定しておくとフォーム及びレポート作成時に反映されます。

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.7

風邪大変でしたね。こんな時やる気が亡くなりますね! あきらめられたのかと心配していました。 ハードルをいくつか越えられてようで、これからが楽しみですね ________________________________ 1) ・[F_患部詳細]→[F_患部詳細_確認] ・[F_患部詳細メイン部]→[F_患部詳細メイン部_確認] 2) [F_患部詳細_確認]のサブフォームとして[F_患部詳細メイン部_確認] 3) [F_患部詳細メイン部_確認]の抽出条件に [Forms]![F_成長日記]![F_成長日記メイン部]![日記ID] 4) [F_成長日記]へ[F_患部詳細_確認]フォームを開くコマンドボタンを設置 ________________________________ 以上正解です。 ________________________________________________________ つまり移動のコマンドボタンを押すと 【前のレコードに移動】のボタンなら→<指定したレコードに移動できません>が表示 【次のレコードに移動】のボタンなら→新規レコードの状態(全てNull)になります。 _____________________________________________________________ 前後のレコードに 抽出条件 [Forms]![F_成長日記]![F_成長日記メイン部]![日記ID] に合致するレコードは入っていますか

この投稿のマルチメディアは削除されているためご覧いただけません。
  • shinkami
  • ベストアンサー率43% (179/411)
回答No.6

回答No.3の補足のご質問にお答えします。 ▼親フォーム  F_成長日記フォーム     F_患部詳細フォーム ▼サブフォーム F_成長日記メイン部フォーム F_患部詳細メイン部フォーム ※親フォームとサブフォームのリンクは生体IDでリンク管理 ※サブフォーム同士は各テーブルの日記IDでリレーション とした場合、 親フォーム(フォームヘッダー)に設置したコマンドボタン(各フォームを開く)で、 サブフォーム内にある日記IDを取得(基に)して、各親フォームを開くにはどうしたら良いか? ※同じ日記IDの親フォーム+サブフォームを開くにはどうしたら良いか? ___________________________________________________________________________________ 手順は次の記号記号で記述します [ ] :かっこ内の文字列のツールアイコン等をクリック […… 右] :……のツールアイコン等を右クリック 「 ]:かっこ内の文字列をキーボードより入力」 → :継続 ≪ ≫:注釈等 ]」 右側の文字列:[ ]内のツールアイコン等の位置を示します。 ____________________________________________________________________________________ ※サブフォーム同士は各テーブルの日記IDでリレーション このリレーションが有効かどうか分からないので、生体IDと診察日で情報を特定して確認フォームを開くことにします。 1)各フォームをコピーして同じ形式のフォーム[F_成長日記確認][F_患部詳細確認]を作成します。 [F_成長日記 右]→[名前を付けて保存]→「F_成長日記確認」 [F_患部詳細 右]→[名前を付けて保存]→「F_患部詳細確認」 2)[F_患部詳細確認]に生体IDと診察日の条件を設定をします。 ・[F_患部詳細確認]→[デザインモード]→[データ]タグ→[プロパティ]→[レコードソースの右端の…] →[はい]→「全ての項目を(範囲指定可)フィールド枠にドラッグ] →[生体IDの抽出条件の右端 右]→[ビルド]→[+フォーム][+全てのフォーム]→[F_成長日記] →[生体ID ダブルクリック]→[値]…(生体IDの抽出条件欄にForms!F_成長日記!生体IDが入る) →[診察日の抽出条件の右端 右]→[ビルド]→[+フォーム][+全てのフォーム]→[F_成長日記] →[診察日 ダブルクリック]→[値]…(診察日の抽出条件欄にForms!F_成長日記!診察日が入る) 3)[F_成長日記確認]にF_患部詳細の生体IDと診察日の条件を設定をします。 ・[F_成長日記確認]→[デザインモード]→[データ]タグ→[プロパティ]→[レコードソースの右端の…] →[はい]→「全ての項目を(範囲指定可)フィールド枠にドラッグ] →[生体IDの抽出条件の右端 右]→[ビルド]→[+フォーム][+全てのフォーム]→[F_患部詳細] →[生体ID ダブルクリック]→[値]…(生体IDの抽出条件欄にForms!F_患部詳細!生体IDが入る) →[診察日の抽出条件の右端 右]→[ビルド]→[+フォーム][+全てのフォーム]→[F_患部詳細] →[診察日 ダブルクリック]→[値]…(診察日の抽出条件欄にForms!F_患部詳細!診察日が入る) 4)VBAによるプログラミング コマンドボタンのフォームへの配置法はご存知ですね 手順記号に慣れていただくために手順を記入します。 [F_成長日記]→[デザイン]→[コマンドボタン]→[フォームへッダー]→[フォームの操作] →[フォームの操作]→[フォームを開く]→[次へ]→[F_患部詳細確認]→[次へ]→[次へ] →[文字列]→「患部詳細確認」→[次へ]「患部詳細確認」→[完了] ______________________________________________ ここでは[F_成長日記]のフォームをダブルクリックして[F_患部詳細確認]を開くプログラムを作成します。 [F_成長日記]→[デザイン]→[コード]コマンドバーの右端近く《プログラミング画面になり、 コーディング画面の上端左右にプルダウンボックスが二つ表示されます、左でボックス等のオブジェクトを選択 し、右で選択されたオブジェクトの使用可能なイベントが表示され、その一つを選択します》を選択します。 →[form]→[DblClick]《これで下記のようにPrivate Sub で始まりEnd Subで始まるブロックが用意されます》 この間へ画面を最大化し[F_患部詳細確認]を開くようコーディングします。 Private Sub Form_DblClick(Cancel As Integer) End Sub コマンドを実行するには DoCmdを使用します。 Private Sub Form_DblClick(Cancel As Integer)の次の行に半角モードで DOCMDとして . (ピリオッドで使用可能な コマンドが表示されます。順次入力し下記のように入力してコーディングは完成します。 →[右上角の閉じるボタン]→[はい]→[F_成長日記を閉じる]→[はい] Private Sub Form_DblClick(Cancel As Integer) DoCmd.Maximize '《画面を最大化》このシングルコーテンション以降はメモとして扱われます DoCmd.OpenForm "F_患部明細確認" End Sub

torento19
質問者

補足

こんにちは。 torento19です。 大変分かりやすい説明をありがとうございます。 操作方法についていのご説明に感動しつつ クエリ(ビルド)の抽出条件の意味など理解でき、スキルアップにつながりました。 感無量です…。 また、他のサイトも参考にしつつForms![フォーム名]![フィールド名]の意味も理解でき いろいろと試せて良かったです。 個人的な問題として、風邪をひき頭が朦朧としているなかの構築作業でしたので 三途の川を見たような気がします…。 新型のインフルエンザでなかったことが救いです。 話を戻しまして、 結論から申し上げますと『目的の診察日(日記ID)のフォームは表示されましたが 一部で新たな問題点が出てきました…。』 申し訳御座いません。 いくつかの疑問点や問題点などもありますが結果をご報告いたします。 なお、私のやり方自体が間違っており、結果的に不愉快なご返答や質問になっている場合も 御座います。その時は未熟者のご質問としてお許し下さいませ。 ■まず、1)のフォームのコピーですが 親フォームのコピーでよろしんですよね? 親フォームのコピーなら、アドバイスの2)と3)について疑問点が出てきます。 親フォームのコピーである[F_患部詳細確認]の中には診察日のフィールドが無いんですよ…。 ※[F_患部詳細]自体は、[T_生体情報][T_顧客情報]から抽出したフィールドしかありません。 診察日は添付しました画像のピンク色の部分にあるサブフォームの中にあります。 つまり[T_患部詳細]テーブル(F_患部詳細メイン部フォーム)に診察日フィールドがあります。 [F_成長日記]フォームもサブフォームに診察日があります。 こちらも[T_成長日記]テーブル(F_成長日記メイン部フォーム)にあります。 親フィールドに診察日があれば  Forms!F_成長日記!診察日 で良いと思うのですが、親フィールドには無いのでこの式が設定できません。 ※Forms!F_患部詳細!診察日も同様です。 ■ここからは推測しながら試してみました。 親フォームの→[プロパティ]→[レコードソースの右端の…]からでは 診察日に抽出条件設定ができないので、あれこれ悩みつつも失礼ながらアドバイスの 内容が違うのでは?という思いもあり、自分なりにアレンジをしてみました。 1) まず、同フォームのコピーですが 親フォームのコピーとサブフォームのコピーを作成 ・[F_患部詳細]→[F_患部詳細_確認] ・[F_患部詳細メイン部]→[F_患部詳細メイン部_確認] 2) [F_患部詳細_確認]のサブフォームとして[F_患部詳細メイン部_確認] 3) [F_患部詳細メイン部_確認]の抽出条件に  [Forms]![F_成長日記]![F_成長日記メイン部]![日記ID]を入力しました。 4) [F_成長日記]へ[F_患部詳細_確認]フォームを開くコマンドボタンを設置 これで[F_成長日記]フォームのコマンドボタンを押すと サブフォームで表示されている[日記ID]と同じ[日記ID]の[F_患部詳細]フォームが 表示されるようになりました。 ■が!ここで新たな問題が…。 同じ日記ID(同じ診察日)の情報が表示されたのは良いのですが、 実は[F_患部詳細]フォームにも、レコードの移動ボタンが設置してあり このレコードの移動ボタンは、単純にコマンドボタンウィーザードの 【ボタン動作】→【前のレコードに移動】等で設置してあります。 よって、抽出条件で抽出してしまいますので、同じ日記IDのレコードしか 抽出されていないことになります。 つまり移動のコマンドボタンを押すと 【前のレコードに移動】のボタンなら→<指定したレコードに移動できません>が表示 【次のレコードに移動】のボタンなら→新規レコードの状態(全てNull)になります。 まったく同じ様に [F_患部詳細]([F_患部詳細_確認]?)から【成長日記】のコマンドボタンを押すと [F_成長日記]フォーム側で同じ日記IDのレコードしか表示されなくなります。 ■[F_患部詳細]フォームは単に確認だけのフォームとして 最終的に【閉じる】ボタンを設置してしまえば問題解決ですが レコードで移動ができるように他のスタッフから要望があるような…。 多分あります…(涙) コマンドボタンウィーザードでのレコード移動ではなく 生体IDを基にして「DoCmd.GoToRecord , , acNext」以外の方法で探してみます。 以上が結果報告です。 根本的に操作が違うなどご指摘が御座いましたらお願い致します。

回答No.5

torento19です。 画像のUPに失敗したので別アカウントで再度画像を添付します。

この投稿のマルチメディアは削除されているためご覧いただけません。

関連するQ&A