高分白送!紧急求救!VB数据库!

zhaojin0425 2004-05-10 01:27:53
这是我的代码!~但是,运行说我“实时错误‘91’:对象变量或WITH块变量未设置”!怎么处理啊!~
If Text1.Text <> "" Then
txtsql = "select * from ReaderMessage where ReaderName like '%" & Trim(Text1.Text) & "%'"
End If
If Text2.Text <> "" Then
txtsql = "select * from ReaderMessage where ReaderIndex =" & Trim(Text2.Text)
End If
If Text3.Text <> "" Then
txtsql = "select * from ReaderMessage where Age =" & Trim(Text3.Text)
End If
If Text4.Text <> "" Then
txtsql = "select * from ReaderMessage Duty like '%" & Text4.Text & "%'"
End If
If Combo1.Text <> "" Then
txtsql = "select * from ReaderMessage where Sex =" & Trim(Combo1.Text)
End If
If Combo2.Text <> "" Then
txtsql = "select * from Reader where ReaderType=" & Trim(Combo2.Text)
End If
ExecuteSql (txtsql)
sekreader.Rows = 1
sekreader.TextMatrix(0, 0) = "读者ID"
sekreader.TextMatrix(0, 1) = "姓名"
sekreader.TextMatrix(0, 2) = "性别"
sekreader.TextMatrix(0, 3) = "年龄"
sekreader.TextMatrix(0, 4) = "读者类型"
sekreader.TextMatrix(0, 5) = "职务"
For i = 0 To 5
sekreader.ColAlignment(i) = 0
Next
Do While Not rs1.EOF And rs2.EOF
sekreader.Rows = sekreader.Rows + 1
sekreader.TextMatrix(sekreader.Row - 1, 0) = rs1.Fields("ReaedrIndex")
sekreader.TextMatrix(sekreader.Row - 1, 1) = rs1.Fields("ReaderName")
sekreader.TextMatrix(sekreader.Row - 1, 2) = rs1.Fields("Sex")
sekreader.TextMatrix(sekreader.Row - 1, 3) = rs1.Fields("Age")
sekreader.TextMatrix(sekreader.Row - 1, 4) = rs2.Fields("ReaderType")
sekreader.TextMatrix(sekreader.Row - 1, 5) = rs1.Fields("Duty")
rs1.MoveNext
rs2.MoveNext
Loop
rs1.Close
rs2.Close
...全文
53 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
99414325ALe 2004-05-13
  • 打赏
  • 举报
回复
两个记录集至少有一个没有实例化
meixi 2004-05-13
  • 打赏
  • 举报
回复
受不了了,是低级错误吧,代码没什么问题
zhaojin0425 2004-05-13
  • 打赏
  • 举报
回复
sekreader.TextMatrix(sekreader.Row - 1, 0) = rs1.Fields("ReaedrIndex")
sekreader.TextMatrix(sekreader.Row - 1, 1) = rs1.Fields("ReaderName")
sekreader.TextMatrix(sekreader.Row - 1, 2) = rs1.Fields("Sex")
sekreader.TextMatrix(sekreader.Row - 1, 3) = rs1.Fields("Age")
sekreader.TextMatrix(sekreader.Row - 1, 4) = rs2.Fields("ReaderType")
sekreader.TextMatrix(sekreader.Row - 1, 5) = rs1.Fields("Duty")zhe
这不就是把ExecuteSql (txtsql) 得到的记录集没有赋值到RS1了吗?!~
莫非~~~我的理解错误?!~
flyingZFX 2004-05-11
  • 打赏
  • 举报
回复
困~~~!
northwolves 2004-05-10
  • 打赏
  • 举报
回复
呵呵 ,说错了, 原来 RS2 有用,你可以这样定义

Sub executesql(ByVal mysql As String)
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim strsql As String
cnn = "Provider=MicroSoft.Jet.OLEDB.4.0;Data Source=" & mymdbpath 'change to your path

rst.Open mysql, cnn, adOpenKeyset, adLockOptimistic
If InStr(mysql, "ReaderMessage") > 0 Then
Set rs1 = rst
Else
Set rs2 = rst
End If
End Sub
northwolves 2004-05-10
  • 打赏
  • 举报
回复
ExecuteSql (txtsql) 得到的记录集没有赋值到RS1
你的语句中 RS2 去掉似乎没有关系
zhaojin0425 2004-05-10
  • 打赏
  • 举报
回复
你说的没有错,应该是rs1或rs2里面至少有一个表没有打开或者为空(没有查找到记录)
我想可能是我的ExecuteSql (txtsql)出错,我在本窗体重新作了一个cn,rs1,rs2 !
能运行了但是没有显示结果啊!~
roger_xiong 2004-05-10
  • 打赏
  • 举报
回复
Do While Not rs1.EOF And rs2.EOF 这步出错,一定是rs1或rs2里面至少有一个表没有打开或者为空(没有查找到记录),你在这里设一个断点,然后在立即窗口打:
print rs1.recordcount
print rs2.recordcount
看看到底那个rs错了。
zhaojin0425 2004-05-10
  • 打赏
  • 举报
回复
哈哈~~我的写法很个性吗!~?原来才个性呢!~我已经大众化了!~
我没有在执行到ExecuteSql (txtsql)出错,
而是在Do While Not rs1.EOF And rs2.EOF包错!~
guxiangdefeng 2004-05-10
  • 打赏
  • 举报
回复
你的写法很有个性,如果有这种写法,而且执行到ExecuteSql (txtsql)出错,改:

txtsql = "select * from ReaderMessage where ReaderIndex ='" & Trim(Text2.Text) & "'"

txtsql = "select * from ReaderMessage where Age ='" & Trim(Text3.Text) & "'"

txtsql = "select * from ReaderMessage where Sex ='" & Trim(Combo1.Text) & "'"

txtsql = "select * from Reader where ReaderType='" & Trim(Combo2.Text) & "'"

如果还错,换种规矩的执行写法
yoki 2004-05-10
  • 打赏
  • 举报
回复
晕~,单步调试啊 F8
zhaojin0425 2004-05-10
  • 打赏
  • 举报
回复
有啊!~
我在模块里建立的!~!!!
表里有记录!~
请问,如何做一步一步的分析!~??有像C中的单步跟踪器吗!?~
fatcoder 2004-05-10
  • 打赏
  • 举报
回复
確定 rs1 和 rs2
有沒有打開
或者 有沒有記錄.


zhaojin0425 2004-05-10
  • 打赏
  • 举报
回复
错误在 Do While Not rs1.EOF And rs2.EOF
我的txtsql应该没有错!!!
射天狼 2004-05-10
  • 打赏
  • 举报
回复
你的错误指向哪里WITH变量未设置说明对象没有被初始化,你的记录集NEW了吗?
itzhiren 2004-05-10
  • 打赏
  • 举报
回复
错误指向哪里呀?估计是单元格的序号有问题
yassee 2004-05-10
  • 打赏
  • 举报
回复
变量txtsql可能已经不符合sql语句了。 逐句分析,看分析到ExecuteSql (txtsql),txtsql的值是否符合sql。

1,216

社区成员

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

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