在 ado 记录集中设置变量 - VBA

问题描述

我需要创建一些财务操作的累进平衡。我创建了变量 SaldoProgr 并尝试将 sql 导入到我的 Heidisql 中,没问题。

问题是当我将 sql 传递给 ado 记录集时:

sql = 
"set @SaldoProgr := 0; 
SELECT cvCodLan,cdData,ccMovimento,ccDocto,ccCredito,ccDebito,ROUND((@SaldoProgr := @SaldoProgr + ifnull(ccCredito,0)-ifnull(ccDebito,0)),2) as Saldo
 FROM tbl_FluxoCaixa 
WHERE (cdData Between 'xxxx-xx-xx' And 'xxxx-xx-xx') order by cdData"

当我将此字符串传递给 ado 记录集时,它返回错误

gRs一个 ADODB.Recordset

    With gRs
        Set .ActiveConnection = dbADO
        .source = sql
        .LockType = adLockOptimistic
        .CursorType = adOpenKeyset
        .CursorLocation = adUseClient
        .Open
    End With

好吧,我想知道如何创建变量并将其传递给 ado

感谢大家

解决方法

我是这样解决的:

SELECT cvCodLan,cdData,ccMovimento,ccDocto,ccCredito,ccDebito,ROUND((@SaldoProgr := @SaldoProgr + ifnull(ccCredito,0)-ifnull(ccDebito,0)),2) as Saldo 
 FROM tbl_FluxoCaixa  
 JOIN (SELECT @SaldoProgr := 0) R
WHERE (cdData Between 'xxxx-xx-xx' And 'xxxx-xx-xx') order by cdData

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...