再次请教VB数据库关联

nuinui 2000-05-28 11:16:00
现有一个数据库,包括“序号”、“名称”、“年龄”等字段,分别用DataCombo、Text1、Text2与之相连接,当用DataCombo选择了“序号”后,就将当前记录移到该序号所对应的记录上。
例如:
数据库内容为:
序号 名称 年龄
01 张三 14
02 李四 13
03 王五 14
……

Datacombo与序号相连,Text1与名称相连,Text2与年龄相连。当用Datacombo从下列表框中选择了02后,记录就移到第二条,Text1就显示李四,Text2显示13。
我用的方法是在DataCombo的Click事件中加入如下代码:
……
TabCode = DataCombo.SelectedItem 'TabCode为Long,用作记录选择号
rsSlk.Move TabCode 'rsSlk为一个ADODB
Text1.Text=rsSlk.Fields("名称")
Text2.Text=rsSlk.Fields("年龄")
……
注:已作了相应连接。
可运行时程序却出错,并显示:

实时错误 '-2147217842 (80040e4e)'

The change was canceled during notification;no columns are changed
...全文
127 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
applekiller 2000-05-29
  • 打赏
  • 举报
回复
我觉得不需要写代码,因为dbcombo 的listfield 和 rowsource 已经和数据源绑定。
运行后.dbcombo中 有01,02,03。。。。等记录,选择了02,其实就是将当前记录移到
02这条记录上,而text1,text2分别与姓名、年龄相绑定,会随着数据源的当前记录的改变而改变。
tanhl 2000-05-28
  • 打赏
  • 举报
回复
当将控件与数据库进行连接时,改变控件内容及改变数据库的记录都会触发
Validate事件,当两者同时改变时,会出现记录不对应而引起错误,正确方法应为:
……
TabCode = DataCombo.SelectedItem 'TabCode为Long,用作记录选择号
on local error resume next
rsSlk.FindFirst "序号=" & TabCode 'rsSlk为一个ADODB
……

然后对连接的记录集进行更新,不必对Text1及Text2进行更新。

1,216

社区成员

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

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