0
Private Sub Command27_Click()
Dim ltr As DAO.Recordset
Set ltr = Me.RecordsetClone
    If Not (ltr.BOF And ltr.EOF) Then
        ltr.MoveFirst
        End If
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel3, ltr, "C:\Test\db"
    Set ltr = Nothing
End Sub

我正在尝试将表单从表格中提取的特定记录导出到 Excel 电子表格。我目前收到“运行时错误'2498':您输入的表达式是这些参数之一的错误数据类型。”

我注意到我只有在尝试导出记录集时才会得到这个。如果我尝试导出整个表,我会收到不同的错误消息。“运行时错误‘3170’:找不到可安装的 ISAM。”

我已经对此进行了一些阅读,但大多数人说他们通过将 Office 更新到较新版本来解决它,但是我已经有了比帖子更新的版本。

在这件事上的任何帮助将不胜感激。

提前致谢。

4

1 回答 1

1

您收到错误是因为 ltr 是一个 RecordSet 并且该函数需要一个字符串。

其次 acSpreadsheetTypeExcel3 是非常古老的 excel 文件类型。我个人至少应该使用 acSpreadsheetTypeExcel9。这将解决您的第二个错误。

我相信这应该有效

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, ltr.Name, "C:\Test\db"

这是假设 ltr 包含表名。如果 ltr.Name 返回一个查询,那么这可能不起作用。

于 2013-06-18T15:49:13.367 回答