实时错误:对象名无效

幻日 2013-11-15 01:27:24
我是用VB连接SQL server的,说对象名'combo1'无效,这是我的代码:
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim rst As New ADODB.Recordset
Dim rct As New ADODB.Recordset

Private Sub Form_Load()
Dim i As Integer
cn.Open "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=database;Data Source=localhost"
cn.CursorLocation = adUseClient
rs.Open "select * from 中国", cn
If rs.RecordCount <> 0 Then
rs.MoveFirst
For i = 0 To rs.RecordCount - 1
Combo1.AddItem rs.Fields("省名")
rs.MoveNext
Next i
End If
rst.Open "select * from " & Trim(Combo1.Text) & "", cn
If rst.RecordCount <> 0 Then
rst.MoveFirst
For i = 0 To rst.RecordCount - 1
Combo2.AddItem rst.Fields("城市名")
rst.MoveNext
Next i
End If
rct.Open "select * from " & Trim(Combo2.Text) & "", cn
If rct.RecordCount <> 0 Then
rct.MoveFirst
For i = 0 To rct.RecordCount - 1
Combo3.AddItem rct.Fields("县名")
rct.MoveNext
Next i
End If
Combo1.Text = "选择省份"
Combo2.Text = "选择城市"
Combo3.Text = "选择县/区"
Text1.Text = ""
End Sub


画了控件的:
...全文
447 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
舉杯邀明月 2013-11-18
  • 打赏
  • 举报
回复
ComboBox 的 .text属性,读取是不会出问题的。 但用它来“设置”,就不一定了。 当 Style属性为“2--下拉列表”时,只能设置列表项目中“已有的文本”,否则就引发异常。 Style为其它值时,可以任意设置 .text属性。
舉杯邀明月 2013-11-18
  • 打赏
  • 举报
回复
哪有这么怪的事啊。 你可以把你的这个窗体文件,发到我的邮箱让我看看吗? Gem8013@qq.com
幻日 2013-11-18
  • 打赏
  • 举报
回复
引用 7 楼 Chen8013 的回复:
有那么奇怪???
你前面从数据库读取数据的时候,能够 Combo1.AddItem
但到了我写的代码那儿,就对象名称“Combo1”无效了 ?

你确认你的控件名称 Combo1 最后一个字符,是数字1,而不是字母 l 么?

实在不行,你把那3个控件删除,重新画控件试试。

这个combo1.text居然等于combo1
幻日 2013-11-18
  • 打赏
  • 举报
回复
引用 7 楼 Chen8013 的回复:
有那么奇怪??? 你前面从数据库读取数据的时候,能够 Combo1.AddItem 但到了我写的代码那儿,就对象名称“Combo1”无效了 ? 你确认你的控件名称 Combo1 最后一个字符,是数字1,而不是字母 l 么? 实在不行,你把那3个控件删除,重新画控件试试。
试过了,还是不行,是不是把combo1.text作为表名的时候写法比较特殊啊,之前把combo1.text作为列名的时候这样写就没问题
舉杯邀明月 2013-11-18
  • 打赏
  • 举报
回复
有那么奇怪??? 你前面从数据库读取数据的时候,能够 Combo1.AddItem 但到了我写的代码那儿,就对象名称“Combo1”无效了 ? 你确认你的控件名称 Combo1 最后一个字符,是数字1,而不是字母 l 么? 实在不行,你把那3个控件删除,重新画控件试试。
幻日 2013-11-18
  • 打赏
  • 举报
回复
引用 3 楼 u012537093 的回复:
[quote=引用 2 楼 Chen8013 的回复:]
''Combo1.Text = "选择省份"
''Combo2.Text = "选择城市"
''Combo3.Text = "选择县/区"
Combo1.AddItem "选择省份", 0
Combo2.AddItem "选择城市", 0
Combo3.AddItem "选择县/区", 0
Combo1.ListIndex = 0
Combo2.ListIndex = 0
Combo3.ListIndex = 0
没有解决呀! [/quote] 他这里说的对象名无效是" & Trim(Combo1.Text) & "跟" & Trim(Combo2.Text) & ",这两个被我用作表名的地方,我把表名换成确切的表后就这个问题了,很纳闷
幻日 2013-11-18
  • 打赏
  • 举报
回复
引用 4 楼 Chen8013 的回复:
晕,你仔细看看你的那三个下拉列表控件的“对象名称”,是 Combo1、Combo2、Combo3 吗?
是的呀!不然我打出控件名接点的时候也弹不出事件跟方法啊
幻日 2013-11-18
  • 打赏
  • 举报
回复
引用 13 楼 Chen8013 的回复:
哦,能解决就好。 不过,真的感觉你说的问题很奇怪。
我本来象征性的建了三个表,本来想通过前一个combo.text的内容作为表名,查找出记录放在下一个combo里的,但是由于combo.text要么有初始的设置,要么就是空,这样在数据库就找不到这样一个表了,因为确实不存在,所以。。。后来就缩成一个表了
舉杯邀明月 2013-11-18
  • 打赏
  • 举报
回复
哦,能解决就好。 不过,真的感觉你说的问题很奇怪。
幻日 2013-11-18
  • 打赏
  • 举报
回复
引用 11 楼 Chen8013 的回复:
ComboBox 的 .text属性,读取是不会出问题的。 但用它来“设置”,就不一定了。 当 Style属性为“2--下拉列表”时,只能设置列表项目中“已有的文本”,否则就引发异常。 Style为其它值时,可以任意设置 .text属性。
大哥谢谢了,我换了一种建表方法了,避免调用combo.text,问题解决了
舉杯邀明月 2013-11-15
  • 打赏
  • 举报
回复
晕,你仔细看看你的那三个下拉列表控件的“对象名称”,是 Combo1、Combo2、Combo3 吗?
幻日 2013-11-15
  • 打赏
  • 举报
回复
引用 2 楼 Chen8013 的回复:
''Combo1.Text = "选择省份"
''Combo2.Text = "选择城市"
''Combo3.Text = "选择县/区"
Combo1.AddItem "选择省份", 0
Combo2.AddItem "选择城市", 0
Combo3.AddItem "选择县/区", 0
Combo1.ListIndex = 0
Combo2.ListIndex = 0
Combo3.ListIndex = 0

没有解决呀!
舉杯邀明月 2013-11-15
  • 打赏
  • 举报
回复
''Combo1.Text = "选择省份"
''Combo2.Text = "选择城市"
''Combo3.Text = "选择县/区"
Combo1.AddItem "选择省份", 0
Combo2.AddItem "选择城市", 0
Combo3.AddItem "选择县/区", 0
Combo1.ListIndex = 0
Combo2.ListIndex = 0
Combo3.ListIndex = 0
幻日 2013-11-15
  • 打赏
  • 举报
回复
应该是我的表达错误,求帮助

7,763

社区成员

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

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