重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

画像のような感じで作りたいですが、マクロではできなさそうだったので、
VBA?でやらないとできないかな、と思いました。
(VBAまったくわかりません。)

参考になりそうなサンプルを掲載しているウェブサイト様や、
これでできないかな、というような例文?参考を載せていただけませんでしょうか。

バージョン2000です。

「accessで、検索画面をつくりたい」の質問画像

A 回答 (4件)

もしかして『月』と『日』がテキスト型なのではありませんか?


ならば前回回答の安直な手は使えません。
コードだけ載せますが下記のようになります。
※前回からオブジェクト名を変更しています。

Private Sub フィルタテキスト型_Click()
  If Me.FilterOn = False Then
    Me.Filter = ""
    If Me!月TF <> "" Then
      Me.Filter = "月T = '" & Me!月TF & "'"
    End If
    
    If Me!日TF <> "" Then
      If Me.Filter <> "" Then
        Me.Filter = Me.Filter & "AND 日T = '" & Me!日TF & "'"
      Else
        Me.Filter = "日T = '" & Me!日TF & "'"
      End If
    End If
    Me.FilterOn = True
  Else
    Me.FilterOn = False
  End If
End Sub

Private Sub フィルタ数値型_click()
  If Me.FilterOn = False Then
    Me.Filter = "月N = " & Nz(Me!月NF, "true") & " and 日N = " & Nz(Me!日NF, "true")
    Me.FilterOn = True
  Else
    Me.FilterOn = False
  End If
End Sub

なお、下記にサンプルを置いてます。sample.mdb
http://firestorage.jp/download/e3a372bd5c2f5d263 …
※何処の馬の骨とも分からない人からファイルを受け取るわけですので
念のためウィルスチェックは行ってください。(^^ゞ
また、安全で無いファイルの警告が出た場合は
ブロックの解除を行ってください。
http://www.atmarkit.co.jp/fwin2k/win2ktips/498zo …
    • good
    • 0
この回答へのお礼

うまく機能しました!!
大満足です。ありがとうございました!

お礼日時:2011/05/06 17:28

画像を貼り付け損なったので。

「accessで、検索画面をつくりたい」の回答画像3
    • good
    • 0

いくつか方法があるかと思いますが


Filter を使った方法をば。
テーブルを元に帳票タイプのフォームを作成します。
(とりあえずウィザードで作ってみてください)

そのフォームをデザインビューで開いて
ツールボックス(とんかちマーク)を開きます。
そこからテキストボックスとコマンドボタンを
フォームのヘッダーに置きます。添付画像を参照

コマンドボタンを右クリックしてプロパティを表示し
イベントタブのクリック時と書かれている所の
右側の空白をクリック。
三点リーダ『・・・』のようなのが有りますので
そこをクリック。

こんな感じなのが出ますので
Private Sub コマンド12_Click()
On Error GoTo Err_コマンド12_Click


  Screen.PreviousControl.SetFocus
  DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70

Exit_コマンド12_Click:
  Exit Sub

Err_コマンド12_Click:
  MsgBox Err.Description
  Resume Exit_コマンド12_Click
  
End Sub
一番上の行と下の行だけ残して他は削除
Private Sub コマンド12_Click()
  
End Sub
この二行の間にコードをはめ込んで
Private Sub コマンド12_Click()
If Me.FilterOn = False Then
  Me.Filter = "月 = " & Nz(Me!テキスト8, "true") & " and 日 = " & Nz(Me!テキスト10, "true")
  Me.FilterOn = True
Else
  Me.FilterOn = False
End If
End Sub

※コントロールの名前(テキスト8とテキスト10)は適宜変更のこと。
以上、駆け足ですが。

この回答への補足

ありがとうございます。試してみました。

Private Sub コマンド12_Click()
If Me.FilterOn = False Then
  Me.Filter = "月 = " & Nz(Me!テキスト8, "true") & " and 日 = " & Nz(Me!テキスト10, "true")
  Me.FilterOn = True
Else
  Me.FilterOn = False
End If
End Sub

この、3行目に出てくる一番はじめの 「&」 のところでエラーが出てしまいました。
単純な入力のミスかもわかりませんが、やり直してもどうしてだかできなくて。。。
会社のパソコンにしかaccessが入っておらず、休日で再度確認ができません。
もし入力ミスでしたら申し訳ありませんが、一度ご確認願えませんか?

補足日時:2011/05/03 17:51
    • good
    • 0

http://www.mahoutsukaino.com/ac/ac2000/ac2000/ke …
のサイトが初心者にわかりやすいと思います。
ところで
日付のフィールドはどのようになっているのでしょうか?
年と月と日を分けて入れるケースはあまり見かけませんので
日付が 2011/04/30 と入っているならば
抽出したい日付を 2011/04/30 と入れるボックスを準備するほうが使い易いと思いますが。

この回答への補足

ありがとうございます。見に行ってみます。

日付のところは、何年の○月×日、じゃなくて、2011年の○月×日も2001年の○月×日も、
とにかく○月×日で探したいんだよ!ということなので、このようなかたちで書いてみました。

補足日時:2011/04/30 21:18
    • good
    • 0

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