为什么类型不匹配??

zhonghuilian 2005-02-26 07:53:35
有这样一段代码:

Option Explicit
Dim db As Database
Dim rs As Recordset
Dim full As String
Dim cn As New ADODB.Connection

Private Sub Combo1_Click()
Set rs = db.OpenRecordset("select 朋友 from 联系 where 城市='" & Combo1.Text & "'")
Combo2.Clear '由于要重新加入成员,所以把之前的成员清除
Do While Not rs.EOF
Combo2.AddItem rs.Fields("朋友")
rs.MoveNext
Loop
Label3.Caption = Combo1.Text
End Sub



Private Sub Command1_Click()
If Combo1 = full Or Combo2 = full Or Text1 = full Then '检测是否未选择信息
MsgBox "信息不完整,请重新选择完整信息"
Else
cn.Execute "INSERT INTO 纪录(城市,朋友,备注) valueS('" + Combo1.Text + "','" + Combo2.Text + "','" + Text1.Text + "')"
End If

Combo2.Clear
Text1.Text = ""
Label3.Caption = ""
Label4.Caption = ""
Label5.Caption = ""

End Sub


'++++++++++++++++++以下是出问题地方!!!!!!!!!!!
Private Sub Form_Load()
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb;Persist Security Info=False" '连接字符串的数据库路径可能有错,最好用相对路径
cn.Open
Set db = OpenDatabase(App.Path + "\db.mdb")
Set rs = db.OpenRecordset("select 城市 from 联系 group by 城市") '++++就是这句!!!
Do While Not rs.EOF
Combo1.AddItem rs.Fields("城市")
rs.MoveNext
Loop

End Sub

'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'以上是录入的例子

问题是当这个Form单独运行的时候,没有一点毛病,很正常!,但是当我把整个表单插入另外一个工程中的时候:Set rs = db.OpenRecordset("select 城市 from 联系 group by 城市") 这句就出现“类型不匹配”的错误,很奇怪?诸位高手帮我解答一下吧,谢谢!!

...全文
648 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhonghuilian 2005-02-28
  • 打赏
  • 举报
回复
已经基本上解决了!在开始定义的时候换成Dim rs As DAO.Recordset,就不会有类型不匹配的问题了!
但是现在有个小毛病,就是当我在form有新增加了Combo3-5时,原来下拉里表中有很多的内容,现在
每个Combo1-5都只能显示3个,再多的显示不出来呀?怎么回事?
zhonghuilian 2005-02-26
  • 打赏
  • 举报
回复
谢谢Tiger_Zhao(VB老鸟) 您说得很对,如果把rs定义成As DAO.Recordset,问题确实可以解决,可以正常运行!!,但是原来下拉列表选择还是用不了!!原来:点击-Combo1-(选择项目)—Combo2(里面出现Combo1-选择项目-中的子项)就是这个多级下拉的用不了了

如果在原来单form中换成Dim rs As DAO.Recordset,确实可以和原来一样正常运行的!!

您再帮我看看,谢谢!!
Tiger_Zhao 2005-02-26
  • 打赏
  • 举报
回复
Dim rs As DAO.Recordset

如果你没有指定库名,Recordset 即可以解释为 DAO.Recordset 也可以解释为 ADODB.Recordset。编译器大概根据引用库的顺序决定,我猜你两个工程对 DAO 和 ADO 的引用顺序应该不一样。必须显式指定库名
zhonghuilian 2005-02-26
  • 打赏
  • 举报
回复
那位高手能帮我解决一下呀??
w3k 2005-02-26
  • 打赏
  • 举报
回复
qq:59804834]
发代码调试吧!没用过DAO:)
zhonghuilian 2005-02-26
  • 打赏
  • 举报
回复
改成:Dim rs As new Recordset也是不行!
单独表单改成这个后运行不了,提示为:无效使用关键字
在新的工程中没有提示无效使用关键字,但是毛病和没改一样!!没变化

我新建的这个2个工程,工程1只是又添加了一个表单就是输入密码登陆的。工程2只是加了一个开始运行的是图片,这两个工程出现的毛病一样,可是按理来说应该没什么呀?搞不懂?怎么回事!!!

在线等待!!
w3k 2005-02-26
  • 打赏
  • 举报
回复
Dim rs As new Recordset

7,765

社区成员

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

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