VBAで使うときちょっと癖があるので。
'Module:DoCmdR
Option Compare Database
Option Explicit
Public Sub SetParameter(ParameterName As String, _
ParameterValue As Variant)
Dim tmpParam As Variant
Select Case VarType(ParameterValue)
Case 7 'vbDate
tmpParam = Format(ParameterValue, _
"\#mm/dd/yyyy hh:nn:ss\#")
Case 8 'vbString
tmpParam = Chr(34) & _
Replace(ParameterValue, _
Chr(34), String(2, 34), , , _
vbBinaryCompare) & _
Chr(34)
Case Else
tmpParam = ParameterValue
End Select
DoCmd.SetParameter ParameterName, tmpParam
End Sub
'使用例
Option Compare Database
Option Explicit
Private Sub cmd01_Click()
DoCmdR.SetParameter "parameter_name", Me.txt01
DoCmd.OpenQuery "Query_Name"
End Sub
PARAMETERS param01 Value; SELECT T_0.ID, T_0.F_Num, T_0.F_txt, T_0.F_date, T_0.F_boolean FROM T_0 WHERE T_0.F_date=param01;BrowseTo/OpenForm/OpenQuery/OpenReport/RunDataMacroが実行されるとパラメータコレクションはすべてクリアになるから、使用する直前にメソッドを使用する。
0 件のコメント:
コメントを投稿