プロが教える店舗&オフィスのセキュリティ対策術

Access2000・Windows2000を使用しています。
レコードの抽出をしたいと思います。テーブルは1つ、フィールドには日付・商品名・業者名・単価・・・とあります。フォームで「商品名から抽出(コンボボックスから商品を1つ選ぶ)」または「業者名から抽出(コンボボックスから業者を1つ選ぶ)」(コンボボックスから商品を1つ選ぶ)出来るようにし、なおかつ今月のレコードのみ表示させたいのですが、まずそのテーブルを1つ作成した時点でつまづいてしまっています。
どなたかご教授お願いします。

A 回答 (2件)

タイプミスが。



>   strWhere = "[商品名] = '" ' Me!条件商品名 & "' And "

  strWhere = "[商品名] = '" & Me!条件商品名 & "' And "

ですね。
    • good
    • 0

いくつか方法はありますが、VBAでフィルタプロパティを設定してやる方法の例です。



クエリで、
フィールド|*   |年月:Format([日付],"yyyymm")
 抽出条件|    |Format(Now(),"yyyymm")
 
のように作成し、このクエリを元にフォームを作成してください。
#これで、当月分のみ抽出することができます。


フォームで、フォームヘッダーに抽出条件入力用のコントロール(コンボボックス)を
作成してください。
あと、コマンドボタンを1つ。
抽出条件を入力後、コマンドボタンをクリックすると抽出されるような仕組みです。

コンボボックス名:条件商品名
         条件業者名


コマンドボタンのクリック時イベントで、[イベントプロシージャ] を選び、
右側に出てくる、... をクリックしてでてくる画面に以下のコードをコピーしてください。

Dim strWhere As String

If Not IsNull(Me!条件商品名) Then
  strWhere = "[商品名] = '" ' Me!条件商品名 & "' And "
End If

If Not IsNull(Me![条件業者名]) Then
  strWhere = strWhere & "[業者名] ='" & Me!業者名 & "' And "
End If

If Len(strWhere) > 0 Then
  Me.Filter = Left(strWhere, Len(strWhere) - 5)
  Me.FilterOn = True
Else
  MsgBox "条件を選択してください。"
End IF
    • good
    • 0

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

関連するカテゴリからQ&Aを探す