0

我有一个 MS Access 2007 数据库。我在哥伦比亚和厄瓜多尔的一些客户遇到了一个问题(我相信还会出现更多问题),他们的编号格式与美国不同,他们使用“。” 小数点(或句点)字符作为百万和千位分隔符,并使用“,”逗号字符作为小数位。这要么导致类型不匹配错误,要么我自己的验证将其作为错误捕获,尽管我只使用 IsNumeric() 函数来检查字段内容。

我假设 MS Access 可以识别用户 Windows 设置中设置的任何区域键盘格式。

任何人都可以为我阐明这一点吗?截至目前,唯一的解决方法是将用户键盘设置更改为使用“,”作为百万和千位分隔符和“。” 为小数。

任何帮助将不胜感激!:-)

4

4 回答 4

1

这应该由本地 PC 上的区域设置控制。您可以设置小数分隔符和数字分组分隔符,然后 Access 与 1.000,21 交互的方式与其他语言环境中的 1,000.21 相同。

?Format(1000,"currency")
€1.000,00
于 2012-07-19T16:41:50.987 回答
1

一种解决方案可能是在所有相关字段上运行 replace(),将逗号转换为句点(如果存在)。

于 2012-07-19T16:37:57.087 回答
0

好的,这是我发现的:

首先,我很抱歉说这是“类型不匹配”。不是。这是一个错误 #2432:“您输入的表达式包含无效的语法,或者您需要将文本数据括在引号中”。我意识到错误发生在 EVAL() 函数上,必须在字符串上完成。我首先将数字转换为字符串,对于具有不同区域设置的小数和组分隔符,将“,”视为逗号而不是小数。就我而言,代码是:

If Eval(CStr(cCtl.Value) & ">+" & strMinVal = True Then

所以我使用了 IAmBatman的建议并在现场做了一个 REPLACE() 。由于这只是在字段验证过程中,它不会更改实际数据,如下所示:

If Eval(CStr(Replace(cCtl.Value),",",".")) & ">+" & strMinVal = True Then

Remou,你一直都是对的。我谦虚的道歉。:-)

于 2012-07-19T22:45:25.237 回答
-2

这是一个老问题,只要求 ms-access 但也许你可能会遇到类似于我的问题。那么您也可以考虑以下选项:

  1. 如果您将 Access 数据库用于您的网页,则此问题可能与 IIS 有关。感谢 Dmitriy Pavlov 的简短回答:

    • 打开 IIS 7
    • 选择您的网站
    • 打开 .NET 全球化
    • 从文化选项卡中,选择所需的文化和 UI 文化。
    • 做 iisreset
  2. 此问题可能与 Visual Studio 设置有关。感谢 Jim Mischel 的 简短回答:

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US", false);

于 2018-12-15T22:37:58.703 回答