Private Sub Form_ApplyFilter
If ApplyType = acShowAllRecords Then
フィルタオプション = 1
ElseIf Filter <> “都道府県 = ‘東京都’” Then
フィルタオプション = Null
End if
End Sub

アクセスVBAの次の2行について教えてください。
よろしくお願いします。

ApplyType = acShowAllRecords
ElseIf Filter <> “都道府県 = ‘東京都’” Then

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

A 回答 (1件)

フィルタ実行時のイベントだと思いますが、



>ApplyType = acShowAllRecords
フィルタが全レコードの表示の時

>ElseIf Filter <> “都道府県 = ‘東京都’” Then
前記の条件以外で、フィルタが「都道府県 = "東京都"」出ないならば・・・

とでも言うのでしょうか・・・無理やり日本語に直すとすれば・・・(^ ^;
詳しくはHelpの「ApplyFilter イベント」・「If...Then...Else ステートメント」をご参考に!!
    • good
    • 0

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

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

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

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

Qフィルタオプションでのデータ抽出に関して

お世話になります。

現在、約9000件あるデータの中から必要なデータを抽出できるようにするものを作成しています。
数式で抽出しようとしましたが、データ量の多さから計算に時間が掛る為、フィルタオプションを使ってデータを抽出しようと考えています。

データは下記のようになっています。

Sheet名:「積算データ」

項目 名称   適用   備考   施工  労務費
A    B     C     D     E     F
36  電線管  GP-19        隠ぺい  100
36  電線管  GP-22        隠ぺい  100
36  電線管  GP-28        隠ぺい  120
37  電線管  GP-16        露出   80
37  電線管  GP-22        露出   100
37  電線管  GP-28        露出   100

(以下、約9000行データが続きます)

別シートにデータ検索用シートを作っています。
シート名:「データ検索用」

名称 適用 備考 施工
 A   B   C   D
                  ←各セルに条件入力

さらに別シートにデータ抽出用シートを作っています。
シート名:「データ抽出用」

フィルタオプションの設定に関しては、

リスト範囲:積算データ!A1:F9000
検索条件範囲:データ検索用!A1:D2
抽出範囲:データ抽出用!A3

と設定しています。

というような構成なのですが、データ検索用シートで、各セルに条件を入力し(例えば、A列に電線管、B列にGP-19 D列に隠ぺいと入力)、データ抽出用シートにデータを抽出しても、積算データシート内のデータ全てが抽出されてしまいます。

検索条件どおりのデータを抽出するにはどうすればいいでしょうか??

お世話になります。

現在、約9000件あるデータの中から必要なデータを抽出できるようにするものを作成しています。
数式で抽出しようとしましたが、データ量の多さから計算に時間が掛る為、フィルタオプションを使ってデータを抽出しようと考えています。

データは下記のようになっています。

Sheet名:「積算データ」

項目 名称   適用   備考   施工  労務費
A    B     C     D     E     F
36  電線管  GP-19        隠ぺい  100
36  電線管  GP-2...続きを読む

Aベストアンサー

こちらでExcel2002で検証してみましたが、全く問題なくフィルタオプションできます。

>一応マクロに記憶させてみましたが・・やはりできませんでした。。

今回の質問はマクロに全く関係ないと思うのですが、どのような目的でマクロに記録するのでしょうか?

確認ですが、表示用シートのA3セル以下にデータが入っていないシートで操作しているのですね。

もし、マクロを利用して連続して同じようなデータを抽出する必要があるなら、当然ですが、最初に表示用のシートのデータは削除しておく必要があります。

QAccess97のVBAでのApplyFilter

住所録を作成しています。
個人名,そのふりがな,会社名,電話番号,etc.と、ごく普通の住所録です。

過去の質問
http://www.okweb.ne.jp/kotaeru.php3?q=169901
を参考に、検索フォームを作成したのですが、
ボタン押下時ではなくテキスト入力時に検索結果が表示されるようにしたいと思い、下記のようにしてみました。

Private Sub TextBox_KeyPress(KeyAscii As Integer)

DoCmd.ApplyFilter , "(ふりがな like '" & Me.TextBox & "*')"

End Sub

単票形式で、フッターに検索テキスト入力用のTextBoxを配置しています。
このTextBoxに個人名のふりがなの一部を入力した時点で検索が行われるようにしたいのですが・・・。

上記コードで一応は検索できます。
たとえば「たな」と入力すれば、「たなか」さんや「たなべ」さんなどが表示され、レコード移動ボタンで移動できます。
しかし、「た」と入力して文字変換を確定すると、ふりがなが入力されているレコードを全て拾い、再度Enterを押すと「た・・」さんが表示されます。

この、再度Enterを押す動作をなくすには、どのようにすればいいのでしょうか?

住所録を作成しています。
個人名,そのふりがな,会社名,電話番号,etc.と、ごく普通の住所録です。

過去の質問
http://www.okweb.ne.jp/kotaeru.php3?q=169901
を参考に、検索フォームを作成したのですが、
ボタン押下時ではなくテキスト入力時に検索結果が表示されるようにしたいと思い、下記のようにしてみました。

Private Sub TextBox_KeyPress(KeyAscii As Integer)

DoCmd.ApplyFilter , "(ふりがな like '" & Me.TextBox & "*')"

End Sub

単票形式で、フッターに検索テキスト入力用の...続きを読む

Aベストアンサー

うまく動作しなかったようですね
一応動作確認は、Access2000/97の両方とも行ったのですが、Access97ではおっしゃるとおりの動作になりました
すいませんm(_ _)m

下記のように変更して下さい
Private Sub TextBox_Change()

DoCmd.ApplyFilter , "(ふりがな Like '" & Me.[TextBox].Text & "*')"
Sendkeys ("{F2}")

Exit Sub

この"Sendkeys"コマンドは、キーボードから入力する同等の機能をもちます
(Access Helpを参照して下さい)
今回の場合は、検索処理が終了したらキーボードの「F2」キーを押下するという処理が追加しました

>Me以降を解説していただければありがたいのですが・・・。(^_^;)

" ~ Me.[TextBox].Text ~ " の ".text"のことでしょうか?
テキストボックス等のオブジェクトは、プロパティを省略すると、規定値である「.Value」が認識されます
「.Value」 -> 実際に確定された情報を取得できます
「.Text」 -> 現在表示されている状態を取得できます

オブジェクトにより、規定値はあらかじめ決まっています
規定値は何だったかなと思うよりは、日頃からすべてのプロパティを記入するように心がけています
(Accessの場合、ほとんどのオブジェクトのプロパティの規定値は「.Value」だったような...)

うまく動作しなかったようですね
一応動作確認は、Access2000/97の両方とも行ったのですが、Access97ではおっしゃるとおりの動作になりました
すいませんm(_ _)m

下記のように変更して下さい
Private Sub TextBox_Change()

DoCmd.ApplyFilter , "(ふりがな Like '" & Me.[TextBox].Text & "*')"
Sendkeys ("{F2}")

Exit Sub

この"Sendkeys"コマンドは、キーボードから入力する同等の機能をもちます
(Access Helpを参照して下さい)
今回の場合は、検索処理が終了したらキーボードの「F2」キ...続きを読む

QIf~Elseif分で複数の条件式を書くには?

毎度です。Access2000で悩んでいます。
フォームにいくつかのコンボボックスを設定してあります。
(コンボ1、コンボ2、コンボ3)
この時に各コンボボックスの値を元にそれぞれ違うクエリを走らせたいのですがどうやって書けばいいのでしょうか?

If Me!コンボ1 = 1 + コンボ2 = 1 + コンボ3 = 1 Then
Docmd.OpenQuery "Query1"
ElseIf Me!コンボ1 = 1 + コンボ2 = 1 + コンボ3 = 2 Then
Docmd.OpenQuery "Query2"

って書いてみたのですが、ダメでしょうか?
条件を複数書く時って「+」でつなげないのでしょうか?
素人です。やさしく教えてください。


 

Aベストアンサー

こんにちは。maruru01です。

「+」ではなくて、「And」で繋げて下さい。

If Me!コンボ1 = 1 And コンボ2 = 1 And コンボ3 = 1 Then
Docmd.OpenQuery "Query1"
ElseIf Me!コンボ1 = 1 And コンボ2 = 1 And コンボ3 = 2 Then
Docmd.OpenQuery "Query2"

Q【ACCESS】ApplyFilterでデータ絞込みをした時、該当データがないと、条件の表示がおかしくなる

ACCESSの一覧表示しているフォームで、検索条件を設定させ、その検索条件よりApplyFilteを使って、データ絞込みをしています。
データがある場合はうまく動作するのですが、該当データがないと、その後、検索条件を変更しても、検索条件のコンボボックスに値が表示されなくなります。
でも、認識はしているようで、デバッグで見ると値が入っているし、再度検索して、該当データがある場合は、また検索条件のコンボボックスが表示されるようになります。

何かつくりが悪いのでこのように動作するのでしょうか?
もしくはデータが存在しない場合に何か別のことをするようにするなど、回避する方法があれば教えてください。

お願いします。

Aベストアンサー

状況が分からないので対症療法的ですが

If Dcount(Filter条件・・) = 0 Then
MsgBox "No Records!", vbOKOnly
Me.FilterOn = False
End If
とか?

Q実行時エラー'-2147467259(80004005)':

エクセルからADOでアクセスに繋ごうとしたときに
実行時エラー'-2147467259(80004005)':
マシン'マシン名'のユーザー'Admin'がデータベースを開けない状態、またはロックできない状態にしています。

というエラーが出てしまいます。

書いているコードは以下です。

Public cn As ADOdb.Connection
Set cn = New ADOdb.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb"



test.mdb自体はテーブルもクエリもフォームも何も開いていない状態です。
一度アクセスを終了させて再起動させればうまくできるのですが、何が原因でこのメッセージが出るのでしょうか?
もしわかれば教えてください。
よろしくお願いします。

Aベストアンサー

Accessで、test.mdbを開いた状態(テーブルも、クエリも、フォームも何も開かない状態)で、ExcelからADOで接続しようとすると、
「-2147467259"は既に使用されているので、使用できませんでした。」
というエラーが再現されました。(当方Office2000Pro)
そういうものなのでしょう。
何をなさりたいのですか?
AccessからExcelを起動して、データの移し替えをしたり、レポート代わりに印刷させたりという方法ではダメなのでしょうか?
何をしたいかという、切り口で質問をされてはいかがですか。


人気Q&Aランキング

おすすめ情報