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

このQ&Aに関連する最新のQ&A

A 回答 (2件)

サブフォームにフィルタを適用するには、以下のようにします。



Private Sub コマンド1_Click()
  'フィルタを設定(IDが10以下)
  Me.サブフォーム名.Form.Filter = "ID <= 10"
  '[フィルタの使用]プロパティを「はい」に設定
  Me.サブフォーム名.Form.FilterOn = True
End Sub

Docmd.ApplyFilter を使ったやり方も試してみたんですが、どうもうまく出来ませんでした。ちょっとした工夫でいけると思うんやけどなぁ。
    • good
    • 0

ツールバーの選択フィルターで動作するのであれば、


VBA(モジュール)からDoCmd.DoMenuItemまたは
DoCmd.RunCommandで代替出来ると思います。

DoCmd.RunCommand acCmdFilterBySelection
で選択フィルターと同じ動きをすると思います、
# 試していないので何ともいえませんが、、、
    • good
    • 1

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QACCESS2003のデータアクセスページの使い方について

イントラ内でACCESS2003のデータアクセスページを使いたい。

1.ACCESS2003のデータアクセスページを作成しました。
2.そのMDBファイルと、データアクセスページ(htmファイル)を、WINDOWS2000ServerのInetpub内のwwwrootフォルダの中へ入れました。
3.ここにはイントラ内のHPなどを置いています。(普通に見れています。)
4.クライアントから、データアクセスページのhtmファイルを見に行くと「データソースログオン」が立ち上がります。(パスワードを設定しています。)
5.パスワードを入れるとデータアクセスページ(htm)から、通常のアクセスのフォームのごとくデータ入力が出来る予定なのですが(泣)できません。(泣)

で、悩んでおります。

ACCESS2003のMDBファイルとデータアクセスページ(HTMファイル)をサーバーのwwwrootへ置いただけでは、データアクセスページを通してmdbファイルへの入出力は不可能なのでしょうか?

Aベストアンサー

MDBに接続されたAccessプロジェクトを開いている場合データアクセスページは自動的にそのデータベースに接続されてそのパスがデータアクセスページのConnectionString プロパティに設定されます。
ページを作成した後でデータベースを移動またはコピーした場合はConnectionString プロパティに設定されているパスを更新して新しい保管場所を設定する必要がありますがどうなっていますか?
そこを確認してみてください。

QAccess2007  DoCmd.ApplyFilterについて

お世話になっております。
このように書けばコード1のみが抽出されますが、1以上にしたい場合はどのように書けば良いのでしょうか。
(0以外を指定したいと思います)

DoCmd.ApplyFilter , "(コード Like '1')"

ご教授いただければ幸いです。よろしくお願いいたします。

Aベストアンサー

> 1以上にしたい場合はどのように書けば良いのでしょうか。
> (0以外を指定したいと思います)

「コード」フィールドのデータ型が、「数値型」か「テキスト型」かによって、
式が若干変わります。
(なお、上記の質問文から、負の数および小数のコードはないと判断)

【数値型の場合】
 DoCmd.ApplyFilter , "コード > 0"
または
 DoCmd.ApplyFilter , "コード >= 1"

【テキスト型の場合】
 DoCmd.ApplyFilter , "CLng(コード) > 0"
または
 DoCmd.ApplyFilter , "CLng(コード) >= 1"

なお、万が一Null(空白)のデータがある場合は、それを表示しないなら
 DoCmd.ApplyFilter , "CLng(Nz(コード, 0)) > 0"
表示するなら
 DoCmd.ApplyFilter , "CLng(Nz(コード, 1)) > 0"
とします。
(CLng関数は指定したデータの型を長整数型に、
 Nz関数は1番目に指定したデータ(上では「コード」)を、2番目に指定
 したデータ(上では「0」や「1」)に、それぞれ変換する関数です)


※データ型がテキスト型で、数値(長整数型)に変換できないデータが
  1件でもあった場合はエラーとなり、上記の式では検索できません。

> 1以上にしたい場合はどのように書けば良いのでしょうか。
> (0以外を指定したいと思います)

「コード」フィールドのデータ型が、「数値型」か「テキスト型」かによって、
式が若干変わります。
(なお、上記の質問文から、負の数および小数のコードはないと判断)

【数値型の場合】
 DoCmd.ApplyFilter , "コード > 0"
または
 DoCmd.ApplyFilter , "コード >= 1"

【テキスト型の場合】
 DoCmd.ApplyFilter , "CLng(コード) > 0"
または
 DoCmd.ApplyFilter , "CLng(コード) >= 1"

な...続きを読む

QAccessの使い方

