4

Access 使用货币类型的区域/国家/地区设置。

如何更改货币类型中的符号?

Dim DBTable as ADOX.Table
Dim DBCatalog as ADOX.Catalog
Dim DBConnection as ADODB.Connection


DBTable.Name = "TableName"
DBTable.Columns.Append "Currency", adCurrency
DBCatalog.Tables.Append DBTable

Dim C as Double
C = 30.42
DBConnection.Execute "INSERT INTO TableName VALUES (" + "'" + Str(C) + "'" + " ) "
4

2 回答 2

4

Currency数据类型不存储任何货币符号信息。它只是一种特殊的数字类型,最适合用于准确的货币相关存储。

Access 文档将货币数据类型定义为:

货币变量以整数格式存储为 64 位(8 字节)数字,按 10,000 缩放以给出小数点左侧 15 位和右侧 4 位的定点数。此表示提供 -922,337,203,685,477.5808 到 922,337,203,685,477.5807 的范围。Currency 的类型声明字符是 at 符号 (@)。

Currency 数据类型对于涉及货币的计算和对准确性特别重要的定点计算很有用。

所以并不是因为它被称为Currency数据类型,它实际上与任何特定的世界货币有任何关系。
您存储在货币字段中的值是什么意思,取决于您。

格式化

显示Currency数据类型时,Access 将默认显示您当前区域设置的货币符号。当然,只有当您在该字段中存储的是来自您自己国家的钱时,这才有意义。

最好在设计表格时覆盖此行为,以便格式将在您使用该字段的任何地方传播。
例如,突出显示的CurrencyRate字段设置为使用货币格式,因此它将使用$,因为这是我的语言环境的货币符号:

编辑货币字段格式

只需覆盖该格式即可将该字段格式化为其他内容。
例如,作为具有 3 位小数的标准数字或欧元:

带 3 位小数的标准格式 在此处输入图像描述

在表单或数据表中显示数据时,您还可以覆盖控件的Format属性:

更改控件的格式属性

综上所述

因此,货币符号不是数据库中存储什么值的问题,而是该值对您的应用程序意味着什么以及如何向用户显示它的问题。

于 2012-05-07T03:15:58.717 回答
0

您可以使用 api 设置本地计算机设置。

Private Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Boolean
Private Declare Function GetUserDefaultLCID Lib "kernel32" () As Long 

Public Sub SetCurrencyFormat(format As String)
    Dim lngIdentifier As Long
    lngIdentifier = GetUserDefaultLCID()
    If SetLocaleInfo(lngIdentifier, LOCALE_SCURRENCY, format) = False Then
        MsgBox "Error occured while trying to change the setting."
    End If
End Sub

Call SetCurrencyFormat("$")
于 2012-05-07T02:35:11.123 回答