VB6.0与access数据库,在控件(如textbox)属性中绑定数据字段,这种方式是否不能添加数据记录?

在窗体上添加了adodc控件,在控件属性中连接了数据库和数据表;另外在窗体上添加了若干个textbox控件,在控件属性中设置了datasource和datafield,分别对应adodc和相应字段名称。
运行时,在第一个textbox中输入内容后,点击第二个textbox后,第一个textbox中刚输入的内容就消失了。
一本VB的书上说用这种绑定字段的方式可以实现对数据库的增、删、查、改,可是网上一则材料却说不能实现增加记录的功能,请问高手到底能还是不能?如果能实现的话,应该如果做?

当adodc所连接的数据表中不存在记录,或者当前记录指针指向BOF或EOF时,就会出现你所说的在文本框输入内容后移开焦点时所输入的内容被自动清空的情况,因为这个时候不存在任何可操作的当前记录,你的操作是无意义的。必须通过其他方法先给数据表添加一个空白记录,这时候adodc的记录指针就会自动指向这个记录,然后再在绑定的文本框中输入数据才有效!比如添加一个名为“新增记录”的按钮:

Private Sub Command1_Click()
Adodc1.Recordset.AddNew  '添加新的空记录
End Sub

此外要注意,输入数据后,并不会立即写入数据库的,这时候有两种方式来处理:一是再次点击“新增记录”按钮,那么在新增一条空记录的同时刚才输入的内容就会被自动写入数据库;二是通过其他方式强制写入数据库,比如新增一个“确认添加”的按钮:

Private Sub Command2_Click()
Adodc1.Recordset.Update  '更新数据表
End Sub

当然,你也可以发挥你的聪明才智,让程序实现智能操作,比如光标停留在第一个文本框时就自动添加一个空记录,光标离开最后一个文本框时就自动写入数据库,这样就无须专门添加N个按钮来处理了。不过这样一来程序的复杂程度就肯定会上升,比如你需要处理因为无意中点击了第一个文本框而添加的多余空记录。

其他改、删、查的时候也同样要注意:执行操作时,要先把adodc的记录指针指向需要操作的那条记录,否则操作无效,甚至还可能破坏其他正常记录。

温馨提示:答案为网友推荐,仅供参考
相似回答