2009年04月22日

ACCESS用VBAサンプル 20090422

Private Sub キャンセルボタン_Click()

 Dim fmname As String '委託者名
 Dim fmwork As String '作業
 Dim fmsdate As String '開始日付
 Dim fmedate As String '終了日付
 Dim fmhdate As String '引落日
 Dim fmcheck As Integer 'チェック {-1,0}のいづれかの値のみ
 Dim fmtanto As String '担当者
 Dim フィルタ条件 As String

 Forms("検索条件")!fm委託者名.Value = Null
 Forms("検索条件")!fm作業.Value = Null
 Forms("検索条件")!fm開始日付.Value = Null
 Forms("検索条件")!fm終了日付.Value = Null
 Forms("検索条件")!fm引落日.Value = Null
 Forms("検索条件")!fmチェック.Value = Null
 Forms("検索条件")!fm担当者.Value = Null

 Me.Filter = フィルタ条件
 Me.FilterOn = False
 Me.Refresh

End Sub
--------------------------------------------------
Private Sub 検索開始ボタン_Click()
 'フィルタ条件が存在する場合のみ、条件を and で追加していく点が大切!(最初、全てのケースを列挙してSELECTで場合分けして処理してて、死にそうになった)

 ’フィルター条件の日付は#で囲む

 Dim fmname As String '委託者名
 Dim fmwork As String '作業
 Dim fmsdate As String '開始日付
 Dim fmedate As String '終了日付
 Dim fmhdate As String '引落日
 Dim fmcheck As Integer 'チェック {-1,0}のいづれかの値のみ
 Dim fmtanto As String '担当者
 Dim フィルタ条件 As String

 Me.FilterOn = False
 Me.Refresh

 '条件として「開始日付」「終了日付」の有無
 If (Not IsNull(Me.fm開始日付)) Then
   fmsdate = Forms("検索条件")!fm開始日付.Value
  Else
   fmsdate = "2009/01/01"
 End If
 If (Not IsNull(Me.fm終了日付)) Then
   fmedate = Forms("検索条件")!fm終了日付.Value
  Else
   fmedate = "2009/12/31"
 End If

 フィルタ条件 = "日付 between #" & fmsdate & "# and #" & fmedate & "#"

 '条件として「委託者名」の有無
 If (Not IsNull(Me.fm委託者名)) Then
   fmname = Forms("検索条件")!fm委託者名.Value
   フィルタ条件 = フィルタ条件 & " and 委託者名 = '" & fmname & "'"
 End If

 '条件として「作業」の有無
 If (Not IsNull(Me.fm作業)) Then
   fmwork = Forms("検索条件")!fm作業.Value
   フィルタ条件 = フィルタ条件 & " and 作業 = '" & fmwork & "'"
 End If

 '条件として「引落日」の有無
 If (Not IsNull(Me.fm引落日)) Then
   fmhdate = Forms("検索条件")!fm引落日.Value
   フィルタ条件 = フィルタ条件 & " and 引落日 = #" & fmhdate & "#"
 End If

 '条件として「チェック」の有無
 If (Not IsNull(Me.fmチェック)) Then
   fmcheck = Forms("検索条件")!fmチェック.Value
   フィルタ条件 = フィルタ条件 & " and チェック = " & fmcheck
 End If

 '条件として「担当者」の有無
 If (Not IsNull(Me.fm担当者)) Then
   fmtanto = Forms("検索条件")!fm担当者.Value
   フィルタ条件 = フィルタ条件 & " and 担当者 = '" & fmtanto & "'"
 End If

 Me.Filter = フィルタ条件
 Me.FilterOn = True

End Sub
--------------------------------------------------
Private Sub 本日作業分ボタン_Click()

 Call キャンセルボタン_Click

 Dim fmsdate As String '開始日付
 Dim fmedate As String '終了日付
 Dim wdate As String '日付渡し用変数
 Dim フィルタ条件 As String
 Dim Path As String

 fmsdate = Format(Date, "yyyy/mm/dd")
 fmedate = fmsdate
 Forms("検索条件")!fm開始日付.Value = fmsdate
 Forms("検索条件")!fm終了日付.Value = fmedate
 Me.Refresh

 フィルタ条件 = "日付 between #" & fmsdate & "# and #" & fmedate & "#"
 Me.Filter = フィルタ条件
 Me.FilterOn = True
 Me.Refresh

 DoCmd.OpenForm "警告"
 Forms![警告].Filter = "アラート日 = #" & fmsdate & "# "
 Forms![警告].FilterOn = True

End Sub
--------------------------------------------------
ラベル:VBA access
posted by alice-room at 21:44| Comment(0) | TrackBack(0) | 【備忘録B】 | 更新情報をチェックする
この記事へのコメント
コメントを書く
コチラをクリックしてください

この記事へのトラックバック