0

我很难弄清楚我的问题。希望你们都知道这是否可能。我已经达到了对 MS Access 的限制,我正在尝试将我的 Access 模块转换为在 SQL Server 上运行。

这是我正在运行的可视化基本代码:

Set rs1 = db.OpenRecordset("select * from ReportFilter")
If rs1.EOF = True Then GoTo nextstep1    
rs1.MoveFirst
a = 0
Do
    b = 0
    RPrim(a, b) = rs1.Fields(0).Value
    b = b + 1
    RPrim(a, b) = rs1.Fields(1).Value
a = a + 1
rs1.MoveNext
If rs1.EOF = True Then GoTo nextstep1
Loop

我不确定,并尝试了一些“谷歌搜索”来弄清楚如何在 SQL 服务器上执行此操作。

reportfilter 表已经填充,我只是找不到一种方法来用表值填充变量。

任何帮助将不胜感激。

4

2 回答 2

0

Access 和 SQL Server 之间的区别之一是 Access 嵌入了对 VBA 的支持——即不仅是一个数据库,而且还是一个紧凑的应用程序平台。SQL Server 是一种更健壮、可扩展和企业级的 RDBMS,并且不像 VBA 那样带有嵌入式 4GL 语言。我建议将您的扩展 SQL Server 解决方案与 VB.net 结合起来(您几乎可以在其中插入您的 Access VBA,可能只需要稍作修改)或使用任何其他免费语言(例如,Perl 是轻量级的或 Java)。

于 2013-01-14T18:59:58.313 回答
0

这看起来像您正在尝试将表中的前两列读入数组。SQL Server 没有数组。您正在读取 VB 中的数组。这本身与数据库无关。

您可以在 SQL Server 上运行原始查询,它应该可以正常工作。

您可以用数据库中的查询替换后续代码。

另外,养成明确列出列的习惯:

select <col1>, <col2>
from ReportFilter
于 2013-01-14T19:00:07.863 回答