自动化SQL查询

时间:2015-01-21 15:19:40

标签: sql-server access-vba ms-access-2010

我有一个访问数据库,我想将其转移到SQL Server数据库。但我在VBA中有一个程序,我仍然希望在SQL数据库中使用它。有没有办法自动化SQL查询,如VBA访问?任何帮助将不胜感激。

编辑:

以下是我的VBA代码片段。

deleteVerifTable = "DELETE * FROM VerifiedFormularies"

verifiedForm = "INSERT INTO VerifiedFormularies ([CLIENT ID], [CLIENT NAME], [MARKET SEGMENT], [FORMULARY ID], [FORMULARY NAME], [FORMULARY VERSION], [APPROVAL STATE], [ARCHIVED]) " & _
"SELECT DD.[CLIENT ID], DD.[CLIENT NAME], DD.[MARKET SEGMENT], DD.[FORMULARY ID], DD.[FORMULARY NAME], DD.[FORMULARY VERSION], DD.[APPROVAL STATE], [ARCHIVED] " & _
"FROM " & tableName & " as DD " & _
"Where DD.[APPROVAL STATE] IN (""APPROVED AND PUBLISHED"", ""APPROVED"", ""APPROVED WITH CHANGES"", ""APPROVED WITH POSTED CHANGES"") " & _
"AND DD.[Client ID] NOT IN (SELECT Exclusions.[Client ID] FROM Exclusions)" & _
"AND DD.[ARCHIVED] NOT IN(""YES"")" & _
"AND DD.[CLIENT ID] NOT IN(SELECT Exclusions.[Client ID] FROM Exclusions)" & _
"AND YEAR(DD.[APPROVED DATE]) >= " & year & " AND MONTH(DD.[APPROVED DATE]) > 1 AND DAY(DD.[APPROVED DATE]) > 1"

2 个答案:

答案 0 :(得分:0)

Access是具有集成前端(表单,报表)的DBMS,而SQL-Server是纯DBMS。您可以在Access中定义表值函数,但是您必须在SQL中执行所有操作。 SQL-Server比Access整体更强大。首先是多用户访问。但是,您必须为用户创建前端,例如.net c#WPF with Entity Framework。

你已经是Visual Basic的专家,VB.net也是一个选择。

或者使用Access作为前端并使用ADO或DAO从sql-server数据库获取数据。您还可以通过ODBC连接Access。但是,我不建议大规模应用。

答案 1 :(得分:0)

如果您的表已经迁移到SQL Server,则需要执行以下操作: 删除Access数据库中的所有表(首先进行备份!)。

将SQL Server表链接回Access。它们应该与迁移前的原始表具有相同的名称和结构。

如果它们没有相同的名称和结构,那么您必须创建视图并链接这些视图。

然后,您现有的代码应该可以像预期存在的所有对象一样工作,现在就可以了。