• 締切済み

リストボックスからサブフォームに入力するには

WindowsXP Access2003 フォーム上のリストボックスの行をクリックすることによって、同じフォーム上にあるサブフォームにそのデータを入力したいと思います。 フォームがメインサブではない普通のフォームへの入力は実現できているのですが、サブフォームへの場合うまくいきません。 どなたかご存知の方、ご教授をお願いいたします

みんなの回答

回答No.1

実際に質問のようなコードを書く必要があるのか少し疑問です。 サブフォームに進捗データが表示されていてバーコードで更新する。 そのような場合には、入力データに合致するサブフォームの行を検索。 その上で当該の列を更新することなります。 こういうコードを書くのは、極めて異例かと思いますが・・・。 前置きは、これ位にして・・・。 >サブフォームにそのデータを入力したい・・・ これには、更新する行を特定する情報が必要です。 >リストボックスの行をクリック・・・ >そのデータを入力したいと思います。 リストボックスから得られる情報は行を特定するものではなく列を更新するための値。 ですから、現状では目的を達成することはできません。 仮に、列の値をリストボックスから更新したい、あるいはフォームを参照したいのであれば・・・ 更新するサブフォームの列で値が空か空にしたら、参照を開始する。 これが、一般的かと思います。 もちろん、質問されているメインからサブフォームの特定の行の特定の列を更新するのは可能。 例えば、下の画面では、コマンドボタンがクリックされたら[orderGoods]の'B'を'C'に変更します。 リストボックスをクリックするもコマンドボタンをクリックするも同じ動作。 Private Sub サブフォームの注文商品を変更_Click()   Dim rst As DAO.Recordset   Set rst = Me.Orders_サブフォーム.Form.RecordsetClone   With rst     .FindFirst "id=2"     .Edit     .Fields("orderGoods") = "C"     .Update     .Close   End With End Sub

