Access快速开发平台1.7版--提示错误:"当访问一个带有IDENTITY列的SQL Server表时,必须使用OpenRecordset的dbSeeChanges选项。"-杨雪
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access开发平台


Access快速开发平台1.7版--提示错误:"当访问一个带有IDENTITY列的SQL Server表时,必须使用OpenRecordset的dbSeeChanges选项。"

发表时间:2016/11/8 8:19:20 评论(1) 浏览(6414)  评论 | 加入收藏 | 复制
   
摘 要:当访问一个带有IDENTITY列的SQL Server表时,必须使用OpenRecordset的dbSeeChanges选项。
正 文:

学员问题:


我做的模块删除按钮不能用,平台本身的模块这个删除按钮是正常的。查了一下没有用OpenRecordset。

用的老版本,1.7版


在线客服:
1.我刚才给 那个DAORunSQL删除语句,后面加了dbSeeChanges参数,提示找不到‘512 ’文件。
2.换成ADORunSQL,没有提示,但是删不掉。
3.测试正确版本为:
CurrentDb.Execute "Delete FROM [收入列表] Where [序号]=" & Nz(Me.sfrList![序号], 0), dbSeeChanges

就是感觉奇怪,自动生成的我看都是 daorunSQL.


刘师义(Eleven.Liu):--标准答案  

我记得平台后面的版本,DAORunSQL是默认加了dbSeeChanges参数的,不会报这个错

把这个函数的代码粘贴到basRDPRef模块里面去就行了

Public Function DAORunSQL(SQLStatement As String, _
                          Optional Database As Variant _
                          ) As Boolean
    On Error GoTo ErrorHandler

    Const dbSeeChanges = 512

    DAORunSQL = False

    If IsMissing(Database) Then
        Dim dbs As Object: Set dbs = CurrentDb
    Else
        If VarType(Database) = vbObject Then
            Set dbs = Database
        Else
            Set dbs = DBEngine.OpenDatabase(Database)
        End If
    End If
    dbs.Execute SQLStatement, dbSeeChanges
    DAORunSQL = (dbs.RecordsAffected > 0)

ExitHere:
    Set dbs = Nothing
    Exit Function

ErrorHandler:
    MsgBox "Function DAORunSQL()" & vbCrLf & Err.Description, vbCritical, "Error #" & Err.Number
    Resume ExitHere
End Function


不用做其它改动

ADORunSQL不太适合用在需要即时刷新的地方


因为DAORunSQL就是CurrentDb.Execute,只不过进行了扩展封装,它是用的ODBC通道。
而ADORunSQL是走的OLEDB通道。两者不是同步刷新的。所以用ADO删掉数据什么的,不能通过DAO马上刷新出来。



Access软件网交流QQ群(群号:198465573)
 
 相关文章
当 IDENTITY_INSERT 设置为 OFF 时,不能为表中...  【赵文斌  2011/11/17】
快速开发平台--找不到文件'512'的解决方法  【杜超-2号  2014/5/10】
ACCESS中CurrentDb.OpenRecordset打开S...  【张强  2014/10/11】
Access运行时错误'3622':当访问一个带有IDENTITY...  【杜超  2016/5/23】
快速开发平台--自动编号关联日期字段/自动编号根据日期字段动态编号  【宏鹏  2016/11/3】
常见问答
技术分类
相关资源
文章搜索
关于作者

杨雪

文章分类

文章存档

友情链接