Accessの初心者です。
本などをみながらあいまい検索ができるようなフォームをつくってみましたがフォームを開いた時、全レコードが表示されてしまいます。
クエリーの抽出条件はLike "*" & Forms!フォーム1!テキスト0 & "*"にしてテキストボックスプロパティの更新後処理でDoCmd.Requeryとしました。(意味がよくわからないんですけど)
フォームを開いた時やテキストボックスになにも入力されていない時、全レコードが表示されないようにするにはどうすればいいのでしょうか?
よろしくお願いします。

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

A 回答 (2件)

すいません、ちょっと勘違いをしてました。


「全レコードが表示されないようにする」でしたね。

ちょっと調べてみましたが、Requeryよりもフィルタを利用する方が良いようです。

更新後処理を

Dim jyouken As String

If IsNull(Me.ActiveControl) Then
  jyouken = "[フィールド名] Is Null"
Else
  jyouken = "[フィールド名] Like '*" & Me.ActiveControl & "*'"
End If
Me.Filter = jyouken
Me.FilterOn = True

とします。
前提条件としては、あいまい検索するフィールドは必ず入力されていると言うことです。
([フィールド名]の部分はご自分の環境に合わせてください。)
    • good
    • 0
この回答へのお礼

お手数おかけします。
あいまい検索は完璧にできました。
フォームに全件表示されてしまう件ですが、途中途中はできるようになったのですが、新たにフォームを開いた時は全件表示になってしまいます。
もう1度やり直してみます。
何度もすいません、勉強になります。

お礼日時:2002/03/05 21:59

IFを使って条件分岐じゃいけませんか?


たとえば

IF IsNull(Forms!フォーム1!テキスト0) then
Exit Sub
End IF
DoCmd.Requery

という感じで・・・
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
テキストボックスの更新後処理のところに入力してみました。(あってます?)
あいまい検索はできるんですがフォームを開いた時、全レコード表示されてしまいました。
入力ミスがあったかもしれないので明日また挑戦してみます。
どうもありがとうございました。

お礼日時:2002/03/04 21:01

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

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

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

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

QAccess、検索用フォームでのあいまいな検索

現在、Accessでデータベース作成をしています。

テーブル:  ・テーブルA
         ・テーブルB
         (A・B間にリレーションシップ設定)

クエリ    ・検索クエリ(テーブルA・テーブルBを元に作成)

フォーム   ・検索用フォーム(デザインビューでフォーム作成より)
         ・検索結果フォーム(検索クエリを元に作成)

また、以下のような設定を入力しました。

「検索クエリ」の抽出欄
 Like "*" & [Forms]![検索用フォーム]![検索したい名前] & "*"・・(1)
 ※検索したい項目、すべての抽出欄に設定済

「検索用フォーム」
 検索実行ボタンを作成し、マクロを設定
 ・フォームを開く→「検索結果フォーム」
 ・フィルタ→「検索クエリ」

上記の設定により、検索用フォームに検索文字を入力することで、その結果を「検索結果フォーム」に反映することができました。
ただ、テーブルAが元になっている項目の抽出欄のみに(1)を入力すると、うまくいくのですが、テーブルBが元になっている項目欄にも
(1)を入力しようとすると、検索用フォームからうまく検索することができなくなります。

2つのテーブルを元にしたクエリからは、検索用フォームをつかった複数のOR検索はできないのでしょうか??

ご存知の方、ぜひ教えてください。
よろしくお願いいたします。

現在、Accessでデータベース作成をしています。

テーブル:  ・テーブルA
         ・テーブルB
         (A・B間にリレーションシップ設定)

クエリ    ・検索クエリ(テーブルA・テーブルBを元に作成)

フォーム   ・検索用フォーム(デザインビューでフォーム作成より)
         ・検索結果フォーム(検索クエリを元に作成)

また、以下のような設定を入力しました。

