- ベストアンサー
Accessフォームの操作で
2つの別々なフォームがあります。 それぞれのフォームの基になっているテーブルが別々にあります。 ひとつはデータが入力されているテーブルで もうひとつはフォームから入力していく空のテーブルです。 データが入力されているフォームでは、データ抽出するサブフォームを持っていて、 そこにあるレコードセレクタをダブルクリックすると もうひとつの空のテーブルから作成したフォームにデータを入力していくようにしたいんですけど、うまくいきません。 乱文でわかりにくいとは思います。 ご迷惑をおかけしますが教えてください。 よろしくお願いします。
- みんなの回答 (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)
>AテーブルからのデータをどのようにしたらBフォームへ持っていけるか レコードセレクタをなしにして替りにBフォームを開くボタンを創り特定のレコードを開くようにしてBフォームを開くようにする。 BフォームにAテーブルの必要なデータを表示できる非連結のフィールドを創る。 Bフォームに入力したデータをBテーブルに保存する際にBフォームの非連結フィールドに読み込んだAテーブルのデータも一緒にBテーブルへ保存する。 保存するときのVBに非連結フィールドのデータを保存する記述を付け加えれば出来ます。
- O_cyan
- ベストアンサー率59% (745/1260)
例えば Aテーブルのレコードを抽出してAフォームに表示しボタン等をクリックすると空のBテーブル用のBフォームが開きAテーブルから必要なデータはAテーブルから持ってきてその他は入力されたデータをBテーブルに一緒に保存するということですか? どの辺がうまくいかないのですか?
補足
回答ありがとうございます。 理想的には、Aフォームのレコードセレクタを使って、別のBフォーム(表形式)にAフォームでクリックしたデータを次々に入力していきたかったんです。 根本的にAテーブルからのデータをどのようにしたらBフォームへ持っていけるかがわからなくて、 クエリを使っていいのか、それともVBAなのか、都合のいい方法が思いつきませんでした。 まだAccessを使い始めて間もないもので 初歩的なことかもしれませんが教えて下さい。
補足
必要なデータを表示させる非連結フィールドはどうしたら作れますか? わかる知識内で、フォームを開くときにWhere条件式を入力して、Aフォームのサブフォームの主キーを基にして、選択したレコードのみをBフォームへ表示させることはできましたが、そこからBテーブルに保存するにはどのようなVBの記述になりますか? また、Bフォームに入力した段階でBテーブルに同時に保存してもかまわないのですが、それは可能ですか?