Ham*_*ice 10 ms-access access-vba ms-access-2010
我搜索了几个小时来将小数位数更改为8,而不是使用VBA Access将小数位数更改为2.我找到了一些使用此标记来更改系统属性的解决方案:
公共Const 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
Run Code Online (Sandbox Code Playgroud)
上面的代码不会强制小数位数为8(或任何其他数字),它只输出尽可能多的数字.
据我所知,从Access本身更改CSV导出的舍入/截断行为的唯一方法是在Windows控制面板中打开"区域和语言选项",单击"自定义此格式..."按钮"格式"选项卡,然后更改"数字"选项卡上的"十进制后的位数"值:

(2是一个非常常见的默认值.在上面的对话框中我将其更改为5.)
我不知道有什么方法可以从VBA改变这个值,我怀疑这样做会改变当前正在运行的Access实例的行为.
| 归档时间: |
|
| 查看次数: |
6195 次 |
| 最近记录: |