「検索クエリ」の抽出欄
 Like "*" & [Forms]![検索用フォーム]![検索した...続きを読む

Aベストアンサー

>「Forms!検索用フォーム!検索したい名前」というタイトルの
>メッセージボックスが出る
これはそこに書いてあるものがAccessにとって不明なものだから
値の入力を要求してきているのです

検索用フォームは開いていますか?
フォームやテキストボックスの名前は間違っていませんか?

テーブルを結合したクエリであることとは全く関係ありません

QACCESSのフォーム上で複数検索したい項目がある場合どうすればいいですか?

(1)部品ID
(2)日付
(3)入庫か出庫 
以上3つを検索したいのですがどうすればいいでしょうか?

(1)の部品IDはリストBOXの一覧から選択し、選択したものをテキストBOXに表示させるという形で作成しました。
(2)の日付はテキストBOXに手入力という形です。
(3)の入庫か出庫はコンボBOXで選択するという形です。

検索ボタンを作成してクエリの更新をかけて表示したいと思うのですが、3つの条件のうちその時により、全ての検索条件を入力しなくても1つでも条件を入力するとその条件が表示させるようにさせたいのです。

あと、何も条件を入力せず、検索ボタンを押すと全てのデータが表示させれるようにもしたいのです。

どのようなコードを記述すればいいでしょうか?
よろしくおねがいします

Aベストアンサー

>”このオブジェクトに値を代入することはできません”と表示され・・
失礼しました。フィルターのセットで最後が足りませんでした。あと[このオブジェクトに値を代入・・]のメッセージは抽出等で間違った指定方法をしているという事なのですが・・。
多分日付の抽出の仕方だと思いますので日付抽出のセットを少し変えましたのでメインフォーム上のボタンCmd1のクリック時のイベントを下記に変更してみてください。

Private Sub Cmd1_Click()
Dim MyCriteria As String

MyCriteria = "日付 ="
If IsNull(Text2) Then
MyCriteria = MyCriteria & True
ElseIf Not IsNull(Text2) Then
MyCriteria = MyCriteria & "#" & Me!Text2 & "#"
Else
End If

strfilter = MyCriteria
strfilter = strfilter & " And 部品ID Like '*" & Me.Text1.Value & "*' And 区分 Like '*" & Me.Cmb1.Value & "*'"

Forms!フォーム名!サブフォーム名.Form.Filter = strfilter
Forms!フォーム名!サブフォーム名.Form.FilterOn = True
Forms!フォーム名!サブフォーム名.Requery

End Sub

メインフォーム上のテキストボックスやコンボの値をサブフォームのフィルターに代入するときはMe!Text1の指定で良さそうなので上記でサブフォームにフィルターをかけられます。(試したらフィルターかけられました。)
これでどうでしょう。

>”このオブジェクトに値を代入することはできません”と表示され・・
失礼しました。フィルターのセットで最後が足りませんでした。あと[このオブジェクトに値を代入・・]のメッセージは抽出等で間違った指定方法をしているという事なのですが・・。
多分日付の抽出の仕方だと思いますので日付抽出のセットを少し変えましたのでメインフォーム上のボタンCmd1のクリック時のイベントを下記に変更してみてください。

Private Sub Cmd1_Click()
Dim MyCriteria As String

MyCriteria = "日付 ="
If IsNull(T...続きを読む

QAccessVBAを使用して、DB内を検索する画面を作成したいのですが。

Accessのヴァージョンは2000以降です。
フォーム上で、テキストボックスに入力して、検索ボタンを押すと、検索結果が表示される物を作りたいのです。

SQLの知識はあるので、SQL文は記述できるのですが、どうすれば検索結果が表示されるのかわかりません。

検索ボタンをクリックしたときにどういう処理をするのか、また、検索結果画面はどのように作っておけばよいのか等、少しでも多くのご回答をいただきたいです。

本やサイトも色々見たのですが、見あたりませんでした。
そのようなサイトがありましたら是非教えていただけると助かります。

お忙しい中申し訳ありませんが、本当に困っています。
よろしくお願いいたします。

Aベストアンサー

VBAはやっぱり知っておいた方がよろしいかと思います。
と言っても、下記の例ではほんのちょっとだけですけど。
ほとんど中身はSQLです。
応用するにはさらに知らねばならないでしょう。

まず、テーブルは「テーブル1」と言う名前で項目「氏名」と「体重」だけ作ります。
フォームは「表形式」を選択し基になるテーブルに「テーブル1」を選択し作成してください。
フォーム名は「フォーム1」で保存してください。

できたフォーム1に「氏名選択」という名前でテキスト入力フィールドを作成してください。
さらに検索ボタンを作成し、「検索」と言う名前で保存。
プロパティ-の「クリック時」で下↓のボタンを押し「イベントプロシージャ」を選択。
右端の「・・・」を選択するとVBAを記述できる画面が出てきます。
そこに下記内容を記述

Private Sub 検索_Click()
Forms![フォーム1].RecordSource = "SELECT * FROM [テーブル1] where forms![フォーム1]![氏名選択] = [テーブル1]![氏名]"
End Sub

VBAはやっぱり知っておいた方がよろしいかと思います。
と言っても、下記の例ではほんのちょっとだけですけど。
ほとんど中身はSQLです。
応用するにはさらに知らねばならないでしょう。

まず、テーブルは「テーブル1」と言う名前で項目「氏名」と「体重」だけ作ります。
フォームは「表形式」を選択し基になるテーブルに「テーブル1」を選択し作成してください。
フォーム名は「フォーム1」で保存してください。

できたフォーム1に「氏名選択」という名前でテキスト入力フィールドを作成してください...続きを読む

QAccess フォーム上でのテキストボックスとテーブルの連結

フォームヴィザードからフォームを作成すると、
テキストボックスと指定したテーブルを連結させることができるのですが、デザインビューでそれをするときに、テキストボックスのプロパティのコントロールソースにテーブル名を入れれば連結できるのかと思いきや、うまく表示されません。どこを設定すればテキストボックスとテーブルを連結できるのでしょうか?

Aベストアンサー

#2です。
デザインビューの空欄スペース(グレー1色のところ、升目なし)で右クリックをするとプロパティが出てきます。また、フォームウィザードの途中で、そのフォームと連結するテーブルかクエリを選択する画面が出てきます。

QACCESSの表形式で、レコードをクリック→詳細を表示させたい

表題の通りなのですが、ACEESSで、表形式でレコードを表示させています。
これらの詳細を書いたものを、別フォームで作成しています。

要はこの2つを、
表形式のどこかにボタン配置→そのボタンをクリックすると、別フォームで該当テーブルが起動され、見ることができる、
ということを行いたいと思っています。

これらを行うことはできるのでしょうか。
また、できるならその方法をご教授頂けませんでしょうか。
どうぞよろしくお願いします。

Aベストアンサー

>表形式のどこかにボタン配置
表形式のフォームの詳細にボタンをおきます
(ボタンはすべてのレコードに表示されます)

このボタンで別フォームを開くようにしておき
別フォームのソースをクエリデザインビューで開き
主キーフィールドの抽出条件欄に

=Forms!表形式フォーム名!主キーフィールド名

標示したいレコードのボタンを押すと
そのレコードがカレントレコードになり
別フォームの抽出条件としてそのレコードの主キーが渡されます

Qアクセスのフォームのビューが表示されないのですが、

Accessでフォームを作っているのですが、クエリを元にウイザードで作成。デザインビューではちゃんと文字が出ているのに、データシートビューでも1行目に項目が出ているのに、フォームビューは壁紙だけなんですが、何が原因なのでしょうか? 同じ作り方で出来る物もあるのですが、アクセスは初心者です。本を見てもわからないのですが、教えて下さい。よろしくお願い致します。
参考になるURLがあれば、それも教えて頂きたいです。

Aベストアンサー

> データシートビューでも1行目に項目が出ているのに、フォームビューは壁紙だけ

表示されるレコードがなく、追加もできない(=新規レコードの枠が表示されない)状態
の場合、フォームビューの詳細領域にあるコントロールは、全て表示されなくなります。

これはAccessがそういう仕様になっているようなのでどうしようもないのですが、
詳細領域ではなくフォーム ヘッダ/フッタに設置したコントロールであれば表示は
されるので、表示レコードがない場合にも表示が必要なコントロール(フォームを閉じたり
表示を切り替えるコマンドボタンや、フォームの抽出条件を指定するテキストボックス等)
はフッタ/ヘッダに移動する、といった回避方法があります。

フォーム ヘッダ/フッタを表示するようにするには、フォームをデザインビューで開き、
メニューで「表示(V)→フォーム ヘッダ/フッタ(H)」を選択します。
ヘッダのみ、またはフッタのみ必要な場合は、不要な方の下端にマウスポインタを
合わせて、水平な線と上下矢印を組み合わせた形になったところで、マウスをクリック&
ドラッグして下さい。


※本来表示させるレコードがない状態で、詳細領域のコントロールを強引に表示させる
  には、フォームのプロパティシートの『データ』タブで、『レコードセット』の設定を
  「ダイナセット (矛盾を許す)」にするという手もあります。
  但し、変な形でレコード編集がされてしまう危険性が生じますので、お勧めはできません。


参考までに、以前の回答へのリンクも載せておきます:
http://oshiete1.goo.ne.jp/qa3371589.html
http://oshiete1.goo.ne.jp/qa3028994.html

> データシートビューでも1行目に項目が出ているのに、フォームビューは壁紙だけ

表示されるレコードがなく、追加もできない(=新規レコードの枠が表示されない)状態
の場合、フォームビューの詳細領域にあるコントロールは、全て表示されなくなります。

これはAccessがそういう仕様になっているようなのでどうしようもないのですが、
詳細領域ではなくフォーム ヘッダ/フッタに設置したコントロールであれば表示は
されるので、表示レコードがない場合にも表示が必要なコントロール(フォームを閉じたり
...続きを読む

QACCESSでフォームを使って、テーブルを参照、データ入力、データ更新をしたいのです

フォームを使って、テーブルを参照、データ入力、データ更新をしたいのです。

売上テーブル

 ID   商品コード  日付    金額 
 1    G1     20080101  532153
 2    G1     20080101  564281
 3    G1     20080301  538123
 4    J4     20080301  124531
 5    J4     20080302  125483

ID:オートナンバー 商品コード:数値型 日付:数値型 金額:数値型

これを使い、
フォームではまず

レコードナンバーを入力画面
       ↓
レコード番号を入れると、そのレコードのデーターが画面に表示され、
その画面で修正可能
       ↓
 保存 ボタンで保存

という流れです。

レコードナンバーはIDを使おうと思っています。

データの量が莫大な為、コンポボックスなどは使えません。

できるだけ、VBAなどは使わずに作りたいです。

よろしくお願い致します。

フォームを使って、テーブルを参照、データ入力、データ更新をしたいのです。

売上テーブル

 ID   商品コード  日付    金額 
 1    G1     20080101  532153
 2    G1     20080101  564281
 3    G1     20080301  538123
 4    J4     20080301  124531
 5    J4     20080302  125483

ID:オートナンバー 商品コード:数値型 日付:数値型 金額:数値型

これを使い、
フォームではまず

レコードナンバーを入...続きを読む

Aベストアンサー

まずそのテーブルを基にしてフォームを作成します。
そのフォームのヘッダー部分にテキストボックスを配置後、一旦
上書き保存。
フォームのレコードソースを
SELECT *
FROM テーブル名 WHERE ID=[Forms]![フォーム名]![テキストボックス名]
とします。
次にテキストボックスの更新後処理に
Me.Requery
とすれば完成です。
フォームを開いてテキストボックスにID入力後エンターしてください。

保存に関しては、コマンドボタン作成後クリック時イベントに
DoCmd.RunCommand acCmdSaveRecord
とすれば良いでしょう。

この手のモノは検索すれば相当数ヒットするので、そちらを参考にされるのもよろしいかと。

QACCESS VBA 複数の条件文

ACCESS超初心者です。
部署にある書籍の一覧表をACCESSのフォームで作成しています。

3つの検索条件を作成したのですが
検索結果を表示させるIf文がVBAでうまく作れません。。。
ご教授ください。

【例】
テーブル名:Tbl_Test
フィールド名:
分野 (テキスト型)
所在(テキスト型)
所有者(テキスト型)

で、テーブルを作り、
検索用フォーム(フォーム名:Frm_Test)に、非連結の
Ctl検索分野 (コンボボックス)
Ctl検索所在(リストボックス)
Ctl検索所有者(リストボックス)
を作成

「Ctl検索所在(リストボックス)」
「Ctl検索所有者(リストボックス)」
それぞれの更新後処理のイベントプロシージャに
以下の6つのパターンの場合
それぞれ別のクエリを表示させるVBAを作成したい

「分野」:未選択
「所在」:未選択
「所有者」:未選択
の場合・・・クエリ「分野絞込なしの所在所有者未選択」を表示

「分野」:未選択
「所在」:未選択
「所有者」:選択
の場合・・・クエリ「分野絞込なしの所有者選択」を表示

「分野」:未選択
「所在」:選択
「所有者」:未選択
の場合・・・クエリ「分野絞込なしの所在選択」を表示

「分野」:選択
「所在」:未選択
「所有者」:未選択
の場合・・・クエリ「分野絞込ありの所在所有者未選択」を表示

「分野」:選択
「所在」:未選択
「所有者」:選択
の場合・・・クエリ「分野絞込ありの所有者選択」を表示

「分野」:選択
「所在」:選択
「所有者」:未選択
の場合・・・クエリ「分野絞込ありの所在選択」を表示

相変わらず説明が下手で申し訳ありません。
初心者の私にとっては難しすぎて
頭がパンクしてしまいました。

よろしくお願いします!

ACCESS超初心者です。
部署にある書籍の一覧表をACCESSのフォームで作成しています。

3つの検索条件を作成したのですが
検索結果を表示させるIf文がVBAでうまく作れません。。。
ご教授ください。

【例】
テーブル名:Tbl_Test
フィールド名:
分野 (テキスト型)
所在(テキスト型)
所有者(テキスト型)

で、テーブルを作り、
検索用フォーム(フォーム名:Frm_Test)に、非連結の
Ctl検索分野 (コンボボックス)
Ctl検索所在(リストボックス)
Ctl検索所有者(リストボックス)
を...続きを読む

Aベストアンサー

> データが連結しているとはどのような意味なのでしょうか?

私は説明べたなので以下を参照してください。
http://oshiete1.goo.ne.jp/qa57126.html

> (2)以下について意味を教えてください

 以下でわかりますでしょうか。

 sTmp = ""
 sTmp = sTmp & OrAnd & "(AAA)"
 sTmp = sTmp & OrAnd & "(BBB)"
 sTmp = sTmp & OrAnd & "(CCC)"

 出来上がった、sTmp の中身は、
 " AND (AAA) AND (BBB) AND (CCC)" となります。

 sTmp = Mid(sTmp, Len(OrAnd) + 1) とすると、
 "(AAA) AND (BBB) AND (CCC)" となります。

 AND ではなく OR に変更する場合、
  Const OrAnd As String = " AND "

  Const OrAnd As String = " OR "
 とするだけで、対処できます。


> (3)以下について、

> Select Case Ctl検索分野
> Case 1
> Me.RecordSource = "クエリ01"

 コンボボックスの表示には、パターン番号のようなものを表示しているのでしょうか?

>  If (Not IsNull(Me.Ctl検索分野)) Then
>    sTmp = sTmp & OrAnd & "([分野]='" & Me.Ctl検索分野 & "')"
>  End If

 上記での前提として、分野そのものが表示され、連結列になっていた場合のものになります。
 例えば、値集合ソースの内容が
  SELECT DISTINCT 分野 FROM テーブル名 ORDER BY 分野;

 リストボックスも同様に、リストボックスの値がそのまま抽出条件に使えることを前提としていました。
 また、複数選択:しない となっていることが前提となっています。


>  sTmp = ""
>  If (Not IsNull(Me.Ctl検索分野)) Then
>    sTmp = sTmp & OrAnd & "([分野]='" & Me.Ctl検索分野 & "')"
>  End If
>  If (Not IsNull(Me.Ctl検索所在)) Then
>    sTmp = sTmp & OrAnd & "([所在]='" & Me.Ctl検索所在 & "')"
>  End If
>  If (Not IsNull(Me.Ctl検索所有者)) Then
>    sTmp = sTmp & OrAnd & "([所有者]='" & Me.Ctl検索所有者 & "')"
>  End If
>
>  If (Len(sTmp) > 0) Then
>    sTmp = Mid(sTmp, Len(OrAnd) + 1)
>
>'フォーム自体のレコードソースを変更する場合
>    Me.RecordSource = "SELECT * FROM テーブル WHERE (" & sTmp & ");"
>    Me.Requery


 上記方法では、クエリは使用しません。
 クエリに書いてあるものを、状況に応じて作成し、設定することになります。

 ここで、クエリ自体が不要になるのか考えるところです。
 そのクエリを使ってレポートに、とか、外部出力(ExcelやCSVなど)に使うとか。

>「フォーム自体のレコードソースを変更する場合」
> で自分なりに色々やってみたのですがうまくいきません。。。

 今まで作成したクエリを、デザインビューで開いた後、SQLビュー表示にしてみます。
 その時、参照テーブル名が2つ以上あった場合、以下の部分でテーブル名を明示的に指定します。

    sTmp = sTmp & OrAnd & "([テーブル名].[分野]='" & Me.Ctl検索分野 & "')"
 また、
    Me.RecordSource = "SELECT * FROM テーブル WHERE (" & sTmp & ");"
 の記述は、クエリのSQLビューを参考に、WHERE部分以外まねます。

※ 現状考えられている方向を察するに、#2の方の方法が身近かもしれません。

> データが連結しているとはどのような意味なのでしょうか?

私は説明べたなので以下を参照してください。
http://oshiete1.goo.ne.jp/qa57126.html

> (2)以下について意味を教えてください

 以下でわかりますでしょうか。

 sTmp = ""
 sTmp = sTmp & OrAnd & "(AAA)"
 sTmp = sTmp & OrAnd & "(BBB)"
 sTmp = sTmp & OrAnd & "(CCC)"

 出来上がった、sTmp の中身は、
 " AND (AAA) AND (BBB) AND (CCC)" となります。

 sTmp = Mid(sTmp, Len(OrAnd) + 1) とすると、
 "(AAA) AN...続きを読む

QAccess テキストボックスとlikeのあいまい検索

タイトルどおりの操作について教えてください。
Access VBAは、ごく簡単な操作が理解できる程度のレベルです。

フォームに検索キーワード用の非連結のテキストボックスを作成し、
コマンドボタンで検索を実行したいと思います。

イコールで結んだ場合は検索されるのですが、これをLikeに変えると
まったく検索されません。

[Q_書籍名検索]![書名] = [Forms]![F_書籍名で検索]![書籍検索]

[Q_書籍名検索]![書名] Like " * " & [Forms]![F_書籍名で検索]![書籍検索] & "*"

エラーも表示されないのですが、なにが問題なのか教えてください。
よろしくお願いします。

Aベストアンサー

まず、『F_書籍名で検索』のクエリにて『抽出条件』に以下を入力。

Like "*" & [Forms]![F_書籍名で検索]![書籍検索] & "*"

次にマクロを新規作成します。
アクションに『フィルタの実行』を選択。
フィルタ名に上記のクエリ名を入力。

そして、『F_書籍名で検索』に戻り『書籍検索』のプロパティにて
『更新後処理』に新規作成したマクロを指定します。

これだと『書籍検索』に言葉を入力して『ENTER』を押すと抽出されます。

私的にはコマンドボタンはいらないと思います。

QACCESS VBA にて複数項目のあいまい検索をしようとしています。

ACCESS VBA にて複数項目のあいまい検索をしようとしています。
txt部所、txt内容、txt備考はそれぞれ検索窓です。

実行すると、
「オブジェクト変数またはWithブロック変数が設定されていません」
というメッセージがでます。

また、動作としては部所の検索のみでき、
内容、備考検索は上記のエラーメッセージが出てできない状態です。

アドバイスよろしくお願いいたします。

以下がコードになります。


Private Sub cmd01_Click()


Me.FilterOn = False

If txt部所 <> "" Then
Me.Filter = "[部所氏名]like '*" & txt部所 & "*'"
ElseIf txt内容 <> "" Then
Me.Filter = "[内容]like '*" & txt内容 & "*'"
ElseIf txt備考 <> "" Then
Me.Filter = "[備考]like '*" & txt備考 & "*'"
ElseIf Nz(txt部所) & Nz(txt内容) & Nz(txt備考) = "" Then
MsgBox "検索条件を入力してください"
End If

Me.FilterOn = True

End Sub

ACCESS VBA にて複数項目のあいまい検索をしようとしています。
txt部所、txt内容、txt備考はそれぞれ検索窓です。

実行すると、
「オブジェクト変数またはWithブロック変数が設定されていません」
というメッセージがでます。

また、動作としては部所の検索のみでき、
内容、備考検索は上記のエラーメッセージが出てできない状態です。

アドバイスよろしくお願いいたします。

以下がコードになります。


Private Sub cmd01_Click()


Me.FilterOn = False

If txt部所 <> "" Then
Me.Filter...続きを読む

Aベストアンサー

まずは、エラーとなるときに、
このエラー検知時のエラー箇所特定、対処例をまずマスターすることです。
それが分かればこの先のエラーもなんとかしのげます。
対処がわからず、闇雲にいろいろ試すのはあまりいい手段ではありません。
(何が原因かわからずやっていたらうまくいったというのは上達しないやり方です。。)

見ている限りではいろいろ試してはいるものの、
原因はともかく「エラー箇所行の特定」についてはなにも進んでいないように思います。


例えば、
ElseIf Me!txt備考 <> "" ThenやNz(Me!txt備考)で
エラーが起き、Me!txt備考が認識されていないという想定がついたなら、
Me!txt備考=""
でどうか、はやってみる価値あります。

>Me!txt備考 = Nothing

というのも、
内容をクリアの意味でやっているなら、Me!txt備考 = ""、
デフォルトが全件数させたいなら、Me!txt備考 = "*"
であり、
フォームを開くとき、次のフィルタを実行するときの両方のイベントに
行うのが良いです。



今の状況からは、
フォーム開いて、クリアしてから1回目のフィルタを行うと
2回目と同様、ここを通過するので同じようにエラーになるはず。

前述のように3パターンで確認お願いします。
1)1回目フィルタ→クリア→2回目フィルタ
2)クリア→1回目フィルタ
3)1回目フィルタ→フォーム閉じる→1回目フィルタ

1)はエラーとのことですが、2)もエラー、3)は問題なし、
と想定しています。

まずは、エラーとなるときに、
このエラー検知時のエラー箇所特定、対処例をまずマスターすることです。
それが分かればこの先のエラーもなんとかしのげます。
対処がわからず、闇雲にいろいろ試すのはあまりいい手段ではありません。
(何が原因かわからずやっていたらうまくいったというのは上達しないやり方です。。)

見ている限りではいろいろ試してはいるものの、
原因はともかく「エラー箇所行の特定」についてはなにも進んでいないように思います。


例えば、
ElseIf Me!txt備考 <> "" ThenやNz(Me!txt...続きを読む


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

人気Q&Aランキング