Как заставить Ms Access 2002, установленный на французском языке Windows, использовать «.» как десятичный разделитель вместо ","? - PullRequest
0 голосов
/ 17 марта 2020

Я установил windows 10 64 бит с французской локализацией и установил Microsoft Office, включая MS Access.

У меня есть эта проблема при вставке значений в таблицу Ms Access 2002 в поле Валюта в качестве значения я пытаюсь вставить десятичное значение, представленное через строку, с "." оператор как десятичный разделитель, так как я получаю сообщение об ошибке «несоответствие типа данных в выражении критерия».

Есть ли способ сообщить Ms Access использовать «.» в качестве десятичного разделителя вместо «,» и «,» в качестве разделителя групп тысяч вместо «», в качестве замены десятичного строкового значения «.» вхождение символов в символы «,» не вариант, так как у меня есть тысячи строк, которые соответственно должны будут вызвать функцию замены,

Что пыталось до сих пор и не принесло никаких результатов, это: 1. Измените десятичный символ с панели управления, региональных и языковых настроек с "," на ".". 2. Переключение с OleDB на ODB C и указание значения «Locale Identifier» на 2057 с указанием en-GB в строке подключения.

Пожалуйста, сообщите,

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 17 марта 2020

Используйте Str , оно никогда не завершится с ошибкой:

Str(AnyDecimalValue)

Для общего решения c используйте мою функцию CSql.

Редактировать :

Другой способ - преобразовать текстовое выражение в десятичное - используйте Val :

Val(TextNumberWithDecimalDot)
0 голосов
/ 18 марта 2020

Вы упомянули, что значения, которые вы передаете для доступа, являются строками. Почему вы не можете format эти строки таким образом, каким вы их sh представляете, и передавать данные в MS-доступ?

Вы не упомянули ничего конкретного c, поэтому я предполагаю, что вы работа в notepad.exe. В приведенной выше программе отформатируйте строки sh в соответствии с нужными значениями, заменив соответствующие символы локали на те, которые вам нужны. После этого передайте строки некоторым способом, чтобы «лучше узнать, как» получить доступ к MS.

Если у вас есть миллионы или миллиарды строк (столбцов ?!) в ваших данных, вы можете выполнить массовую замену в программа по вашему выбору (notepad.exe). Это так просто.

0 голосов
/ 17 марта 2020
  1. Сначала измените запятую на символ, отличный от точки ("@")
  2. Затем измените все оставшиеся точки на запятую.
  3. Наконец измените "@" на период.
dblValue = Replace(Replace(Replace(OriginalValue, ",", "@"), ".", ","), "@", ".")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...