gpt4 book ai didi

ms-access - Access 查询的 CSV 导出将浮点(单精度/ double )值限制为小数点后 2 位

转载 作者:行者123 更新时间:2023-12-02 21:39:18 26 4
gpt4 key购买 nike

我花了几个小时将小数位数更改为 8,而不是使用 VBA Access 的 2。我找到了一些使用此标签来更改系统属性的解决方案:

公共(public)常量 LOCALE_ILZERO = &H12

但它不起作用,我不知道如何为我的程序更改它,独立于使用该程序的计算机。

有人可以帮助我吗?

最佳答案

在我自己解决这个问题并发现我可以将 Access 表/查询导出到 Excel,然后从那里将其另存为 CSV 后,我自动化了该过程,如下所示:

Public Sub ExportToCsvViaExcel(ItemToExport As String, _
DestinationFileSpec As String, _
Optional IncludeFieldNames As Boolean = True)
Const TemporaryFolder = 2
Const xlUp = -4162
Const xlCSVWindows = 23
Dim xlApp As Object ' Excel.Application
Dim xlWorkbook As Object ' Excel.Workbook
Dim fso As Object ' FileSystemObject
Dim TempFileSpec As String

Set fso = CreateObject("Scripting.FileSystemObject")
TempFileSpec = fso.GetSpecialFolder(TemporaryFolder) & "\" & fso.GetTempName & ".xls"
Set fso = Nothing
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, ItemToExport, TempFileSpec, False
Set xlApp = CreateObject("Excel.Application")
Set xlWorkbook = xlApp.Workbooks.Open(TempFileSpec)
If Not IncludeFieldNames Then
xlApp.Rows("1:1").Select
xlApp.Selection.Delete Shift:=xlUp
End If
xlWorkbook.SaveAs DestinationFileSpec, xlCSVWindows
xlWorkbook.Close False
Set xlWorkbook = Nothing
xlApp.Quit
Set xlApp = Nothing
Kill TempFileSpec
End Sub

上面的代码不会强制小数位数为 8(或任何其他数字),它只是输出尽可能多的小数位数。

据我所知,从 Access 本身更改 CSV 导出的舍入/截断行为的唯一方法是打开 Windows 控制面板中的“区域和语言选项”,单击“自定义此格式...” “格式”选项卡上的按钮,然后更改“数字”选项卡上的“小数点后位数”值:

NumbersTab.png

(2是一个非常常见的默认值。在上面的对话框中我已将其更改为5。)

我不知道有什么方法可以从 VBA 更改该值,并且我怀疑这样做是否会改变当前运行的 Access 实例的行为。

关于ms-access - Access 查询的 CSV 导出将浮点(单精度/ double )值限制为小数点后 2 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21938911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com