Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


203 / 2272 ツリー ←次へ | 前へ→

【12566】オプションボックスがうまく動かない likehi 14/6/23(月) 17:28 質問[未読]
【12567】Re:オプションボックスがうまく動かない hatena 14/6/23(月) 18:11 回答[未読]
【12568】Re:オプションボックスがうまく動かない likehi 14/6/24(火) 22:02 お礼[未読]

【12566】オプションボックスがうまく動かない
質問  likehi E-MAIL  - 14/6/23(月) 17:28 -

引用なし
パスワード
   環境 ACCESS2010
ACCESSでオプショングループを利用して指定のデータだけを画面に一覧形式で出したいと考えています。

実行したことは
1.一覧形式フォームを作成
2.フォームの下にオプショングループを作成しました。
3.VBAで以下のコードを書きました。

Private Sub 誕生月_AfterUpdate()
With CodeContextObject
    If (.誕生月 = 1) Then
      DoCmd.ApplyFilter "," & [月設定] = 1
      End If
    If (.誕生月 = 2) Then
      DoCmd.ApplyFilter "," & [月設定] = 2
      End If
    If (.誕生月 = 3) Then
      DoCmd.ApplyFilter "," & [月設定] = 3
    End If
End With
End Sub

 月設定は日付から月だけが出るようにした列です。
誕生月はオプショングループの名前です。

コードの書き方がおかしいのでしょうか。
どなたかご教授お願いします。

【12567】Re:オプションボックスがうまく動かない
回答  hatena  - 14/6/23(月) 18:11 -

引用なし
パスワード
   ApplyFilter の書き方は下記のようになります。

DoCmd.ApplyFilter , "[月設定] = 1"

引数の区切りの , を"で囲んで文字列にしてはいけません。
フィルタの条件式は文字列として渡します。


ちなみに、
If を使わなくても、下記の1行でOK。


Private Sub 誕生月_AfterUpdate()
  DoCmd.ApplyFilter , "[月設定] = " & Me.誕生月
End Sub

【12568】Re:オプションボックスがうまく動かない
お礼  likehi E-MAIL  - 14/6/24(火) 22:02 -

引用なし
パスワード
   ▼hatena さん:
>ApplyFilter の書き方は下記のようになります。
>
>DoCmd.ApplyFilter , "[月設定] = 1"
>
>引数の区切りの , を"で囲んで文字列にしてはいけません。
>フィルタの条件式は文字列として渡します。
>
>
>ちなみに、
>If を使わなくても、下記の1行でOK。
>
>
>Private Sub 誕生月_AfterUpdate()
>  DoCmd.ApplyFilter , "[月設定] = " & Me.誕生月
>End Sub

早速の回答ありがとうございます。
職場で別なプログラムからダブルクオーテーションの付け方を真似て書いたつもりでしたが間違ってたようですね。
スッキリしました。
ACCESS VABの疑問を一つずつつぶしていこうと考えています。
今後ともよろしくおねがいします。

203 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078190
(SS)C-BOARD v3.8 is Free