• ベストアンサー

【Access】サブフォームのソースオブジェクトを入れ替えたい

宜しくお願い致します。 F_1で検索条件を指定して、ボタンをクリックするとF_2が開きます。F_2はサブフォーム(F_SUB)を持っています。F_1での検索条件によってF_SUBのソースオブジェクトの値を変更させたいのですがうまくいきません。 F_1のボタンのクリックイベントに DoCmd.OpenForm "F_2" Forms![F_2]![F_SUB].SourceObject= "代入するデータ" と入れたのですがそもそも考え方が違うのでしょうか・・。宜しくアドバイスお願い致します。

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

  • ベストアンサー
回答No.1

しばらくアクセスは触っていないのですが・・・ SourceObjectはF_2フォームのサブフォームを設定するはずです(F_3とか) 過去にやっていた例では以下のようにやっていました。 Me!F_SUB.Form.RecordSource = "select * from hoge where F_1で設定した条件" Me!F_SUB.Form.Requery

関連するQ&A

  • サブフォームの新規レコードに移動したい アクセス

    親フォームのコマンドボタンをクリックしたら 親フォームにはまっているサブフォームの新規レコードに移動したいのですが、 うまくできません。 サブフォームのオブジェクト名は、"F_SubForm"です。 サブフォームはデータシートビューです。 VBAコードは Private Sub cmd_test_Click() DoCmd.SelectObject acForm, "F_SubForm" DoCmd.GoToRecord , , acNewRec End Sub です。 上記コードを実行すると DoCmd.SelectObject acForm, "F_SubForm" の部分で、 「実行時エラー 2489  オブジェクトが開いていません。」 となります。 だからと言って、 DoCmd.GoToRecord , , acNewRec だと、何も起こりません。(新規レコードに移動しません) 解決方法をご教授ください。

  • Access サブフォームのレコードソースを変更するには

    Accessのプロシージャについて教えてください。 フォーム FM0020 上に、2つのサブフォーム FS002001 と、FS002002 があります。 メインフォームにある値を使って、サブフォームのレコードソースを変更したい のですが、どうもうまくできません。 FS002001のレコードソースは下記の1行目のコードで変数strSQLに代入出来るのですが、 FS002002のレコードソースは下記の2行目のようにしても 「オブジェクトまたはクラスがこのイベントセットをサポートしていません」 となり、代入出来ないのです。 2つ目のサブフォーム上にあるテキストボックス HMCD が下記3行目のように すると代入できるので、サブフォームの名前を間違えているわけではないと思うのですが...。 他に原因としては何が考えられますか? 下記の3行を同じモジュール内に続けて書いても2行目だけがひっかかるのでもうお手上げ 状態です..。 なんとか助けてください。 お願いします。 strSQL = Forms!FM0020.FS002001.Form.RecordSource strSQL = Forms!FM0020.FS002002.Form.RecordSource strSQL = Forms!FM0020.FS002002!HMCD

  • サブフォームでクエリの更新

    「Q検索」というクエリと「F検索」というフォームを作成しフォーム上には「番号テキスト」とコマンドボタンを作成後、F検索にQ検索をドラッグしてQ検索のサブフォームを作成しました。 Q検索の番号フィールドの抽出条件には[Forms]![F検索]![番号テキスト]は入力しています。 やりたいことは 番号テキストに番号を入力しコマンドボタンをクリックしたら 一致する番号だけをサブフォームに表示させたいのですがどうすればいいのかわかりません。 今の状態は コマンドボタンのクリックイベントにVBA DoCmd.OpenQuery "Q検索", acNormal, acEdit 普通にクエリが開いてしまいます。 これをサブフォームで行うにはどうすればいいのでしょうか? よろしくお願いします。

  • ACCESS97 サブフォームのレコードソースプロパティーを変更したい。

    フォームの中にサブフォーム(データシート)が1つあります。 元のフォームのチェックボックスのオン・オフでサブフォームのレコードソースプロパティーを変更すると、 実行時エラー438 オブジェクトはこのプロパティまたはメソッドをサポートしていません。がでます。 サブフォームのビューは変更したくありません。 だれか助けてください。 If Me.未送信のみ = -1 Then Forms!F_処理選択!F_理選択サブ.RecordSource = "F_処理選択サブ_1" Else Forms!F_処理選択!F_処理選択サブ.RecordSource = "F_処理選択サブ_2" End If

  • Accessのサブフォーム

    Access2000です。 フォームを作成し、ツールボックスより「サブフォーム/サブレポート」をクリックしてサブフォームを配置しました。 イベントがEnterとExitしかないやつです。 検索するとサブフォームのテキストボックスが・・・とかあるのですが、何の事やら?です。 この、配置したサブフォームと検索すると色々ヒットするサブフォームは別物なのでしょうか? このシンプルなサブフォームのソースオブジェクトにテーブルを指定して表示させています。 リンク子フィールドやリンク親フィールドは未設定です。 使い方が間違っているでしょうか? このサブフォームの使い方がイマイチよく分かりません。 検索しても前述のように存在しないイベント(?)等の説明でさっぱりです。 分かりやすくどなたかお願いします。。。

  • ボタン押下でサブフォームのレコードソースを変更

    ボタン押下でサブフォームのレコードソースを変更 する方法を探しています。 元とするテーブルは同じですが、拾うべきフィールドが全く異なるため2つのクエリを作成しました。 元テーブル「メンバー一覧」 クエリ「q_1組のみ」「q_女性のみ」 フォームヘッダーにコンボボックスでどちらかのクエリを選択し、ボタンを押したら サブフォームが表示されるようにしたいのですが、 現在のところ、「閉じているかまたは存在しないオブジェクトを参照」というエラーが出てしまっています。 Me.でもForms("検索ウィンドウ").でも結果は同じでした。 ソースはクエリを指定しています。 Access2007 --------------------------------- Private Sub 検索ボタン_Click() If [Forms]![検索ウィンドウ]![申込形態] = "1組のみ" Then Me.検索結果サブフォーム.Form.RecordSource = "q_しぼりこみ1" Else Forms("検索ウィンドウ").検索結果サブフォーム.Form.RecordSource = "q_しぼりこみ2" End If

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

    お世話になります。 Accessにて メインフォームにコマンドボタンを置いて、クリックするとサブフォームのレコードが 次に行くようにしたいのですが、 コマンドボタン クリック Forms![メインフォーム]![サブフォーム名].Form!フィールド名.SetFocus DoCmd.GoToRecord , , acNext メインフォームとサブフォームのレコードが次に行ってしまいます。 サブフォームだけ次のレコードに行くには、どのようにすれば良いのでしょうか。 分かる方教えて下さい。 宜しくお願いします。

  • アクセスでフォームからサブフォームへの検索について

    アクセスを勉強中の初心者です。是非教えて下さい。 請求書入力フォームを作成したので、別のフォームで請求書一覧を作成しています。その請求書一覧は、サブフォームにデータシート形式で[請求No.]、[年]、[月][社名]、[金額]が一覧にでるようになっています。その元になっているクエリの条件のところに、[年]→Like [Forms]![請求一覧]![年検索] & "*" [月]→Like "*" & [Forms]![請求一覧]![月検索] & "*" [社名]→Like "*" & [Forms]![請求一覧]![社名検索] & "*" を入力しています。 ここからですが、サブフォームの上に[年検索][月検索][社名検索]のコンボボックスと[検索ボタン]があって、それぞれコンボボックスから選択後、ボタンを押したら、その対象の年や月、もしくは社名に沿ったデータがサブフォームに出るようにしたいのです。検索ボタンのクリックイベント後のところにどういう命令文を書けばいいのでしょうか。マクロの再クリエなどで設定してもどうにもなりません。マクロもVBAがまだ理解できていないので、教えていただければ幸いです。よろしくお願い致します。

  • Access 複数条件のフィルタ

    フォーム[F_MENU]に非連結のテキストボックス検索用A~Cで3つあります。 検索用A 検索用B 検索用C AかつBかつCという全件一致でフィルターをかけてフォーム[詳細]を開きたいのですが DoCmd.OpenForm "F_詳細", , , "A = '" & Forms!F_MENU!検索用A & "'" And "B = '" & Forms!F_MENU!検索用B & "'" And "C = '" & Forms!F_MENU!検索用C & "'" とやると、実行時エラー'13':型が一致しません。 と出てしまいます。 Aだけ、Bだけ、Cだけ、それぞれひとつずつ書けば、エラーなく結果が得られます。 DoCmd.OpenForm "F_詳細", , , "A = '" & Forms!F_MENU!検索用A & "'" DoCmd.OpenForm "F_詳細", , , "B = '" & Forms!F_MENU!検索用B & "'" DoCmd.OpenForm "F_詳細", , , "C = '" & Forms!F_MENU!検索用C & "'" おそらくANDの使い方が誤っていると思うのですが、添削お願いいたします。 全てのテキストボックス及び元テーブルのデータ型はテキスト型です。 条件は3つとも完全一致のみで、検索用ABC、F_詳細のABCそれぞれのカラムにNULL値はありません。 よろしくお願いします。

  • Access2007でサブフォームを再クエリする

    ==環境== OS:Windows XP Professional Ver.2002 Service Pack 3 Access 2007 マクロを使って下記の操作をしようとしています。 以前Access2000を使っていて使用できたマクロが、Access2007では動かなくなってしまいました。 このマクロをどう修正したらいいのかわかりません。 [1]フォームAに作られた一覧表(テキストボックスを使って表示している) ----------------------------------- 品名------金額a-----金額b-----合計 製品1----5000-------6000@------11000 製品2----4000-------3000-------7000 ----------------------------------- [2]そのうち明細が見たい箇所のテキストボックスをクリック  ※この場合、製品1の金額bの明細を表示させたいので   `@マークが付いているテキストボックスをクリックしています。 [3]サブフォームを持つフォームBが開く [4]フォームBの検索条件 テキストボックスの『品名検索欄』に「製品1」を入力 オプショングループの『金額区分』の「b」がON [5]フォームBを再クエリ  ※フォーム上には再クエリボタンが設置されています。   サブフォームは「sub_form」という名前で配置されています。 ==2000でのマクロ== [3]から[5]について、以下のように作成しています。 (1)フォームを開く ・フォーム名:フォームB (2)値の代入 ・アイテム:[Forms]![フォームB]![品名検索欄] ・式:[Forms]![フォームA]![品名] (3)値の代入 ・アイテム:[Forms]![フォームB]![金額区分] ・式:2 (4)キー送信 ・キー操作:+{F9} ・待機:いいえ ==2007での状況== 2000で作成したマクロをそのまま使うと(4)が動かないようです。 フォームB上では品名と金額区分が入力されており、 サブフォームに表示されるはずのデータは空です。 フォームB上の「再クエリ」ボタンを押すとデータが表示されました。 試しに(4)キー送信を再クエリ(コントロール名:sub_form)に変えたところ 「カレントレコードには'sub_form'という名前のフィールドはありません。」 と表示されてしまいました。 このマクロをどう直したらいいでしょうか。 皆さん、よろしくお願いいたします。

専門家に質問してみよう