我的一位经理创建了一个Access数据库,并正在进行一些数据分析 - 如果情景如何。根据不同的条件,他在Access中生成一份报告。
他让我做了一些数据操作,所以我将数据库导入到SQL中并编写了一个带有游标的例程,该游标可以完成他想要的操作。然后我将结果导出回Access。在我使用游标之前得到任何热量之前,这应该是一次性的交易,所以这是我完成它的最快方式。
正如您所期望的那样,现在他希望我一直运行它并要求我将我的例程转换为Access,以便他可以运行它。在你告诉我只使用SQL之前,他非常关注Access并经常出差和离线。
所以,我的问题是:是否有一种“简单”的方法将带有游标的T-SQL查询转换为Access?自从我使用Access以来已经很长时间了,但我怀疑它必须在VBA中重写。我想也许另一个解决方案是从Access调用查询并在SQL中运行它,但我不知道是否可以这样做,或者它是否适用于我的情况,因为他离线(也许在他的笔记本电脑上安装SQL Express?)
任何建议都将不胜感激。
谢谢, 亚历克斯
答案 0 :(得分:1)
这就是我解决这个问题的方法:
1.Downloaded and install SQL server express in the user's machine.
2.uploaded Access database structure and data to the local SQL.
3.created the stored procedure that I wanted to run in the local SQL server.
4.back in Access, deleted all the tables and recreated them as linked tables to SQL
5.Create a form in Access with a big button that executes the stored procedure
`Private Sub Command0_Click()
Dim qdf As DAO.QueryDef
Set qdf = CurrentDb.CreateQueryDef("")
qdf.Connect = CurrentDb.TableDefs("ANY TABLE").Connect
qdf.SQL = "EXEC dbo.[stored procedure name]"
qdf.ReturnsRecords = False
qdf.Execute
Set qdf = Nothing`
存储过程截断一个重新填充其中一个表。因此,在执行它之后,我可以打开Access中的表并查看更改。我的经理可以继续使用Access和后端使用的SQL服务器。美好结局! :)