• ベストアンサー

アクセスVBAについて教えてください。

Private Sub Form_ApplyFilter If ApplyType = acShowAllRecords Then フィルタオプション = 1 ElseIf Filter <> “都道府県 = ‘東京都’” Then フィルタオプション = Null End if End Sub アクセスVBAの次の2行について教えてください。 よろしくお願いします。 ApplyType = acShowAllRecords ElseIf Filter <> “都道府県 = ‘東京都’” Then

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

  • ベストアンサー
  • Watapo3
  • ベストアンサー率76% (33/43)
回答No.1

フィルタ実行時のイベントだと思いますが、 >ApplyType = acShowAllRecords フィルタが全レコードの表示の時 >ElseIf Filter <> “都道府県 = ‘東京都’” Then 前記の条件以外で、フィルタが「都道府県 = "東京都"」出ないならば・・・ とでも言うのでしょうか・・・無理やり日本語に直すとすれば・・・(^ ^; 詳しくはHelpの「ApplyFilter イベント」・「If...Then...Else ステートメント」をご参考に!!

関連するQ&A

  • ACCESS 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

  • NULL値のレコードを検索(フィルタ)したい

    アクセス2003です。 画像の様なフォームを作成しました。 感想フィールドが未記入(NULL)のレコードにフィルタを掛けたいのですが Private Sub Click() Form_テーブル1.SetFocus Form_テーブル1.Filter = "感想 = '" & Null & "'" Form_テーブル1.Filter = "感想 = '" & "" & "'" Form_テーブル1.Filter = "感想 <> '" & "*" & "'" Form_テーブル1.FilterOn = True Form_テーブル1.Requery End Sub どれも引っかかりません。 クエリでデータ型を取得してみると NULLが返って来ます。 (SELECT TypeName([テーブル1]![感想]) AS 感想 FROM テーブル1;) Null値にフィルタを書ける方法を教えてくださいませ。

  • Access 2003 でフォームフィルターがかかりません。

    Access 2003 でフォームフィルターがかかりません。 どなたか助けてください。 アクセス初心者です。 フォームの詳細欄にチェックボックス(フィールド名:伝票チェック)を配置しております。 チェックの入っていないものを表示させたいです。 フォームヘッダーのオプショングループ(フレーム67)に オプションボタン0-オプション値0と オプションボタン2-オプション値2 の2個のオプションボタンを配置してあります。 クリック時のイベントプロシージャに以下のコードを書きました。 Private Sub フレーム67_Click() If Me!フレーム67 = 0 Then Me.Filter = 伝票チェック = 0 Me.FilterOn = True Else Me.Filter = "" Me.FilterOn = True End If End Sub 実行時エラーは出ませんが、データが何も表示されません。 どうすればいいのでしょう??? どなたかお願いします。

  • accessの検索で・・・

    お世話になっております。 今、OfficeXPで、Accessを使ってデータベースを作っています。 そこで、フィルタについて教えていただけないでしょうか(TへT) まずは、こんな感じでVBAを書いてみたのですが・・・ Private Sub kensaku_Click() Dim rsql1 As String Dim rsql2 As String Dim keys As String keys = InputBox("キーワードを入力してください", "キーワード検索") If keys = "" Then Exit Sub End If rsql1 = "select tel from master where dairi_code = keys" rsql2 = "select tel2 from master where contact_tel = keys" If rsql1 <> "" Then Me.Filter = "tel = '" & keys & "'" Me.FilterOn = True DoCmd.OpenForm "form_tel", acNormal, , "[tel] = '#" & key & "#'", acFormEdit, acDialog ElseIf rsql2 <> "" Then Me.Filter = "tel2 = '" & keys & "'" Me.FilterOn = True DoCmd.OpenForm "form_tel2", acNormal, , "[tel2] = '#" & key & "#'", acFormEdit, acDialog Else: MsgBox "該当するデータはありません", vbOKOnly End If End Sub と、いう感じです。 したいことは、2つのそれぞれのテーブルに検索をかけ、一致したのがあったらそれに対応するフォームを開くと言う感じにしたいです。 ロジック的に穴がありすぎると思いますが、どうかよろしくお願いいたします。

  • アクセス 通貨型 ワイルドカード

    アクセスでフィルタをかける時に、フィールドが通貨型でワイルドカードを使いたいのですが Private Sub Form_Load() Me.Form.Filter = "フィールド1 like *" Me.Form.FilterOn = True End Sub だと構文エラーになるのですが、すべての金額を対象にするにはどうすればいいですか?

  • (VBA)フィルタがかかっているかどうかの判断方法

    フィルタがかかっているかどうかを取得したいのですが フィルタがかかっているシートにて Sub test1() If ActiveSheet.FilterMode Then MsgBox "フィルタがかかってます" End If End Sub Sub test1の1() If ActiveSheet.FilterMode = True Then MsgBox "フィルタがかかってます" End If End Sub を実行しても"フィルタがかかってます"は表示されません。 Sub test2() If Rows(1).FilterMode Then MsgBox "フィルタがかかってます" End If End Sub Sub test3() If ActiveSheet.Rows(1).FilterMode Then MsgBox "フィルタがかかってます" End If End Sub こちらは オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438) になってしまいます。 フィルタがかかっているか調べる方法はありますか? よろしくお願いします。

  • クリックされたオプションボタンによって、常時複数のテキストBOXの桁数を変えたい

    掲題の件ですが、クリックされたオプションボタンによって常時テキストの桁数を変えたいのですが、 これを複数の組み合わせで行いたいときはどのsub(form_load等)にどのように記述したらよいでしょうか? 例えば、オプションボタンで3桁、4桁、5桁の選択肢があるとすると、 Private Sub Option1_Click(Index As Integer) Me.text1.MaxLength = 3 End Sub Private Sub Option2_Click(Index As Integer) Me.text2.MaxLength = 4 End Sub Private Sub Option3_Click(Index As Integer) Me.text3.MaxLength = 5 End Sub となりますが、この組み合わせを複数作りたい場合、オプションボタンとテキストboxをコントロール配列にして、 Dim i As Integer For i = 0 to 3 If Option1(i).Value = True Then Me.text(i).MaxLength = 3 ElseIf Option2(i).Value = True Then Me.text(i).MaxLength = 4 ElseIf Option3(i).Value = True Then Me.text(i).MaxLength = 5 End If Next このような形になると思いますが、これですとForm_Loadに貼り付けても常時桁を変えることができません。 どのsubにどのようにコードを記述したらよいか教えていただけたら幸いです。 よろしくお願い致します。

  • ラジオボタンの使い方

    お世話になります。 Access VBAなのですが、ボタンを押したときに 下記のようなコードでラジオボタンのOn, Offを判定しています。 しかしIf文のところで「指定した式には値が ありません」とエラーがでてしまいます。 原因がわからずに困っています。 おわかりのかた、どうかよろしくお願いいたします。 -------------------------------------------- Private Sub cmd登録_Click() If Form_物件マスタ.rb固定.Value Then Rec![水道オプション] = 0 ElseIf Me.rb変動.Value Then Rec![水道オプション] = 1 End If End Sub

  • access 

    下記はよくある、Select Caseと filterと思うのですが、 (日付が空白のものを抽出)or(全て表示)の2択としたのですが、 (全て表示)ボタンをクリックすると ほんの一瞬正しく(全て)が表示された後、フィルターされた「Case 1」の表示になってしまうんです。 下記コードは問題ありませんか? この症状の原因は何が考えられるでしょうか? -------------------------------------------------- Private Sub フレーム1_AfterUpdate() Dim varfilter As Variant Select Case Me!フレーム1.Value Case 1 varfilter = "日付 is null" Case Else varfilter = "" End Select Me.サブフォーム.Form.Filter = varfilter Me.サブフォーム.Form.FilterOn = True End Sub

  • VBAについて

    以下のプログラムは、1年間の価格合計を求めるプログラムです。 これを実行するとうまくいくこともありますが、エラーが起きることもあります。 どうやら下記コードが原因のようなのですが、間違いがわかりません。 Target.Offset(0, 1).Value = run * (13 - month) どこが間違っているのでしょうか。 また最終的に、A行かB行のどちらかが更新されたときにこのプログラムを 実行させたいのですが、方法がわかりません。 無知な質問ではありますが、どなたか教えてください。 --------------------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) Dim month As Integer Dim run As Integer If Intersect(Target, Range("A25:A35")) Is Nothing Then Exit Sub Else If Target.Offset(0, -2).Value <> "" Then month = Target.Offset(0, -2).Value month = month - 3 If month = -2 Then month = 10 ElseIf month = -1 Then month = 11 ElseIf month = 0 Then month = 12 End If run = Target.Offset(0, 0).Value Target.Offset(0, 1).Value = run * (13 - month) End If End If End Sub

専門家に質問してみよう