• ベストアンサー

Access2007 新規レコードに値のコピー

いつもお世話になっております。 Access2007で、レポートを作成し、そのレポートからフォームを使ってレコードを追加する場合、レポートにある情報IDのフィールドの値を、新規追加するフォームにコピーすることはできますでしょうか? テーブルは[T_記録] : 記録ID、情報ID、日時、内容、記録日時、記録者 レポートは[R_記録] フォームは[F_記録] 宜しくお願いします。

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

> レポートにある情報IDのフィールドの値を、新規追加するフォームに > コピーすることはできますでしょうか? フォームと違い、レポートでは「現在のレコード(クリックしたデータ)」を取得する 手段がないのでできません・・・と言おうと思ったのですが、改めてAccess2007 で確認してみたところ、できました(汗) ・・・Access2003から、だいぶ様変わりしているようで・・・(汗) とりあえず、レポートで「情報ID」を表示しているテキストボックス(仮にtxt情報ID とします)のダブルクリックでフォームを開くと同時に、その情報IDをフォームの同名 テキストボックスに代入する、というコードを、参考までに以下に示します。 (本当にポイントだけですが(汗)) 'レポート側:txt情報IDの「ダブルクリック時」イベント Private Sub txt情報ID_DblClick(Cancel As Integer)   'DoCmd.OpenFormのOpenArgs引数を使用して、フォームに情報IDを渡す   '(「情報IDの最小値=1」の前提で、Nullは0に変換:実際にない値なら何でも可)   DoCmd.OpenForm "[F_記録]", , , , acNewRec, , Nz(Me!txt情報ID, 0) End Sub 'フォーム側:フォームの「開く時」イベント Private Sub Form_Open(Cancel As Integer)   Dim InfID As Long   'OpenArgsで渡された情報を確認   InfID = Me.OpenArgs   '渡された情報が空でなかったら、txt情報IDテキストボックスに代入   '(情報IDの最小値が0なら、ここの「InfID > 0」も「InfID > -1」等に変更が必要)   If InfID > 0 Then Me!txt情報ID = InfID End Sub ・・・以上です。

rain_kouji
質問者

お礼

御返事が遅れて申し訳ありません。 多少の変更で願いが叶いました。 ありがとうございました。

その他の回答 (1)

  • mhassy
  • ベストアンサー率43% (16/37)
回答No.1

再び参考意見です。(笑) 新たな問題に遭遇しているご様子ですね。 少々失礼な回答になりそうですが、経験者からの助言と考えてご容赦下さい。 また、具体的な「利用者からの仕様要求」も知らない前提では有りますが、「作る側」の経験でのアドバイスです。 (私も幾多の経験で学んだことですが(笑)) 知識と経験の少ない者が「設計する」基本的な処理の流れと構造・・・ これによって発生する「ツイスターゲーム」の様に無理な体勢をする(≒(知識と技術に)ムリのある処理群)の実現と、それによって発生する新たな技術的な問題。 まずは、質問者ご自身の「知識の範囲で出来るような」、シンプルな処理や手法を選んでいきましょう。 これは、メンテナンスの容易さに加え、サポートできる方のスキルを下げることにもなり、結果的には「利用・保守」共に有益なツール作成に繋がります。 大きな川を向こう岸に渡る時、「自分の歩幅で簡単に渡る<石>」を見つけながら、その先の「道順(ルート)」までも考慮しながら進むのと同じことです。 一つの石を越える度に、次の石の選択を他人に委ねるような、現在の状態。 自分の知る知識と手法(+多少の自己調査)の組み合わせで、利用者の要求するものが実現できないかどうかを<大前提>にしてみることで、ここに列挙できない程のメリットを実現「しながら」、目的の機能を持つ物を設計&作成することが出来ます。 具体的には・・・・ 質問者さんの出来ないことが出てきた場合に、 ・違う手段はないのか? ・出来ない手段にならない、(一歩戻った)方法・手法はないか? ・その動作は、利用者にとって「使いやすいのか?」 などを、逐一考えて進むことをお勧めします。 作る側に見られる「よくある落とし穴」として、 <作るもの(仕様)に振り回された挙句、機能は満たしているのに、実用には不向き・耐えない>(笑) ということが有ります。 全てを考慮し、行き詰って他人へ道を尋ねずに、「尋ねなくても自分で行ける道を考えてみる」事を、お勧めしたいと思います。 下記の参考ページは・・・一種の「カンニング」です。(笑)

参考URL:
http://www.accessclub.jp/
rain_kouji
質問者

お礼

御返事が遅くなって申し訳ありません。 レベルが低すぎて常に背伸びしないとなかなか役に立つものができず、困っています。 教えて頂いたサイトをカンニングして勉強します。 ありがとうございました。

関連するQ&A