dbOpenDynaset用dbopentable 或者: Set rec = dbsPubs.OpenRecordset("Banci")
当然不行,因为没有当前纪录,要rec.movefirst之后才可以edit
我和你有类似的问题,我使用opendatabase打开foxpro数据库,第一次运行时可以添加数据的,第二次在运行就会报错"数据库或对象是只读的",下面是我的代码: Private Sub Form_Load() Dim dtbs As Database Dim db As Database Dim tdf As TableDef Dim rst1 As Recordset Set dtbs = OpenDatabase("g:\lx", False, False, "foxpro 3.0;") Set rst1 = dtbs.OpenRecordset("lxdata", dbOpenDynaset) h = rst1.field("a").DataUpdatable rst1.MoveFirst rst1.AddNew '出错 rst1.field("a") = "1111" rst1.Update y = rst1.RecordCount End Sub 你看问题何在?
我的EMAIL [email protected]
类型是STRING,这个应该没有问题!
程序在REC.EDIT 就报错!
我觉得主要问题是 OPENDATABASE 的问题。但是没有相关资料可以查证!!
dbOpenDynaset好象没有edit权限 ????真的吗
用什么别的参数?
Set rec = dbsPubs.OpenRecordset("select * from Banci")
如果不想程序代码改动量大的话,用DAO比较好一些。
如果用ADO,那么等于重新开发!!让我悲哀的是,整个论坛都没有人懂这个东西吗?
ADO多么简单啊,带向导。参考资料还这么多!!!我就一个简单问题,用DAO怎么连接SQL?我想随便一个有一点编程经验的人都会吧!
或者:
Set rec = dbsPubs.OpenRecordset("Banci")
Private Sub Form_Load()
Dim dtbs As Database
Dim db As Database
Dim tdf As TableDef
Dim rst1 As Recordset
Set dtbs = OpenDatabase("g:\lx", False, False, "foxpro 3.0;")
Set rst1 = dtbs.OpenRecordset("lxdata", dbOpenDynaset)
h = rst1.field("a").DataUpdatable
rst1.MoveFirst
rst1.AddNew '出错
rst1.field("a") = "1111"
rst1.Update
y = rst1.RecordCount
End Sub
你看问题何在?