Office中国论坛/Access中国论坛

标题: 代码问题! [打印本页]

作者: petrelai    时间: 2004-4-20 00:44
标题: 代码问题!
Dim db As DAO.Database
Dim rec, rec1 As Recordset
Dim zj, zj1 As Boolean
systime.Caption = Format(Now(), "yyyy年m月d日 AMPM hh:mm:ss")
Set db = CurrentDb()
Set rec = db.OpenRecordset("安全库存超限预警", dbOpenDynaset)
If rec.RecordCount <> 0 Then
   zj = True
  End If

[B]Set rec1 = db.OpenRecordset("安全库存告急预警", dbOpenDynaset)[/B]
If rec1.RecordCount <> 0 Then
  zj1 = True
End If

If zj = True Or zj1 = True Then
  warning.Visible = Not warning.Visible '使得标签闪烁,引起注意
Else
  warning.Visible = False
End If

程序一运行到粗体的地方就出错说类型不匹配。两个表都是查询表,基本第一个查出来是有数据的,另一个查出来是没有数据的。
请各位帮忙!
作者: petrelai    时间: 2004-4-20 00:48
已解决!
作者: zhuyiwen    时间: 2004-4-20 00:50
Dim db As DAO.Database
Dim rec As DAO.Recordset, rec1 As DAO.Recordset
Dim zj As Boolean, zj1 As Boolean

systime.Caption = Format(Now(), "yyyy年m月d日 AMPM hh:mm:ss")
Set db = CurrentDb()
Set rec = db.OpenRecordset("安全库存超限预警", dbOpenDynaset)
If rec.RecordCount <> 0 Then
   zj = True
  End If

Set rec1 = db.OpenRecordset("安全库存告急预警", dbOpenDynaset)
If rec1.RecordCount <> 0 Then
  zj1 = True
End If

If zj = True Or zj1 = True Then
  warning.Visible = Not warning.Visible '使得标签闪烁,引起注意
Else
  warning.Visible = False
End If

作者: petrelai    时间: 2004-4-20 03:34
谢谢!我想问一下,为什么要改那两行?
那样定义不行吗?

[此贴子已经被作者于2004-4-20 10:32:24编辑过]


作者: zhuyiwen    时间: 2004-4-20 19:31
以下是引用petrelai在2004-4-19 19:33:36的发言:
谢谢!我想问一下,为什么要改那两行?
那样定义不行吗?


Dim rec As DAO.Recordset, rec1 As DAO.Recordset
这样定义的话, 两个都是DAO.Recordset类型

Dim rec, rec1 As DAO.Recordset
这样定义的话, 前面一个为Variant类型, 后面一个为DAO.Recordset类型

==========================================

你前面出现的问题, 应该是你同时引用了ADO和DAO, 且ADO引用还排在DAO的前面, 因此需要指明为DAO的Recordset.

作者: petrelai    时间: 2004-4-20 20:21
哦~
谢谢!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3