関連するQ&A

  • リストボックスとサブフォーム【AC97】

    リストBOXとサブフォームを使った処理で悩んでおります。 リストBOXで指定したらそれに該当するレコードをサブフォームに一覧表示させたいのです。 目的は図書管理みたいなものでリストBOXには著者一覧(著者ID、氏名、コメント)が表示されておりそこから1つ(複数不可)指定してマウスでクリックするとその著者書籍がサブフォームに一覧表示される(書籍ID、書籍名、出版社、棚番)、っていうような代物です。テーブル2つ程度なのですがアクセスを触り始めたばかりでまだヘルプも上手く引けずそもそも基本がまだ判っていないため四苦八苦です。アドバイスやヒントだけでもと思いお願いしました。環境はアクセス97+WIN98です。 よろしくおねがいします。

  • ACCESSでコンボボックスからの入力でリスト外の追加をフォームを使っ

    ACCESSでコンボボックスからの入力でリスト外の追加をフォームを使って登録 ACCESSのフォームを使ってデータ入力を作成しています、"顧客名"をコンボボックスを使って選択するようにしていますが。 リスト外の新規顧客を入力する際には別の"顧客登録"フォームが開いて、顧客情報(読み仮名、顧客名、都道府県コード、所在地)を入力して、閉じると登録した"顧客名"がコンボボックスから選択できるようにしたいと思い、マクロを使用して(VBはよくわからないので) イベント→リスト外入力時→”顧客登録”フォームが開く 必要事項を入力し、閉じるボタンをクリック。 してみたのですが、コンボボックスのリストに先に入力した新規データが出てきません。 何が足りないのかご教授お願いいたします

  • サブフォームのリクエリー

    accessにて開発を行ってるのですが・・・ まず、メインフォームとサブフォームがあり、メインフォームのテキストボックスに入力したデータにマッチしたデータのみをサブフォーム上に表示させるには・・・ ちなみに・・・ ・サブフォームにはクエリーデータを常時表示 ・メインフォームより入力があったらその条件でサブフォーム表示の更新 っていう感じです・・・よろしくお願いします。

  • サブフォームでのダブルクリックイベント

    Access2003です。 フォームにサブフォームを設置し、直接テーブルを表示させています。 このサブフォームのテーブルのある行をダブルクリックしたら その行のデータを他のフォームのオブジェクトにセットしたいのですが 行や行のデータ全てを取得は出来るのですが、サブフォームのイベントがEnterとExitしかなくて、イベント発生が出来ません。 フォームのダブルクリックでXとYを見て…と思ったのですがサブフォーム上ではフォームのダブルクリックイベントが発生せず。 サブフォームのテーブルはユーザーがソートする事もあるのでベタに上にテキストボックス等を置く事は出来ません。 どうにかダブルクリックで動作させる方法はありませんでしょうか?

  • Accessメインサブフォームにて・・・

    Accessのサブフォームで、入力するためのフォームと、 実際にメインフォームの中で表示させる時のサブフォームの表示を 変えたいのですが・・・。 (1)ボタンをクリックして、入力するためのサブフォームを表示させる。  これは帳票形式で、テキストボックスの罫線が表示されているよう  にします。 (2)入力し終わったら、メインフォームに戻る。  こちらで表示されるサブフォームは、テキストボックスの罫線が表示  されていないようにする。 上記のようなことはできるでしょうか?よろしくお願いします。  

  • サブフォームのテキストボックスにフォーカスを戻す

    Access2010です。 メインフォームにいくつかのテキストボックスやコンボボックスと「登録」ボタンがあり、メインフォームの中には帳票形式のサブフォームがあります。 サブフォームには ・数量 ・単価 ・金額 のテキストボックスがあります。 フォーカスがサブフォームのいずれかのテキストボックスにある状態で、「登録」ボタンをクリックするとYES/NOボタンがある確認画面が表示されます。 そこでNOを選択した場合に、直前までフォーカスがあったサブフォームのテキストボックスへフォーカスを戻すにはどうしたら良いでしょうか?

  • Access2007 サブフォームでフィルタリングする方法

    お世話になっております。 フォーム上に関連性のないサブフォームがあります。 フォームのコンボボックスでデータを選び検索ボタンをクリックすると、サブフォームのフィールドがコンボボックスのデータで抽出できるようにしたいと思います。 このように書いてみましたが、検索ボタンをクリックするとサブフォームの全てのデータが消えてしまい、実現できませんでした。 Me.FilterOn = True Me.Filter = "(Forms!フォーム!サブフォーム1!コンボ Like '*" & Me.フィールド & "*')" サブフォームでフィルタリングできる方法を教えていただければ幸いです。 よろしくお願いいたします。

  • ACCESS2000のサブフォーム

    ACCESS2000のサブフォームで データが複数行あり、 そのデータ表示内に2つチェック ボックスがあるとします。 1行目のどちらか1つだけ Enabled=FALSEすると 2行以下も使用できなくなります。 1行目だけ使用不可にしたい場合は どうしたらよいか、誰かご存知ないでしょうか?

  • ACCESS2003 サブフォームのデータ

    こんにちは。宜しくお願い致します。 ACCESS2003でDBを作成しています。 メインフォームの中にサブフォームを作っています。 それぞれのID(オートナンバー)をリレーションシップとして設定し、連動しています。 メインフォームにデータを追加する際、サブフォームにデータを入力せずに、 次のメインフォームにデータを入れた場合、 サブフォームのオートナンバーが働かず、のちのちデータを入れた際にIDが違うため情報がずれてしまいます。 例えば、 メインフォームのID1~9のサブフォームには何も書き込まずメインフォームにだけデータを入力します。 その後、メインフォームのID10にあるサブフォームにデータを書き込むと、立ち上げなおしたときに、そのサブフォームへの入力したデータがID1のデータとして出てきてしまいます。 恐らく簡単なことだとは思うのですが、なにぶん初心者なものでさっぱり分かりません。 お分かりになる方、是非ともご教授お願いいたします。

  • ACCESSのサブフォーム

    ACCESSのサブフォームで、レコード表示について教えてください。 添付のサブフォームの一番左のコンボボックスに値を入力もしくは選択すると、未入力のレコードが下に1行分増えます。 (その他項目は連動して表示されます) サブフォームは帳票フォームを選択しているのですが、一般的には帳票フォームを選択した場合、レコードの数分だけ表示されると思うのですが、これは1レコードづつ増えていきます。 このサブフォームを作った人がもういないので、どうやって作ったのかが分かりません。 どなたか分かる人がいれば教えて頂けますでしょうか。 必要な情報があれば、調べて回答します。