アクセスに関しては、まったくの素人なので困っています。
実は会社のパソコンが、ハードディスククラッシュしまして、アクセスのデータがなくなってしまいました。
商品(冊子)を発送するために、帯封を作成したいのです。B4の用紙に3面付するつもりです。
それで、発送のエクセルの名簿は残っているのですが、それをアクセスにどのように取り込んだらいいかわかりません。
取り込んだあとの面付けやデザインなどは、参考書を見ながら勉強するつもりですが、
まず取り込み方がわからないので困っています。
アクセスに詳しい方、ぜひご指導願います。

Aベストアンサー

ちょっと今手元に
Accessの入ったマシンがないので微妙ですが
メニュー⇒ファイル⇒外部データの取り込み⇒インポート
これで取り込めると思います。
まあ方法はいろいろあると思いますよ、他にも。

Excelファイルをテーブルとしてリンクしたり、
プログラムで取り込むようにも作れます。

とりあえず、上記の方法で試してみてください。

Qサブフォームを利用したクエリーの抽出条件について

環境:ACCESS2003&XP Pro
メインフォーム&サブフォームのフォームを作成しています。
このサブフォームにテキストボックスをつけ、このテキストボックスの値を抽出条件にしたクエリーを作成しましたが、抽出条件がうまくいかないようで
クエリー実行時にパラメータを聞いてきます。
クエリーの抽出条件は
forms![メインフォーム名].[サブフォーム名].[テキストボックス名]
です。
上記の書き方がおかしいのだと思います。
よろしくお願いします。

Aベストアンサー

forms![メインフォーム名].[サブフォーム名].Form.[テキストボックス名]
ではどうでしょうか?

Q.htaccessの使い方について教えてください!

こんにちは。私はHPを運営しているんですが、最近荒らしにあってしまい悩んでます。.htaccessというものを最近知ったのでそれを使ってみようと言うことになりました。それで、その荒らしのIPを弾くには

# アクセス制限
order allow,deny
allow from all
deny from ppp01.aaa.ne.jp # ppp01.aaa.ne.jp を拒否
deny from .bbb.co.jp # ???.bbb.co.jp を拒否
deny from .go.jp # 当局によるアクセスを拒否
deny from 130.90. # 130.90.???.??? を拒否

こういう風に書けばいいんだなと分かりましたが、その荒らしというのが、2ちゃんねるにHPアドレスを貼り付けたりして厄介な奴なんです。そこで、2ちゃんねるのアドレスを弾くって言うことも出来ますでしょうか?

# アクセス制限
order allow,deny
allow from all
deny from ppp01.aaa.ne.jp # ppp01.aaa.ne.jp を拒否
deny from .bbb.co.jp # ???.bbb.co.jp を拒否
deny from .go.jp # 当局によるアクセスを拒否
deny from 130.90. # 130.90.???.??? を拒否
※deny from http://●●/

↑の※のように一緒にこうやって書くのかなって思ったんですけど、どこにもそう言う書き方が載ってないのであっているかどうか教えてください。あってなかったら正しい書き方を教えてください。よろしくお願いしますm(_ _)m

こんにちは。私はHPを運営しているんですが、最近荒らしにあってしまい悩んでます。.htaccessというものを最近知ったのでそれを使ってみようと言うことになりました。それで、その荒らしのIPを弾くには

# アクセス制限
order allow,deny
allow from all
deny from ppp01.aaa.ne.jp # ppp01.aaa.ne.jp を拒否
deny from .bbb.co.jp # ???.bbb.co.jp を拒否
deny from .go.jp # 当局によるアクセスを拒否
deny from 130.90. # 130.90.???.??? を拒否

こういう風に書...続きを読む

Aベストアンサー

モジュールmod_setenvifを使って、リファラ情報から2ch.netからのリンクをたどってきたものを除外する手法がよく使われてます。
絶対確実ではないですが。

ここらへんを利用可能かどうかを、Webサーバの管理者に確認されてみては。

参考URL:http://oshiete1.goo.ne.jp/goo_search.php3?MT=setenvif+referer+allow+deny+env

Q★アクセス2002★DoCmd.ApplyFilterの記述

先日同じような質問をして回答頂きましたが再度お願いします。
住所検索フォームを作成中です。

住所検索フォームにテキストボックス[検索値]を配置して、[検索値]に入力した語句で始まるレコードを表示させています。[抽出開始]コマンドボタンに下記の様に記述していますが、これだと[住所]の頭の文字でしか抽出できません。[検索値]に入力する語句は必ずしも頭の文字ではないので、途中の一部の語句でもヒットするようにしたいのですが、上手く記述できずに困っています。
DoCmd.ApplyFilter , "[住所] Like '" & Forms![住所テーブル一覧]![検索値] & "*'"

Aベストアンサー

未検証ですが・・・

DoCmd.ApplyFilter , "[住所] Like '*" & Forms![住所テーブル一覧]![検索値] & "*'"

