??用Excel调取Access数据库时,如何按条件调取部分记录??

hklmtt111 2008-07-16 02:36:22
rt

用Excel调取Access数据库时,如何按条件调取部分记录?

假设Access数据库中,每条记录都有一个日期,如何编写VB,使Excel调取Access数据库时,只调取指定日期的记录
...全文
348 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hklmtt111 2008-07-17
  • 打赏
  • 举报
回复
问题已全部解决
hklmtt111 2008-07-16
  • 打赏
  • 举报
回复
划线部分为引用Excel单元格的日期,$A$4为利用日历控件输入的日期,$A$5为$A$4-1。
例如:在$A$4中输入2008-7-4,则$A$5为2008-7-3;
hklmtt111 2008-07-16
  • 打赏
  • 举报
回复
Private Sub GetData()
'声明数据库连接对象
Dim conn As New ADODB.Connection
'声明结果集对象
Dim res As New ADODB.Recordset
'创建SQL语句
Dim sql As String
sql = "select * from Chiller where Data between $A$5 and $A$4"
'打开数据库连接
conn.Open "provide=Microsoft.jet.OLEDB.4.0; data source = " & ThisWorkbook.Path & "E:\Access.mdb"
With res
'运行SQL并获取结果集
.Open sql, conn, adOpenKeyset, adLockOptimistic
If .RecordCount > 0 Then
For i = 1 To .RecordCount
'向Sheet1中写入查询结果
Sheet1.Cells(i + 3, 2) = .Fields(Date)
Sheet1.Cells(i + 3, 3) = .Fields(Loading_1)
.MoveNext
Next i
End If
End With
'关闭结果集和连接
res.Close
conn.Close
Set res = Nothing
Set conn = Nothing
End Sub





划线部分为引用Excel单元格的日期,$A$4为利用日历控件输入的日期,$A$5为$A$5-1。
例如:在$A$5中输入2008-7-4,则$A$5为2008-7-3;
这里引用是否有问题?

另外运行时提示“运行时错误-2147467259(80004005)自动化错误”

请高手指点
wsri6 2008-07-16
  • 打赏
  • 举报
回复
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.Path & "\TDSJ.MDB;" & _
"Jet OLEDB:Engine Type=4"
Set conn = New ADODB.Connection '创建一个连接和打开 Cnn 连接
Set rst = New ADODB.Recordset '创建一个记录集
Dim conn As New ADODB.Connection
Dim rst As New ADODB.Recordset

Strsql = "Select * from 表一 where 结束日期 >= #" & 指定日期 & "# "
rst.Open Strsql, conn, adOpenKeyset, adLockOptimistic
下面自己做吧!
hklmtt111 2008-07-16
  • 打赏
  • 举报
回复
惭愧,就是不知道何从下手
dbcontrols 2008-07-16
  • 打赏
  • 举报
回复
这个应该不难的,你是否考虑把代码贴出来大家帮着修改一下.

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