小编Mrp*_*hin的帖子

Access 2013 accde 文件无法导出到 acFormatXLSX

我有一个 Access 2013 数据库,并将其保存为 accde 文件以提供给最终用户。我注意到报告打印预览功能区上不再有导出按钮。我不知道为什么它们在 accdb 中,但在 accde 文件中消失了,并且无法使用 Google 找到任何内容来解释这一点,但我确实找到了很多文章说您必须为 Access 的运行时版本制作自己的功能区导出到 Excel。我没有使用运行时,但我制作了自己的功能区并且它有效,但仅适用于 .xls 文件格式。当我尝试将其保存到 .xlsx 时,出现错误:

“运行时错误‘2282’:您尝试输出当前对象的格式不可用。”

我在网上找到了一些帖子,说这有效,但没有详细信息,还有很多关于 Access 2007 错误/删除功能的帖子,有关 Excel 导出不起作用,但我使用的是 2013,所以不相关。

所以代码很简单:

DoCmd.OutputTo acOutputReport, "MyReport", acFormatXLSX, "File Name"
Run Code Online (Sandbox Code Playgroud)

我也尝试过添加参考文献。我目前按优先级顺序有以下参考文献: Visual Basic For Applications Microsoft Access 15.0 对象库 OLE 自动化 Microsoft Office 15.0 Access 数据库引擎对象库 Microsoft Internet Controls Microsoft Office 15.0 对象库 Microsoft Excel 15.0 对象库 Microsoft 数据访问组件安装版本

简单的问题是,是否可以使用 Access 2013 导出到 XSLX?如果是的话,我做错了什么?

感谢您一路读到这里。

ms-access vba ms-access-2013

5
推荐指数
1
解决办法
4025
查看次数

针对没有动态SQL的多个表运行相同的查询

我支持第三方软件包的SQL数据库。他们有很多所谓的“影子表”,实际上只是审计表。一切都很好,但是他们的系统不会清理这些表,所以我需要这样做。他们还将在每次升级时添加新的“影子表”,而不另行通知。我们清除表的旧方法是使用一长串DELETE FROM语句,但是此列表变得非常长且难以维护。

为了使清除过程更易于维护并自动捕获新的“影子表”,我编写了以下存储过程。存储过程可以工作,但是我更想找出一种不使用游标和动态查询的方法,因为它将每天在许多不同的表上运行。有没有使用游标和动态查询的替代方法吗?

DECLARE @workingTable varchar(128);
DECLARE @sqlText varchar(250);
DECLARE @CheckDate DATETIME = DATEADD(yy, -2, GETDATE());

DECLARE curKey SCROLL CURSOR FOR  
SELECT name AS TableName
FROM dataTEST.sys.tables
WHERE (name like '%[_]h' OR name like '%[_]dh')
ORDER BY name

OPEN curKey
WHILE @@fetch_status = 0
BEGIN
    FETCH NEXT FROM curKey INTO @workingTable
    SET @sqlText = 'DELETE FROM DataTEST.dbo.' + @workingTable + ' WHERE LAST_MOD < ''' + CONVERT(CHAR(10), @CheckDate, 101) + ''';'
    --PRINT @sqlText
    EXEC (@sqlText)
END
CLOSE curKey …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server dynamic-sql

5
推荐指数
1
解决办法
5947
查看次数

标签 统计

dynamic-sql ×1

ms-access ×1

ms-access-2013 ×1

sql ×1

sql-server ×1

t-sql ×1

vba ×1