请问:我用ADODC控件的RECORDSET的FIND方法查找:adodc1.recordset.find "用户='无名'",运行时提示“对象变量或 With 块变量没有设置”,不知为何!

BALLOONMAN 2001-05-20 10:32:00
请问:我用ADODC控件的RECORDSET的FIND方法查找:
adodc1.recordset.find "用户='无名'"
而且我已引用了ACTIVE DATA OBJECT LIBRARY,但运行时还提示“对象变量或 With 块变量没有设置”,不知为何!!!
...全文
469 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
westwin 2001-05-26
  • 打赏
  • 举报
回复
是不是你定义recordset的时候缺少了关键字new ?
vbgirlcalf 2001-05-26
  • 打赏
  • 举报
回复
我在编一个博士管理系统时也出现你这样的情况,在插入时,要线查询表table1(在SQL里)是否有这个号码,如果有,则不能插入,要插入的号码实在一个text框里输入的。在删除时也是,也实现查到这个号码,然后再插入,我是这样写的,可是老是不行,怎么回事啊?对了我不是用odbc来配置数据源,
del = InputBox("请输入要删除的号码", "删除")
Dim rstable1 As ADODB.Recordset
Set rstable1 = New ADODB.Recordset
rstable1.Open "select * FROM table1 WHERE table1.number=", del
If Not rstable1.EOF Then
rstable1.Delete
End If
joeking 2001-05-26
  • 打赏
  • 举报
回复
请看看你对ADO的引用,有时用了部件而没有使用引用会出现这种问题,再有,如果用JET40压缩了数据为会把一些中文字段与中文值删掉,试试用其他方法连接一下数据库。
lishush 2001-05-22
  • 打赏
  • 举报
回复
试试加上这条语句: Adodc1.CursorLocation = adUseClient
RECORDCOUNT不保险,经常返回错误数据,它要配合游标一起使用才正确

watercat17 2001-05-22
  • 打赏
  • 举报
回复
用下面这些语句试试
adodc1.recordsource="select COUNT(你的主键字段) AS sum from 用户表"
adodc1.refresh

if adodc1.recordset.eof and adodc1.recordset.bof then
msgbox "没有找到数据",vbokonly
else
msgbox "现在有记录" & adodc1.Recordset.Fields("sum").Value & "条",vbokonly
end if

ghphappy 2001-05-22
  • 打赏
  • 举报
回复
不是啊,在前面我已经ADODC1.RECORDSOURCE="SELECT * FROM 用户表"了,并且还adodc1.refresh了,不知为何?
BALLOONMAN 2001-05-22
  • 打赏
  • 举报
回复
CSDN老是放不了分,我直接点帖子,或点“管理”都不行,出不了那个加分的文本框,真是......
BALLOONMAN 2001-05-22
  • 打赏
  • 举报
回复
BALLOONMAN 2001-05-22
  • 打赏
  • 举报
回复
放不了
BALLOONMAN 2001-05-22
  • 打赏
  • 举报
回复
放分了
BALLOONMAN 2001-05-22
  • 打赏
  • 举报
回复
kao,现在又出毛病了,:(
对上面的问题,我采用了下面的代码:
adodc1.recordsource="select * from 用户表"
adodc1.refresh
'经调试知此时RECORDSET记录集中有2条记录
adodc1.recordset.find "用户='无名'"
'本来呢,数据库中只有一条“用户=无名”的记录,而且这次运行不再提示上述“对象变量或 With 块变量没有设置”错误了,但这时通过调试知此时RECORDSET。RECORDCOUNT仍为2,并未变为1,由于数据库中只有一条“用户=无名”的记录,所以此时RECORDCOUNT应该变为1才对呀,不知为何,:(
BALLOONMAN 2001-05-22
  • 打赏
  • 举报
回复
to 大家:
大家好,经过大家的热心帮助,我已明白了错误原因,现总结如下:
1、出现“对象变量或 With 块变量没有设置”错误,是因为我忘了在前面加上:
adodc1.recordsource="select * from 用户表"
adodc1.refresh 语句。
2、关于使用FIND方法后,RECOUNT值未变的问题,开始我误认为使用了FIND方法后,其RECORDSOURCE变了,所以RECOUNT也应该变,其实不然,使用了FIND方法只是将当前记录定位到你查询的记录上,而并未改变其RECORDSOURCE,这一点可以通过在使用了FIND方法后,查询其各个FIELD值来验证确实查到了欲查询的数据。
3、判断是否查到查到欲查数据可通过EOF或BOF是否为TRUE来判断,当二者有任一个为TRUE时,就说明未查到数据,当然如果是采用DAO对象的话,还可以通过NOMATCH属性来判断是否查到欲查数据。
4、为了表示对大家的热心帮助的感谢,放分,呵呵,:)
progame 2001-05-21
  • 打赏
  • 举报
回复
ConnectionString没有设置好吧
joeking 2001-05-21
  • 打赏
  • 举报
回复
有时是ADODC控件的recordset的对象没有打开的原因,所以无法使用WITH
你试试在前面加一句recordset.open
不过要记住CLose
ywld 2001-05-21
  • 打赏
  • 举报
回复
定义了没有啊
lj770724 2001-05-21
  • 打赏
  • 举报
回复
试试adodc1.recordset.find "用户=" & text1.text
ghphappy 2001-05-21
  • 打赏
  • 举报
回复
直接将ADODC1控件的RECORDSOURCE属性连接到具体的表试过吗?
BALLOONMAN 2001-05-20
  • 打赏
  • 举报
回复
TO solitude(孤独):
其中的ADODC1就是ADO DATA控件名,怎么SET =NEW呢?
TO hzh_wen_x(文):
其实我原来是这样写的:
adodc1.recordset.find "用户='" & text1.text & "'"
这样不行呀,:(
BALLOONMAN 2001-05-20
  • 打赏
  • 举报
回复
不是啊,在前面我已经ADODC1.RECORDSOURCE="SELECT * FROM 用户表"了,并且还adodc1.refresh了,不知为何?
BALLOONMAN 2001-05-20
  • 打赏
  • 举报
回复
多谢了
加载更多回复(2)

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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