Access 将长整数导出为双精度数据类型,采用 dBase IV (.dbf) 格式
原始 KB 编号: 891775
症状
创建包含长整数的 Microsoft Office Access 表,然后将该表导出为类型 dBase IV (.dbf) 时,数字将转换为双精度数据类型并显示小数位。
例如,可以导出下表:
单位
23411
111111111
1121212
然后,在 dBase IV 中导入并查看数据时,数据将如下所示:
单位
23411.00000
111111111.00000
1121212.00000
注意
在 Access 的表中创建数字字段时,可以使用 FieldSize 属性控制为特定字段分配的空间量。 对于数字字段,可以从列表中选择以下数值类型之一:
- 字节
- 整数
- 长整型
- 单精度
- 双精度
- ReplicationID
- 小数
默认情况下,数字字段的设置为长整型。 长整型值存储大约 -20 亿到 +20 亿的整数。 或者,可以选择 Double 值来存储带小数的数字。
原因
出现此问题的原因是 dBase 中没有 Integer 数据类型。 dBase 使用 Numeric 或 Float 数据类型。 Access 将长整型映射到 dBase 中的数值数据类型。
解决方法
若要解决此问题,请使用以下方法之一:
方法 1:修改 dBase 中的数据库文件
将数据库文件添加到 dBase 目录后,修改其设计。 例如,将“十二月”列设置为 0 (零) 。 有关在 dBase 中设计数据库文件的详细信息,请参阅 dBase 文档。
方法 2:使用 Microsoft Office Excel 设置数据格式
使用 Excel 设置导出的表中数据的格式。 为此,请按照下列步骤操作:
- 在 Excel 中,打开从 Access 导出为类型 dBase IV (*.dbf) 的表。
- 设置格式不正确单元格的格式。 为此,请选择单元格,然后单击“格式”菜单上的“单元格”。
- 设置单元格格式后,将电子表格导出为 dBase IV 文件。 为此,请按照下列步骤操作:
- 在“文件”菜单上单击“另存为”。
- 在 “保存类型 ”框中,单击“ DBF 4 (dbase IV) (*.dbf) ”,然后单击“ 保存”。
方法 3:使用示例代码设置数据的格式
Microsoft 提供的编程示例仅用于进行说明,而不提供明示或默示担保。 这包括但不限于适销性或对特定用途的适用性的默示担保。 本文假设你熟悉正在演示的编程语言和用于创建和调试过程的工具。 Microsoft 支持工程师可以帮助解释特定过程的功能。 但是他们不会修改这些示例以提供额外的功能,也不会构建过程以满足您的特定要求。
可以使用以下代码示例自动执行数据格式设置过程。 该示例将表另存为文本文件。 然后,它将自动执行 Excel 以打开文本文件,然后将其保存为 dBase IV 格式。
注意
必须更改此代码示例中的文件名以匹配文件名。
Sub exportFormat()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Const SAVETEXT = "C:\testValues.txt"
Const SAVEDBF = "C:\testDBF.dbf"
' Save the table as a text file.
DoCmd.TransferText acExportDelim, , "Table1", SAVETEXT, TRUE
' Set a reference to the Application object.
Set xlApp = ' Set a reference to the Workbook object.
Set xlBook = xlApp.Workbooks.Open(SAVETEXT, , , ' Save the file to dBase IV format.
xlBook.SaveAs Filename:=SAVEDBF, FileFormat:=xlDBF4
xlBook.Close savechanges:=False
xlApp.Quit
Set xlBook = Nothing
Set xlApp = Nothing
End Sub