• ベストアンサー

AccessサブフォームでのDoCmd.ApplyFilter

DoCmd.ApplyFilterの使い方について。 単体では正常に動くフォームを、あらた作ったフォーム上にドラッグして(サブフォーム?)使おうとしています。 単体ではうまく動いていたDoCmd.ApplyFilter が、サブに入るとエラーになります。 対処法をご指南ください。 ちなみにメインフォームは空です。

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

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

>これは複数条件を設定できないみたいで そうですか? orを多用しているとか? そのフィルタ指定文を、一度見せてもらえませんか?

situmonnsya
質問者

お礼

>そうですか? 再度、コードを点検し複数条件でやってみました。 なんと、できました!! コードが悪いだけでエラーが出てたのに、複数条件はダメだと思いこんでました。 ありがとうございます。

その他の回答 (1)

回答No.1

ん? 同様の質問? 解消されたのでは? http://okwave.jp/kotaeru.php3?q=1753131

situmonnsya
質問者

補足

はい、ありがとうございます。 解決したのですが、DoCmd.ApplyFilterだけがエラーにになるんです。 Debug.Print Me.SUB.Form.XXXでサブフォームのファンクションには行ってくれるんですが、その中のDoCmd.ApplyFilterだけが通りません。 Filter = 文字列 FilterON = True は使えるのですが、これは複数条件を設定できないみたいで。 簡単に、手軽に使えるのがDoCmd.ApplyFilterだと思いまして。

関連するQ&A

  • AccessのDoCmd.ApplyFilterの使い方をおしえてください。

    社内で素人アプリケーション開発担当を買って出ているばか者です。 どうかこの私を助けてください。 商品マスターのようなものをサブフォームにして作っております。 メインフォームのコンボボックスの更新後処理イベントプロシージャに、そのサブフォームへDoCmd.ApplyFilterを実行させようとしてもうまく行きません。 「実行時エラー”2491”フォームがテーブルまたはクエリーを元に作成されていないので、このアクションは向こうです。」となってしまいます。ツールバーの選択フィルター使うとできるのですがイベントプロシージャでは不可能なのでしょうか。ご指導の程宜しくお願い致します。

  • 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 として、サブフォームにフィルターをかけたいのですが、エラーになります。 サブ単体では、動くのですが。

  • Access2007 サブフォームでのフィルタ方法(DoCmd.ApplyFilter)

    お世話になっております。 フォームAに検索ボックスを作り、検索ボタンを押すと下記のようにフィルタをかけています。 Private Sub 検索_Click() DoCmd.ApplyFilter , "(分類名 Like '*" & Me.検索語 & "*')" End Sub このフォームAをフォームBのサブフォームとして使いたいのですが、そこで検索を実行すると”実行時エラー2491”が出てフィルタができません。 (フォームAとフォームB間のリンクはありません) 他の方法でもいいのですが、サブフォームでフィルタを実行したいと思います。 ご教授いただければ幸いです。よろしくお願いいたします。

  • ACCESSのサブフォームコピーについて

    ACCESSのサブフォームコピーについて お世話になります。色々検索してたのですがなかなか解決できず、教えて下さい。 下記のようなフォームがあります。 メインフォームにボタンを設置し、メインフォームとサブフォームを同時にコピーしたいです。 【メインフォーム】 ID(オートナンバー) 登録名 住所 電話番号 など 【サブフォーム】 SubID(オートナンバー) ID(メインフォームと連結) ライセンス数 開始日 など メインフォームの「内容のコピーを作成」ボタンのクリック時の[イベント プロシージャ]に下記が記載してあります。 --- Private Sub 内容のコピーを作成_Click() On Error GoTo Err_内容のコピーを作成_Click Select Case MsgBox(srchXls & "◆内容のコピーを作成しますか?◆", vbOKCancel) Case vbOK DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append MsgBox (srchXls & Chr(13) & Chr(10) & "◆コピーを作成しました◆") Err_内容のコピーを作成_Click: Case Else Exit Sub End Select End Sub --- これではメインフォームのコピーしか出来ません。 サブフォームも一緒にコピーしたいのですが、どういった方法があるでしょうか。 宜しくお願いいたします。

  • Access+VB サブフォーム(再度)

    表形式フォームで出来上がったものがあります。 Form_Openイベントには、DoCmd.FindRecordで検索をかけてます。 次に、新しくフォームを作りそれにタブコントロールを置き、その中に出来上がってある表形式フォームを置きました。 単体ではDoCmd.FindRecord検索かかってましたが、新しいフォームのサブフォームにするとできません。 そもそも、コントロールになりさがった、サブフォームにForm_Openイベントはあるんでしょうか? Form_GotFocusイベント(サブ側)は働かなくなってるし、サブフォームのイベントプロパテイにはフォーカスの取得時と喪失時しかありません。 メインから、サブフォームがOPENした時に検索かけるにはどうしたらよいでしょう?

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

    親フォーム(フォーム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が開いていません、” になります。 サブフォームに埋め込んでいて親フォームを開いていても 開いてない事になるのですね。 フォームビューの時に、切り替える事は不可能なのでしょうか? 帳票ビュー表示用フォーム、 単票ビュー表示用フォーム を作るしかないのでしょうか?

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

    親フォームのコマンドボタンをクリックしたら 親フォームにはまっているサブフォームの新規レコードに移動したいのですが、 うまくできません。 サブフォームのオブジェクト名は、"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 だと、何も起こりません。(新規レコードに移動しません) 解決方法をご教授ください。

  • アクセス2003のサブフォームの値の代入

    アクセス2003でメインフォームにデータシートビューのサブフォームを作成しています。 そのサブフォームのフィールドにイベントで検索用の別のフォームを開くようにしています。 検索用フォームからサブフォームへマクロで値を代入するように しているのですが、サブフォームが見つからないというエラーが表示されます。 どこに問題があるのでしょうか? (ちなみにサブフォームだけ開いて検索フォームを開き値を代入するとうまく行きます。メインフォームからだとエラーになります。) どうぞよろしくお願いします。

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

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

  • Access2000 サブフォームのRecordSet取得法

    Access2000を用い、メインフォームを作成(F_Main)し、 サブフォームコントロール(sub_from)を配置しました。 sub_formの「ソースオブジェクト」プロパティを別フォーム(F_Sub)とし、F_Subのレコードソースにはテーブル(T_Name)を設定しました。 つまり、メインフォームに子フォームが配置された状態です。 このF_Subのテーブルのレコードを操作するため、以下のプログラムを作りましたが、「フォームF_Subが見つかりません。」というエラーになってしまいます。 Dim rs as Recordset rs = Forms![F_Sub].RecordsetClone ← エラー メインフォームのモジュールでも、サブフォームのモジュールでもどちらにこのプログラムを記述してもエラーが発生します。 メインフォーム上に配置したサブフォームのレコードセットを取得し、操作する方法をご教授下さい。 環境 Windows 2000 Professional Access 2000

専門家に質問してみよう