SOS!我没招了,请各位支招!!!!

wenlz 2003-01-02 05:02:09
我用的是DAO,通过ODBC连Sql Anywhere的数据库,方法如下,可产生的RstB不能更新,代码如下:
Global Wrk As Workspace, xlsDB As Database, odbcDB As Database
Global rstA As Recordset, rstB As Recordset
Public Sub Main()
Con = "ODBC;UID=" & strUser & ";" & "PSWD=" & strPswd & ";DSN=" & strOdbc
Set Wrk = DBEngine.CreateWorkspace("WrkSpace", "admin", "", dbUseODBC)
Set odbcDB = Wrk.OpenDatabase("", dbDriverNoPrompt, False, Con)
End Sub
Private Sub Cmd_Update_Click()
'Combo2.txt为其中的表名
Set rstB = odbcDB.OpenRecordset(Combo2.Text)



End Sub
当对rstB进行Addnew方法时,提示:不能更新,数据库为只读!
请问这么做有什么问问题吗?
...全文
18 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bxf 2003-01-03
  • 打赏
  • 举报
回复
dao我不熟悉,你为什么不用ado??
ado控制起来就方便多了!
of123 2003-01-03
  • 打赏
  • 举报
回复
试试:

Set Wrk = DBEngine.CreateWorkspace("WrkSpace", "admin", "", dbUseJet)
wenlz 2003-01-03
  • 打赏
  • 举报
回复
TO: chenyu5188(蓝色情调)
应该不是,我用ADO联接时就可以插入新记录,而且odbcDB.Updatable为True
可打开记录集RstB后,RSTB.Updatable为false
wenlz 2003-01-03
  • 打赏
  • 举报
回复
TO:of123()
我一开始就试过了,这样创建的工作区间不支持db.tabledefs()这些属性,也不能更改记录集。您再帮忙想想招吧,先谢了!!!
chenyu5188 2003-01-02
  • 打赏
  • 举报
回复
查查你的数据库文件是不是只读属性。
wenlz 2003-01-02
  • 打赏
  • 举报
回复
谢谢litsnake,我也想过,也试过,如果打开记录集时加上dbopendynamic则报错,说参数无效。可我看过。数据库是可写的!
litsnake1 2003-01-02
  • 打赏
  • 举报
回复
我没用过dao,但是错误的原因是因为你打开记录集的时候,是只读的,所以 不支持更新数据库,你应该改变打开记录集的方式

1,216

社区成员

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

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