• ベストアンサー

サブフォーム同士を連動 フィルタをかけると解除

http://bekkoame.okwave.jp/qa8213065.html の Private Sub Form_Open(Cancel As Integer) Set Me.SubForm2.Form.Recordset = Me.SubForm1.Form.Recordset End Sub の方法でサブフォーム同士を連動させたのですが Form_Open後に、フィルタをかけると連動しなくなってしまいます。 連動させつつ、フィルタをかけて連動を維持させる方法はありますか?

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

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

以下を参考にしてください 複数条件の抽出フォームの設計 その3 http://hatenachips.blog34.fc2.com/blog-entry-131.html ※ > ただし、フィルタをかけると から始まる部分を良く読んでください

FKJNSGWGHPU
質問者

お礼

ご回答ありがとうございます。

関連するQ&A

  • access サブフォーム間の連動について

    Access2013について メイン親単票フォーム上に連動する二つのサブフォームを配置させました。 内一つは帳票、もう一つは単票にし、帳票からレコードを選択するとデータ詳細が単票側が連動するまで至りましたが、ここでサブフォーム帳票を並べ替えや抽出を実行すると、サブフォーム間の連動が出来なくなり、解決に困っております。 解決方法をご存知の方、お力添え願います。 親フォームに VBA Private Sub Form_Open(Cancel As Integer) Set Me.SubForm2.Form.Recordset = Me.SubForm1.Form.Recordset End Sub 抽出方法としては帳票サブフォーム上からとメインフォーム上からの実行までを試しておりますが、いずれも抽出後にサブフォーム間の連動が出来なくなってしまう状況です。 お力添え、宜しくお願いいたします。

  • サブフォームにフィルタをかけたい

    サブフォームにフィルタをかけたいのですが エラーになってしまいます。 下記がエラー内容です。 ---------------------------------------------------------- 実行時エラー 438 オブジェクトは、このプロパティまたはメソッドをサポートしていません。 ---------------------------------------------------------- 細かい概要は テーブル1にフィールドがあり、 レコードには「あああ」と入力されています。 テーブル1がレコードソースとされている「フォーム(2)」をサブフォームとして 親フォーム(フォーム名:フォーム(1))に乗せました。 フォーム(1)を開いた時にフォーム(2)にフィルタをかけたいのですが うまくいきません。 オブジェクト名にカッコを付けているため、 Form_フォーム・・・・ というコードは書けないので ---------------------------------------------------------- Private Sub Form_Open(Cancel As Integer) Forms("フォーム(1)").Controls("フォーム(2)").Form.Filter = "フィールド = '" & "*あ*" & "'" Forms("フォーム(1)").Controls("フォーム(2)").FilterOn = True End Sub ---------------------------------------------------------- としています。 Forms("フォーム(1)").Controls("フォーム(2)").FilterOn = True でエラーになりますが、 この行をなくしたら、フィルタがかかりません。 どうすればサブフォームにフィルタをかける事が出来るのでしょうか? ご教示よろしくお願い致します。

  • Access サブフォームにフィルターをかけるには?

    メインフォームの中にタブを置きその中に表形式のサブフォーム(SUB)を置いています。 メインにボタン(コマンド10)を置いて押されたらサブのFunction(test)に飛ぶようにしてます。 ----メイン----- Private Sub コマンド10_MouseDown(~~~ [SUB].SetFocus Debug.Print Me.SUB.Form.test End Sub -----サブ----- Public Function test() DoCmd.ApplyFilter , "氏名=" & data End Function として、サブフォームにフィルターをかけたいのですが、エラーになります。 サブ単体では、動くのですが。

  • Recordset = Me.Recordset

    F_Mainをフィルタをかけた状態で、 F_詳細を開くと、F_Mainのフィルタが解除されてしまいます。 F_MainとF_詳細は関連ずく用に、 F_詳細のイベントで Private Sub Form_Open(Cancel As Integer) Set Forms("F_Main").Recordset = Me.Recordset End Sub としています。 確かに関連づきますが、 F_Mainのフィルタの状態を維持し、 なおかつF_Mainのカレントレコードを、F_詳細でカレントレコードした状態で開く方法はありますか?

  • サブフォームのビューを切り替えたい

    親フォーム(フォーム1)にサブフォームとして、 テーブルをソースとするサブフォーム(テーブル1のサブフォーム)を配置しました。 親フォームからサブフォームのビューを変更したいのですが どうすればいいか教えてください。 親フォームのコマンドボタンにはそれぞれ Private Sub 単票フォームへ切り替え_Click() Me.Controls("テーブル1のサブフォーム").Form.DefaultView = 1 '帳票フォーム End Sub Private Sub 帳票フォームへ切り替え_Click() Me.Controls("テーブル1のサブフォーム").Form.DefaultView = 0 '単票フォーム End Sub としたのですが、 実行すると 実行時エラー 2136 "このプロパティを設定するには、フォームまたはレポートをデザインビューで開きます"。 となってしまいます。 Private Sub 帳票フォームへ切り替え_Click() DoCmd.SelectObject acForm, "テーブル1のサブフォーム" DoCmd.RunCommand acCmdFormView End Sub にしたところ、 実行時エラー 2489 “オブジェクト テーブル1が開いていません、” になります。 サブフォームに埋め込んでいて親フォームを開いていても 開いてない事になるのですね。 フォームビューの時に、切り替える事は不可能なのでしょうか? 帳票ビュー表示用フォーム、 単票ビュー表示用フォーム を作るしかないのでしょうか?

  • ACCESSで条件によってサブフォームを非表示に

    Accessの初心者です。よろしくお願いします。 Accessで住所録を作っています。 メインフォームは主に本人のデータを表示し、サブフォームで家族の データを表示するようにしました。 その時、家族がいない人についてはサブフォーム自体を表示しないようにしたいと思います。 そこで下記のようにしましたがうまくいきませんでした。 (1)サブフォーム内で家族の人数をカウントする。 (2)このカウント結果をメインフォームに表示する。(メインフォーム にテキストボックスを配置し、コントロールソースをサブフォームの 人数カウントにする。)     ここまではうまくいきました。 (3)ここでメインフォームのイベントの「開くとき」に以下のように記 述しました。(メインフォームのテキストボックスにカウントという  名前をつけました。) Private Sub Form_Open(Cancel As Integer) If Me!カウント = 0 Then サブフォーム.Visible = False Else サブフォーム.Visible = True End If End Sub この記述の仕方がまずいと思うのですが、どのようにすればよいか 分りません。よろしくお願いします。

  • フィルターの文字列を空にしたいのですが

    親フォームからサブフォームを閉じる時に、フィルターの文字列を空にしたいのですが Private Sub Form_Close() Me.Controls("F_SubMain").Form.Filter = Empty DoCmd.Save acForm, Me.Name MsgBox Me.Controls("F_SubMain").Form.Filter DoCmd.ShowToolbar "Ribbon", acToolbarYes End Sub としても、フィルターの文字が残ってしまいます。 親フォームにサブフォームに入れてるので、 そのサブフォームのフィルタの文字列を空白にしたいのですが DoCmd.Save acForm, Me.Name で保存できないようなのですが DoCmd.Save acForm, Me.Controls("F_SubMain").Form もエラーになりました。 こういうことをやりたい場合、どうすればいいでしょうか?

  • 親フォームからサブフォームのレコードソースを設定

    親フォームからサブフォームのレコードソースを設定するには? フォーム1にテーブル1をドロップアンドドラッグして、「テーブル1のサブフォーム」を作成しました。 フォーム1にあるコマンドボタンから「テーブル1のサブフォーム」のRecordSourceを設定する方法を教えてください。 「テーブル1のサブフォーム」からなら Private Sub Form_Load() Me.RecordSource = "" End Sub とできるのですが、 やりたいことはフォーム1からのイベントなので 「テーブル1のサブフォーム」からのイベントは使えません。 だからってフォーム1の Private Sub コマンド2_Click() Me.テーブル1のサブフォーム.RecordSource = "テーブル1のサブフォーム" End Sub とするとコンパイルエラーになります。 良い方法があれば教えてください。アドバイスよろしくお願いします。

  • サブフォームでフィルタしたデータのCSV出力

    ACCESS2007 で テーブル  T_リスト name      cate aaa       123 sss       543 rtyy      45t4 フォーム 顧客があり リスト作成ボタンがあります フォーム顧客の中に フォーム電話帳サブフォームがあり データソースはT_リストです その都度手動でフィルタをかける作業をします リスト作成ボタンを押すとフィルタで抽出したデータだけを CSVに書き出したいと思っています。 下記実行しましたが、 T_リストの一行目のデータしか書き出しません DoCmd.OpenForm ("電話帳サブフォーム")でフォームを出さずに実行したいです どなたかよいアドバイスをお願いします。 Private Sub コマンド1_Click() Dim F As Variant Dim Field1 As String Dim Field2 As String Dim M As Double Dim i As Double Field1 = "name" Field2 = "cat1" M = Me![電話帳サブフォーム].Form.Recordset.RecordCount Open "C:\ListMaker\out.csv" For Output As #1 Write #1, Field1, Field2 DoCmd.OpenForm ("電話帳サブフォーム") Me.[電話帳サブフォーム].SetFocus For i = 1 To M DoCmd.GoToRecord acDataForm, "Me.電話帳サブフォーム", acGoTo, i Write #1, Me![電話帳サブフォーム]![name] i = i + 1 Next DoCmd.GoToRecord , , acFirst Close #1 End Sub

  • アクセスVBA コンパイルエラー

    フォームを開いた時にフォームの高さを設定したいので Private Sub Form_Open(Cancel As Integer) Me.Height = 12000 End Sub としてるのですが「.Height =」の部分がコンパイルエラーになってしまいます。 何がいけないのでしょうか?

専門家に質問してみよう