在Office Access女士中使用VBA从SQL查询动态创建数据表

尼康·巴特

我有与MS SQL Server连接的Access数据库项目。数据(表)存储在Ms SQL服务器中,而表单和报表存储在Access .ADP文件中。无法使用“设计”视图创建查询,表,视图,但是可以使用SQL查询创建表和视图并将其存储在服务器上。我没有SQL Server Management Studio女士,也无法在办公室的计算机上安装它。

因此,我要获取的是动态生成的SELECT SQL查询数据表,以便临时查看结果以进行数据分析。我已经在表单中放置了一个文本框和一个按钮,并且想要显示一个数据表,其中包含单击按钮时写在文本框中的SQL查询结果。

我尝试了此操作,但是它对我不起作用,而且似乎也不是我想要的:
MS Access VBA-在数据表子窗体中显示动态生成的SQL结果

我还尝试通过将查询分配给表单的Recordsource属性来进行尝试。它显示空白数据表,但数据表下方的导航窗格显示实际检索到的记录数。因此,它正在工作,但未显示数据。

我尝试过(来自http://www.pcreview.co.uk/forums/create-query-dynamically-vba-t3146896.html):

Dim db As DAO.Database
Dim qd As DAO.QueryDef
Dim strSQL As String
Set db = CurrentDb
strSQL = "select * from analysts"
Set qd = db.CreateQueryDef("NewQueryName", strSQL)
DoCmd.OpenQuery "db.NewQueryName"

它显示运行时错误91,未在行上设置对象变量或With块变量 Set qd = db....

并且(在同一页面上):

Dim strSql As String
strSql = "select * from analysts"
CurrentDb.QueryDefs("qryExport").SQL = strSql
DoCmd.OpenQuery "qryExport"

返回相同的错误就行了CurrentDb.QueryDefs....

有什么想法或解决方法吗?

尼康·巴特

这似乎效率不高,但是可以正常工作并且有点令人满意:

DoCmd.RunSQL "IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS " & _
     "WHERE TABLE_NAME = 'tv') DROP VIEW tv"
DoCmd.RunSQL "create view tv as " & txtQry
DoCmd.OpenView "tv"

在这里,我正在按钮的click事件中创建一个临时VIEW(tv)。在创建视图之前,我要检查是否存在同名视图。如果存在,则将其删除,以便可以使用不同的查询创建具有相同名称的新视图。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在vba Office宏中使用全局对象

来自分类Dev

从Office外接程序中使用Office.js API

来自分类Dev

Office 2016:禁止登录Office,但继续在Outlook中使用Office 365电子邮件

来自分类Dev

字典词典-vba Office for Mac

来自分类Dev

Office 365中的VBA日期

来自分类Dev

字典词典-vba Office for Mac

来自分类Dev

与Office数据连接连接

来自分类Dev

使用Microsoft Office 2016开发Microsoft Office 2013

来自分类Dev

使用Wine安装Microsoft Office

来自分类Dev

使用systemd启动Libre Office

来自分类Dev

使用Office JS API的Office VSTO加载项与Office加载项

来自分类Dev

在Office 365 API中使用多个范围

来自分类Dev

使用Office 365 API创建新事件

来自分类Dev

使用 PHP API 创建 Office 365 用户

来自分类Dev

使用服务帐户访问Office 365数据

来自分类Dev

使用服务帐户访问Office 365数据

来自分类Dev

在将数据表导出到Excel后使用Microsoft.office.interop.Excel日期格式问题

来自分类Dev

如何使VBA代码与libre office兼容

来自分类Dev

VBA常数可识别64位Office

来自分类Dev

VBA AddressOf Crash Office应用程序

来自分类Dev

如何在MS Office中添加VBA?

来自分类Dev

Office Automation-创建味精文件

来自分类Dev

创建不依赖Office程序的文档?

来自分类Dev

我仍然可以在Office 2013中使用Microsoft.Office.Interop程序集吗?

来自分类Dev

Libre Office表单-需要带有查找字段的数据表布局

来自分类Dev

确定是否使用Excel VBA连接到VPN或Office Intranet或Office Wifi

来自分类Dev

使用Office的JavaScript API获取Excel范围

来自分类Dev

使用Office365 SMTP设置PHPMailer

来自分类Dev

从服务使用Office 365 API