• ベストアンサー

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

  • Accessのフォームのイベントについて

    Accessのフォームをデータシートビューで開き、表示されたレコードを選択後、 セレクタのダブルクリックで、その詳細を別フォームで表示させます。 セレクタのダブルクリックで、フォームのダブルクリックイベントが発生するので、別フォームを開くことは問題ないのですが、 データシートビューのせいなのか、ラベルの部分(標題?)のダブルクリックでも、イベントが動作してしまいます。 セレクタのダブルクリックのみで処理をさせたいのですが、 フォームのダブルクリックイベント内で、セレクタがダブルクリックされたかどうかを判定する方法がありますでしょうか? よろしくお願いいたします。

  • Accessのサブフォームからフォームフィルタを使ってメインフォームも含めたレコードの抽出が出来ないのは何故でしょうか?

    フォームフィルタを利用してサブフォームに入力されている値でレコードの抽出を行いたいのですが、うまくできません。 メインフォームが持っているレコード全てを持ってきます。 メインフォームに含まれているデータが100件なら、それ全てを表示してしまうということです。 私が抽出したいレコードは2件だけです。 メインフォームからフォームフィルタを利用して抽出すると正しい結果が得られます。 これはどうしてでしょうか? サブフォームへの設定が何か足りないのでしょうか? 親・子のフォームのテーブルは同一のものです。 カテゴリーで親と子にフォームを分けました。 親にはクエリはなくて、リレーションシップしたテーブル数種から直接フォームにひっぱってあります。 子は一つのテーブルからクエリを作って、そのクエリからフォームに引っ張っています。 Access2003です。 どなたかご教示いただきますようお願いいたします。

  • アクセス2003 フォームが作成できない

    オブジェクト→フォーム→新規作成→オートフォーム:データシート→テーブルを選択で進んでいくと 画像のように「フォームを作成できませんでした」となります。 しかし画面の左下にフォームが出来ています。 そのフォームを×で閉じようとしたら 「フォーム1の変更を保存しますか?」と出るので「はい」を押すと、 「名前を付けて保存」が開き、フォーム名が先ほど選択したテーブル名になっています。 そのまま保存し、オブジェクト→フォームで該当のフォームを開くと、中身はからっぽです。 フィールドは何もないのに、レコード数だけは基のテーブルと同じ数だけ表示されています。 テーブル名はアルファベットのみです。 テーブルをダブルクリックする場合は、問題なく開けます。 ちなみに空のデータベースを作り、適当にテーブルを作り、 同じようにオートフォームでフォームを作ろうと思っても同じ現象が起きました。 ファイルが悪いと言うより、アクセスがおかしいような気がします。 環境は win7でアクセス2003と2007をいれています。 2007の使い方はよくわかりません。 ご回答よろしくお願いします。

  • テーブルにデータを保存するフォームの考え方

    Access2000で勉強中ですが、フォーム上にID 商品名 単価 のテキストボックスを作成しました。 その下に、保存されたデータを表示されるようにサブフォームを作っています。そして 新規保存・修正・削除ボタンを1つの入力フォーム上に作成して処理できるものを作ろうと考えています。 サブフォームのレコードセレクタを指定して修正ボタンを 押すとテキストボックスに内容が表示されて修正できるようにするにはどうすればよいでしょうか? 説明が下手なのですが、簡単に言うと サブフォーム上ではレコードの選択(レコードセレクタ)の指定だけで入力をさせないようにしたいのです。 VBAのレコードセレクタの取得が良く判らないので よろしくお願い致します。

  • ACCESS フォーム

    ACCESSの初心者です。 フォームのメインフォーム、サブフォームを使ってデータを入力しています。 サブフォームにデータを入力後、マウスを使わないで次のレコードに移動したいのですが、どのような方法がありますか。   よろしくお願いします。

  • Accessのメインフォームとサブフォームの使い方について

    Accessにてメインフォーム(単票形式)+サブフォーム(帳票形式)を使って進捗管理をするデータベースを作っており、新規にメインフォームで入力し、サブフォームで入力したデータを表示させてます。 サブフォームで更新したいレコードをクリックしたときにメインフォームでそのレコードを表示させるにはどのようにすればよろしいのでしょうか?

  • Access 帳票フォームでカレント行だけ色反転させれますか?

    いつもここのサイトにはお世話になっています。 今回もよろしくお願いします。 Access2002と VBAを使用して、マスターテーブルのメンテナンスの画面を作成しています。 1フォームの構成は上部に入力欄があり、 下部にサブフォームで帳票フォーム形式でテーブルが表示してあります。 下部のテーブルでレコードをクリックすると、上部の入力欄にクリックした部分のレコード(サブフォームのカレント行)内容を表示し、上部の入力欄にてデータの変更/更新を行います。 みなさんに教えていただきたいのは、 下部のサブフォーム部分でクリックした際に、クリックしたレコードの部分だけ色反転させるなどして「目立たせたい」のですが、VBAなどで色の指定を変更しても、サブフォーム全体の色が変わってしまいます。 なんとかして、1目で「カレント行」と「それ以外」とわかるようにする方法はないでしょうか? 補足説明はしますのでなんなりと申し付けてください。 よろしくお願いします。

  • アクセス2000のフォームについて

    アクセスでまたつまずいてしまいました。ちょっと教えてください。 複数のテーブルから選択クエリを作り、それを基にオートフォームでフォームを作ったのですが、フォームでデータの入力が出来ません。クエリでもデータの入力が出来ません。 「このレコードセットは更新できません」と下のほうに出ます。 フォームのプロパティのデータの更新の許可と、データ入力用のところは“はい”になっています。 私では原因がわかりません。わかりにくい質問でしょうが、どなたかご指導お願いします。

  • アクセスのフォームによるデータ入力について

    顧客の販売履歴管理で サブフォーム上に抽出した顧客データをクリックして 入力用のフォームが立ち上がりデフォルト値として抽出した顧客のデータがすでに入った状態にする方法はどうすればよいでしょうか? 顧客データデーブルと履歴テーブルがあり2間は顧客IDでリレーション関係されています。

  • Accessフォームウィザードでフォームとサブフォームを同時に作成する場合

    お世話になります。 Accessのフォームウィザードを使って フォームとサブフォームを同時に作成するとき、 サブフォームは、埋め込む形式(サブフォームがあるフォーム)とリンクされた形式(リンクされたフォーム)の2つあります。 埋め込み・リンク 両方を作成して試したみたところ 埋め込みの方は、サブフォームに新しいレコードを追加するとテーブルの方にも反映されましたが、リンクの方は、サブフォームに新しいレコードを追加してもテーブルにレコードが追加(反映)されませんでした。 どう違うのかがわかりません。 どうぞよろしくお願いいたします。