【问题标题】:How to get the affected rows in VBA ADO Execute?如何在 VBA ADO Execute 中获取受影响的行?
【发布时间】:2012-09-22 12:10:18
【问题描述】:

MsgBox cn.RecordsAffected 行出现以下代码错误:

参数类型错误、超出可接受范围或相互冲突。

如何成功获取受影响的行数?这是针对 Access 2003 项目的。我更愿意将其保留为 2003 格式,所以如果有其他方法可以做到这一点,那就太好了。我不想为了这个 1 功能而升级整个项目。

Private Sub Command21_Click()
On Error GoTo Err1:
    Dim cn As ADODB.Connection
    Set cn = New ADODB.Connection
    With cn
        .Provider = "SQL Native Client"
        .ConnectionString = "Server=myserver\myinstance;Database=mydb;Uid=myuser;Pwd=mypass;]"
        .Open
    End With

On Error GoTo Err2:
    cn.Execute "SELECT * INTO someschema.sometable FROM someschema.anothertable"
    MsgBox cn.RecordsAffected
    Exit Sub

Err1:
    MsgBox "Failed to connect to database!"
    Exit Sub

Err2:
    MsgBox Err.DESCRIPTION
    cn.Close

End Sub

【问题讨论】:

    标签: ms-access vba ms-access-2007 ado


    【解决方案1】:

    ADODB.Connection 没有 RecordsAffected 属性。但是,Execute 方法将受影响的记录作为 ByRef 参数 [MSDN] 返回:

    Dim recordsAffected As Long
    cn.Execute "SELECT * INTO someschema.sometable FROM someschema.anothertable", _
               recordsAffected
    MsgBox recordsAffected    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-03
      • 2019-05-23
      • 2015-08-06
      • 2012-04-20
      相关资源
      最近更新 更多