为什么,能增加新记录,却不能更新旧记录?

bimxhd 2001-12-15 05:52:57
Dim cnDbf As ADODB.Connection
Dim rsCb As ADODB.Recordset
Dim strPath As String
Dim strSql As String

Screen.MousePointer = 11
strPath = App.Path + "\drp"
Set cnDbf = New ADODB.Connection
strSql = "Provider=MSDASQL.1;Driver={Microsoft dBase Driver (*.dbf)};DBQ=" + strPath
cnDbf.Open strSql
strSql = "SELECT * FROM cb"
Set rsCb = New ADODB.Recordset
rsCb.CursorLocation = adUseClient
rsCb.Open strSql, cnDbf, adOpenStatic, adLockOptimistic
Screen.MousePointer = 0
' rsCb!tzyx = 10
' rsCb.Update '不能通过,报错
' rsCb.AddNew
' rsCb!tzyx = 10
' rsCb.Update 能通过

报错内容:
实时错误 '-2147467259(80004005)':
[Microsoft][ODBC dBase Driver] 操作必须使用一个可更新的查询。
...全文
115 10 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
bimxhd 2001-12-15
  • 打赏
  • 举报
回复
……
bimxhd 2001-12-15
  • 打赏
  • 举报
回复
库中有记录
bimxhd 2001-12-15
  • 打赏
  • 举报
回复
什么是“可更新的查询”
Sunnuy 2001-12-15
  • 打赏
  • 举报
回复
你首先有没有将要编辑的记录定好位?
你这种情况:如果数据库重没有记录肯定会出错。
bimxhd 2001-12-15
  • 打赏
  • 举报
回复
对SQL SERVER
对ACCESS
都可以
为什么对.DBF就不行
sonicdater 2001-12-15
  • 打赏
  • 举报
回复
添加 用下面 方法:
rs.Addnew
'.......
rs.Update

更新 ,用下面方法:

rs!Field = xxx
rs.updatebacth

hlf 2001-12-15
  • 打赏
  • 举报
回复
不可能吧?我就是这样调用的啊,我的增加、修改都行的。
bimxhd 2001-12-15
  • 打赏
  • 举报
回复
还是不行
hlf 2001-12-15
  • 打赏
  • 举报
回复
将 rsCb.Open strSql, cnDbf, adOpenStatic, adLockOptimistic

改为 rsCb.Open strSql, cnDbf, adOpenDynamic, adLockOptimistic,adasyncfetch
试试。
gmc007 2001-12-15
  • 打赏
  • 举报
回复
' rsCB.Edit '加上这句就可以了

' rsCb!tzyx = 10
' rsCb.Update '不能通过,报错
' rsCb.AddNew
' rsCb!tzyx = 10
' rsCb.Update 能通过

相关推荐
发帖
VB基础类

7681

社区成员

VB 基础类
社区管理员
  • VB基础类社区
加入社区
帖子事件
创建了帖子
2001-12-15 05:52
社区公告
暂无公告