|
请教:
请看附件Access中,有一个查询叫GL transaction 2006,它用了一个Parameter,在字段的Monthly_Amount中,我用了一个参数[Please input the report TB month],如果输入200610,这样就可以使查询按2006年10月得出有效结果。但我想在VBA中使用这个查询的话,必须传递这个查询,我试了一下代码,使用CreatParameter,但不太行。
Public Sub GetParaQuery()
Dim mydata As String, mytable As String
Dim cmd As New ADODB.Command
Dim Par As ADODB.Parameter
Dim rs As ADODB.Recordset
Dim i As Integer
Dim myNo As String
Cells.Clear '清除工作表的全部数据
myFile = ThisWorkbook.Path & "\tb.mdb" '指定数据库
mytable = "GL transaction 2006" '指定数据表
'建立与数据库的连接
cmd.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & myFile
'建立查询参数
myNo = InputBox("请输入要查询的年月:", "年+月")
If Len(myNo) <> 6 Then
MsgBox "年+月的长度必须为6!", vbCritical + vbOKOnly, "警告"
myNo = InputBox("请输入要查询的年月:", "年+月")
End If
'写到下面这一句就有点不对了
cmd.CommandText = "select * from " & mytable '& " where [Please input the report TB month]=?"
Set Par = cmd.CreateParameter("Please input the report TB month", adinterger, adParamInput, 6, myNo)
cmd.Parameters.Append Par
'开始查询记录
Set rs = New ADODB.Recordset
Set rs = cmd.Execute()
If rs.BOF And rs.EOF Then
MsgBox "没有编号为<" & myNo & ">的职工记录", vbCritical
Else |
|