VB 运行出现 field not update,bound property name

weixin_42250358 2018-05-20 08:34:54
form中有三个控件combo1,text1,text2,另有Access数据表guzhang,表中有ID,故障类型,故障征兆,故障原因四个字段,使用ado控件,现已将其与数据库相连 ,故障类型链接combo1,故障征兆链接text1 ,故障原因链接text2 。
需求是,将表中的故障类型字段加入至combo1,当做combo1的下拉列表,选择combo1中的故障类型内容时,自动将故障征兆,故障原因字段中的内容加入到text1,text2控件中。三者一一对应,点击combo第三行,text1 text2对应也是第三行内容。ado记录源是1-adcmtext。
现代码如下:
Private Sub Combo1_Click()
Text1.Text = ""
Text2.Text = ""
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\guzhang.mdb;Persist Security Info=False"
Adodc1.RecordSource = "select * from guolu Where 故障类型='" & Combo1.Text & "'"
Adodc1.Refresh
Text1.Text = Adodc1.Recordset.Fields("故障征兆")
Text2.Text = Adodc1.Recordset.Fields("故障原因")
Adodc1.Recordset.Close
End Sub

Private Sub Form_Load()
Combo1.Text = ""
Combo1.Clear
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\guzhang.mdb;Persist Security Info=False"
Adodc1.RecordSource = "select * from guolu"
Adodc1.Refresh
Do While Not Adodc1.Recordset.EOF
Combo1.AddItem Adodc1.Recordset.Fields("故障类型")
Adodc1.Recordset.MoveNext
Loop
Adodc1.Recordset.Close
End Sub
VB 运行出现后提示: field not update,bound property name:故障类型。
查看数据库表中,故障类型清空
我自己真不知道问题出在哪儿,望哪位高手帮我运行一下,检查问题出在哪里?是access还是VB。小的不胜感激
...全文
1119 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_42250358 2018-05-24
  • 打赏
  • 举报
回复
是我自己ado控件属性出问题了,不应该设置ado属性,只需将ado控件引入就行
of123 2018-05-24
  • 打赏
  • 举报
回复
最大可能是问题出在你的数据库文件方面。因为我测试你的代码,是根据你的描述自建的数据库表。
weixin_42250358 2018-05-23
  • 打赏
  • 举报
回复
这是我运行出现的问题
将记录源设定为2-adcmtable时,运行出现的问题
修改记录源设定为1-adcmtext时,运行出现的问题
查看数据库“故障类型”就清空
of123 2018-05-23
  • 打赏
  • 举报
回复
你把同时打开数据库的 Access 关掉试试。
of123 2018-05-23
  • 打赏
  • 举报
回复
在我这里一切正常。
weixin_42250358 2018-05-23
  • 打赏
  • 举报
回复
这是我所需求的界面 。
这是我的数据库。
Private Sub Combo1_Click()
Text1.Text = ""
Text2.Text = ""
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\guzhang.mdb;Persist Security Info=False"
Adodc1.RecordSource = "select * from guolu Where 故障类型='" & Combo1.Text & "'"
Adodc1.Refresh
Text1.Text = Adodc1.Recordset.Fields("故障征兆")
Text2.Text = Adodc1.Recordset.Fields("故障原因")
Adodc1.Recordset.Close
End Sub

Private Sub Form_Load()
Combo1.Text = ""
Combo1.Clear
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\guzhang.mdb;Persist Security Info=False"
Adodc1.RecordSource = "select * from guolu"
Adodc1.Refresh
Do While Not Adodc1.Recordset.EOF
Combo1.AddItem Adodc1.Recordset.Fields("故障类型")
Adodc1.Recordset.MoveNext
Loop
Adodc1.Recordset.Close
End Sub
这是我需要的代码。
现在运行出现问题,不知道出错点在哪里,希望您能帮帮我,找出出错点,修改错误点。
脆皮大雪糕 2018-05-22
  • 打赏
  • 举报
回复
改一下那句查询语句

select IIF ( 故障类型 IS NULL, ‘’, 故障类型) as 故障类型,故障征兆,故障原因 from guolu
BTW : select * 不是一个好习惯
脆皮大雪糕 2018-05-21
  • 打赏
  • 举报
回复
Do While Not Adodc1.Recordset.EOF Combo1.AddItem Adodc1.Recordset.Fields("故障类型") Adodc1.Recordset.MoveNext Loop 问题应该出在这里,你数据库里的"故障类型" 字段全为空,所以这里取值取到了null。导致adodc内部错误。 个人建议不要用adodc,直接用ado对象进行数据处理。 当然,还有就是要把你数据库里的“故障类型”字段数值填上。
weixin_42250358 2018-05-21
  • 打赏
  • 举报
回复
之前有人告诉我是字段名没搞清楚,而我是个新手,一时真找不出问题所在,刚刚将代码写进去试了一次还是不行,提示错误还是: field not update,bound property name:故障类型。
脆皮大雪糕 2018-05-21
  • 打赏
  • 举报
回复
Combo1 的 Click 事件里 第一行加上: if Combo1.Text = "" then exit sub
of123 2018-05-21
  • 打赏
  • 举报
回复
这样试试: Do While Not Adodc1.Recordset.EOF Text1.Tag = Adodc1.Recordset.Fields("故障类型") & "" ‘如果数据是 Null,强制转为空串 If Text1.Tag > "" Then Combo1.AddItem Text1.Tag Adodc1.Recordset.MoveNext Loop

1,451

社区成员

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

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