|
|
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
И почему "не получиться вставить стринг в числовое поле"? Потому что при выполнении запроса возникает ошибка 'несоответствие типов данных' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 13:31 |
|
||
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
епрст а теперь по-русски, пожалуйста :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 13:32 |
|
||
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
Топик длинный вышел, так что повторю вопрос: В запросе на вставку есть строка Код: plaintext При выполнении запроса возникает ошибка: Неверное число аргументов функции в выражении запроса CDbl(905,345). Что мне с этим делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 13:42 |
|
||
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
Если так часто делаешь динамические запросы. Напиши один раз свою функцию преобразования числа в строку и используй ее вместо всяких Format, CDBL, STR ... Например так Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 13:47 |
|
||
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
Да пытался я уже это делать. Все подобные функции возвращают нечисловое значение. И при выполнении запроса возникает ошибка: "...не добавлены записи...ошибка преобразования типа" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 13:52 |
|
||
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
Serge Gavrilov Все таки ты оказался прав! Видать я что-то не так делал с этой Str. Вот так работает: Код: plaintext Всем спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 13:56 |
|
||
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
У всех работает у тебя нет - странно. Не получается так сделай через рекордсет. rst.AddNew rst!f1=forms!f1!f1 ... rst.update И все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 13:56 |
|
||
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
incoldНапиши один раз свою функцию преобразования числа в строку и используй ее вместо всяких Format, CDBL, STR ... Мне кажется функция с использованием Replace будет работать медленнее, чем Str (не сравнивал) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 14:27 |
|
||
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
Всеволод, а зачем Str(Format? Format и так возвращает стринг. Так что уж или Format, или Str. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 14:29 |
|
||
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
авторМне кажется функция с использованием Replace будет работать медленнее, чем Str (не сравнивал) Точно будет, можно и не сравнивать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 14:30 |
|
||
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
Владимир СанычВсеволод, а зачем Str(Format? Format и так возвращает стринг. Так что уж или Format, или Str. Нет, ему нужен как раз и Format и Str. Почему? Format нужен для того, чтобы было 2 знака после запятой, но он вернет запятую, если в системе разделитель запятая: ?format(5/3,"#.##") 1,67 Str нужен для того, чтобы разделителем была точка независимо от установок системы, но Str не дает определить число знаков ?str(5/3) 1.66666666666667 А совместное применение дает нужный результат ?str(format(5/3,"#.##")) 1.67 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 15:44 |
|
||
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
Что-то тут не так. Мне не нравится, когда в функцию подставляют параметры не того типа. Str не рассчитан на строковой параметр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 15:48 |
|
||
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
авторЧто-то тут не так. Мне не нравится, когда в функцию подставляют параметры не того типа. Str не рассчитан на строковой параметр. ?isnumeric(format(5/3,"#.##")) True ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 15:54 |
|
||
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
При чем тут IsNumeric? IsNumeric берет строковое значение и проверяет, может ли оно трактоваться как запись числа . А я говорю про числовое значение . "1" - это строковое значение 1 - это числовое значение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 15:59 |
|
||
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
Еще добавлю, в Help сказано, что аргумент может задаваться любым допустимым числовым выражением. Что такое числовое выражение? Любое выражение, значением которого является число. Числовое выражение может быть образовано из любой комбинации ключевых слов, переменных, констант и операторов, которая в итоге возвращает числовое значение. Для проверки числового значения существкет IsNumeric: Возвращает значение типа Boolean, показывающее, имеет ли выражение числовое значение. IsNumeric возвращает True, значит все в порядке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 16:01 |
|
||
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
Копирую свою предыдущую реплику. :^) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 16:03 |
|
||
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
Формально Саныч прав, имхо лучше Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 16:03 |
|
||
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
авторКопирую свою предыдущую реплику. :^) авторПри чем тут IsNumeric? IsNumeric берет строковое значение и проверяет, может ли оно трактоваться как запись числа. А я говорю про числовое значение. Достаточно вольное трактование IsNumeric, откроем еще раз Help Функция IsNumeric Возвращает значение типа Boolean, показывающее, имеет ли выражение числовое значение. Что и требовалось доказать. Хотя если религия запрещает, то можно и не использовать :) Так устроит?: ?str(cdbl(format(5/3,"#.##"))) 1.67 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 16:08 |
|
||
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
(c)VIGФормально Саныч прав, имхо лучше str(round(5/3,2)) А, например, в A97 нет Round ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 16:12 |
|
||
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
авторФункция IsNumeric Возвращает значение типа Boolean, показывающее, имеет ли выражение числовое значение. Здесь одна вещь недоговорена. IsNumeric снимает с выражения кавычки (как Eval) и смотрит, что было бы, если бы это выражение без кавычек оказалось прямо в программе. Смешивать строковые значения с числовыми нельзя. Они ведут себя по-разному. Иногда Аксесс умеет преобразовать их к тому, чего интуитивно хочется, а иногда нет. ?"1"+1 2 ?"1"+"1" 11 авторХотя если религия запрещает, то можно и не использовать :) Так устроит?: ?str(cdbl(format(5/3,"#.##"))) 1.67 Да, я к этому и клоню. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 16:13 |
|
||
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
авторЗдесь одна вещь недоговорена. IsNumeric снимает с выражения кавычки (как Eval) и смотрит, что было бы, если бы это выражение без кавычек оказалось прямо в программе. Не совсем так ?eval("5/3") 1,66666666666667 ?IsNumeric("5/3") False ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 16:19 |
|
||
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
Ну в самом деле! Я ведь не говорил, что IsNumeric и Eval возвращают одинаковые значения! Я только сказал, что они обе снимают с выражения кавычки. И именно этот акт снятия кавычек нельзя игнорировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 16:21 |
|
||
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
В общем то , это спор ни о чем. Format возвращает variant , который в разных функциях может трактоваться по разному. В частности isnumeric(format(5/3,"#.##")) понимает его как число. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 16:27 |
|
||
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
авторНу в самом деле! Я ведь не говорил, что IsNumeric и Eval возвращают одинаковые значения! Я только сказал, что они обе снимают с выражения кавычки. И именно этот акт снятия кавычек нельзя игнорировать. Еще раз ?IsNumeric(5/3) True ?IsNumeric("5/3") False Дык, не сняло же кавычек! Так, я тоже могу сказать, что в Help по Str "одна вещь недоговорена: Str снимает с выражения кавычки (как Eval)": ?Str("2") 2 Интересно поговорили, увы, меня больше нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 16:28 |
|
||
|
VBA->SQL запрос -> Как запятую точкой заменить???
|
|||
|---|---|---|---|
|
#18+
2 VIG: Как раз IsNumeric понимает его как стринг. 2 Serge Gavrilov: Разница между IsNumeric и Eval в том, что IsNumeric понимает только числовые константы, найденные между кавычками, а Eval - также и выражения. Но они обе анализируют внутреннее наполнение стринга . Что касается примера с Str, то там кавычки снял дебаггер - он всегда выдает строковые значения без кавычек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2004, 16:41 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32470861&tid=1675529]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
190ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
86ms |
get tp. blocked users: |
2ms |
| others: | 231ms |
| total: | 562ms |

| 0 / 0 |