・・・ではいかがですか?

Qaccessでのフィルタの使い方

住所録をアクセスで管理しています。
フィルタの使い方なんですが、抽出したもの以外を表示する方法ってあるんですか?例えば、東京都の住所を抽出して、逆に東京のレコード以外の住所だけを表示させることです。
まだ、初心者なのでさっぱりわかりません。
また、例えば、現住所と本籍が違う人だけを表示する方法ってあるんですか?

Aベストアンサー

こんばんはっ。
テーブルがどのようになっているかが良くわからないので、違うかもしれませんが
>東京都の住所を抽出して

"フォームフィルタ"をクリック(レコード→フィルタ→フォームフィルタでも可)
住所のところに(フィールドの名前がわからないので、勝手に住所と書いています)
Like "東京都*"
と入力し、フィルタを実行すると
東京都だけが抽出されます。

>東京のレコード以外の住所
上記と同じ要領で
Not Like "東京都*"
と入力し、フィルタを実行すると
東京と以外が抽出されます。

>現住所と本籍が違う人だけ
フィールドの名前が、仮に"現住所"と"本籍"だったら
上記と同じ要領で
現住所のフィールドの箇所に
<>[本籍]
と入力し、フィルタを実行すると
出来ると思います。

フィルタの実行の仕方は大丈夫ですか?
杯(さかずき)の様なアイコンが、フィルタの実行です。
全然違ったらごめんなさい。

QDoCmd.ApplyFilter引数を文字にする

いつもお世話になっています。

以下のフィルタを作成して使っています。

Private Sub to12_Click()
DoCmd.ApplyFilter , "([部署コード] = 1 And [社員番号]=2)"
DoCmd.OpenForm "F_登録"
Set Forms!F_登録.Recordset = Me.Recordset
End Sub

DoCmd.ApplyFilter , "([部署コード] = 1 And [社員番号]=2)"
の [社員番号]にテキストを使用することになりました。
元テーブルも数値型からテキスト型に変更したのですが、
こうした検索の式に反映するにはどうしたらいいのでしょうか。

お力添えをお願いいたします。

Aベストアンサー

> DoCmd.ApplyFilter , "([部署コード] = 1 And [社員番号]=2)"

 DoCmd.ApplyFilter , "([部署コード] = 1 And [社員番号]='2')"

あるいは

 DoCmd.ApplyFilter , "([部署コード] = 1 And [社員番号]=""2"")"

前者の方が分かりやすいでしょう。

ちなみに、日付時刻なら

 [日付]=#2011/7/15#

です。

QAccess テキストボックスの使い方について

先日、以下の通り質問をさせて頂いた者です。
https://oshiete.goo.ne.jp/qa/9529939.html

アクセスで、テキストボックスに値を入れてコマンドボタンを押すと、
検索された値が先頭に来るようにVBAを作成しました。

さらに発展系で、コマンドボタンを押さなくともテキストボックスに値を入れるだけで、
検索された値が先頭に来るようにしたいと思っているのですが、
そんな事はAccessで可能なのでしょうか。

もし可能な場合、どのような構文を使い作成すれば良いかを御教示頂けませんでしょうか。
よろしくお願いします。

(わかりづらいかもしれませんので、イメージ図を添付させて頂きました)

Aベストアンサー

BeforeUpdateで行けると思いますが。

QAC2000でフォームから入力したデータをサブフォームに表示

ID 商品名 単位 単価で商品マスタフォームを作っています。このフォーム内にサブフォームを作っておいて
データが入力するたびにサブフォームへ表示させたいのですが、このときの条件としてID(オートナンバー)を降順(最新のデータが一番上になる)・データシート形式にしたいと思います。
T_商品(テーブル名)
Q_商品(IDを降順としたクエリ)
MF_商品(各入力テキストボックスがあるフォーム)
SF_商品(MF_商品に貼り付けるサブフォーム)
降順にすると一番若いIDのデータだけがサブフォームに
表示されるのです。
requeryは必要なのでしょうか?
よろしくお願い致します。

Aベストアンサー

MF_商品(各入力テキストボックスがあるフォーム)
SF_商品(MF_商品に貼り付けるサブフォーム)
のRecordSourceは両方ともQ_商品ですか?
そうだとすると、
MF_商品で入力するたびに、Q_商品のRequeryが必要です。さらにSF_商品をRefleshする必要があります。
ただ、MF_商品での変更が反映されるのは、レコード移動後になりますので、テキストボックスに入力したデータを反映させるには、Me.Refreshなどを実行して入力値をテーブルに保存しなければなりませんし、それらの処理を実行するとレコードを移動してしまうので、クローンやブックマークを使って元に戻る処理を加えなければならなくなります。結構面倒です。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング