• ベストアンサー

Accessフォームの操作で

2つの別々なフォームがあります。 それぞれのフォームの基になっているテーブルが別々にあります。 ひとつはデータが入力されているテーブルで もうひとつはフォームから入力していく空のテーブルです。 データが入力されているフォームでは、データ抽出するサブフォームを持っていて、 そこにあるレコードセレクタをダブルクリックすると もうひとつの空のテーブルから作成したフォームにデータを入力していくようにしたいんですけど、うまくいきません。 乱文でわかりにくいとは思います。 ご迷惑をおかけしますが教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

BフォームのText1フィールドのデータをBテーブルのNameに保存したい。 BフォームのレコードソースがBテーブルになっていれば、レコードの保存ボタン(Cmd1)を作ったとして下記の記述でBテーブルに保存できます。 Private Sub Cmd1_Click() On Error GoTo Err_Cmd1_Click   Me![Name] = Me![Text1]  'NameにTxet1を書き込む DoCmd.GoToRecord , , acNewRec Exit_Cmd1_Click: Exit Sub Err_Cmd1_Click: MsgBox Err.Description Resume Exit_Cmd1_Click End Sub こんな感じで試してみてください。

その他の回答 (2)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

>AテーブルからのデータをどのようにしたらBフォームへ持っていけるか レコードセレクタをなしにして替りにBフォームを開くボタンを創り特定のレコードを開くようにしてBフォームを開くようにする。 BフォームにAテーブルの必要なデータを表示できる非連結のフィールドを創る。 Bフォームに入力したデータをBテーブルに保存する際にBフォームの非連結フィールドに読み込んだAテーブルのデータも一緒にBテーブルへ保存する。 保存するときのVBに非連結フィールドのデータを保存する記述を付け加えれば出来ます。

YUK2001
質問者

補足

必要なデータを表示させる非連結フィールドはどうしたら作れますか? わかる知識内で、フォームを開くときにWhere条件式を入力して、Aフォームのサブフォームの主キーを基にして、選択したレコードのみをBフォームへ表示させることはできましたが、そこからBテーブルに保存するにはどのようなVBの記述になりますか? また、Bフォームに入力した段階でBテーブルに同時に保存してもかまわないのですが、それは可能ですか?

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

例えば Aテーブルのレコードを抽出してAフォームに表示しボタン等をクリックすると空のBテーブル用のBフォームが開きAテーブルから必要なデータはAテーブルから持ってきてその他は入力されたデータをBテーブルに一緒に保存するということですか? どの辺がうまくいかないのですか?

YUK2001
質問者

補足

回答ありがとうございます。 理想的には、Aフォームのレコードセレクタを使って、別のBフォーム(表形式)にAフォームでクリックしたデータを次々に入力していきたかったんです。 根本的にAテーブルからのデータをどのようにしたらBフォームへ持っていけるかがわからなくて、 クエリを使っていいのか、それともVBAなのか、都合のいい方法が思いつきませんでした。 まだAccessを使い始めて間もないもので 初歩的なことかもしれませんが教えて下さい。

関連するQ&A