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 の型宣言文字はアットマーク (@) です。

通貨データ型は、お金に関する計算や、精度が特に重要な固定小数点計算に役立ちます。

したがって、データ型と呼ばれ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 に答える