|
|
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Я в процедуре VBA использую простую конструкцию: Dim qqq As Database Dim www As Recordset Dim slch As Variant Set qqq = CurrentDb Set www = qqq.OpenRecordset("SELECT*FROM Таблица1 WHERE [Таблица1]![prob]= " & slch & "") Переменная slch - всегда число. Если slch - целое число, то всё работает идеально, но если slch - дробное число, то возникает сообщение об ошибке. Что делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2017, 17:39:47 |
|
||
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
Tauri, замени запятую на точку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2017, 17:48:03 |
|
||
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
\\\\, я пробовал. не помогает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2017, 17:49:23 |
|
||
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
Tauri\\\\, я пробовал. не помогает.У всех помогает, а у тебя нет. Странно. И что же пишет когда поменяешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2017, 17:56:35 |
|
||
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
Tauri, так? Код: vbnet 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2017, 18:00:59 |
|
||
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
\\\\, Нет. Так не пробовал. Сейчас проверю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2017, 18:08:38 |
|
||
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
\\\\, Да, этот синтаксис помог. Спасибо большое. А почему тогда даже при принудительном присваивании slch = 0.301948 Set qqq = CurrentDb Set www = qqq.OpenRecordset("SELECT*FROM Таблица1 WHERE [Таблица1]![prob]= " & slch & "") не работало? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2017, 18:21:46 |
|
||
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
Tauri, так там запятая все равно. А вот если бы было так, то сработало бы slch = "0.301948" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2017, 19:21:41 |
|
||
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
Tauri, кстати, не плохо бы в тексте запроса ставить пробелы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2017, 19:23:25 |
|
||
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
\\\\, Да, slch ="0.301948" сработало. Спасибо. Впредь буду знать. А какой тип данных можно присваивать переменной, если она всегда дробное число от 0 до 1 ? Long можно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2017, 12:42:03 |
|
||
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
\\\\, Пробелы в тексте запроса необходимы для удобства или для корректного выполнения запроса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2017, 12:43:36 |
|
||
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
Tauri\\\\, Пробелы в тексте запроса необходимы для удобства или для корректного выполнения запроса?Для красоты, поговаривают :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2017, 13:07:18 |
|
||
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
Tauri\\\\, ...А какой тип данных можно присваивать переменной, если она всегда дробное число от 0 до 1 ? Long можно? LONG это длинное целое-ответьте себе можно ли его присваивать дробной переменной. (когда уже народ будет читать HELP...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2017, 14:44:50 |
|
||
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
TauriА какой тип данных можно присваивать переменной, если она всегда дробное число от 0 до 1 ? Long можно?Double ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2017, 15:03:24 |
|
||
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
Tauri\\\\, А почему тогда даже при принудительном присваивании slch = 0.301948 Set qqq = CurrentDb Set www = qqq.OpenRecordset("SELECT*FROM Таблица1 WHERE [Таблица1]![prob]= " & slch & "") не работало? Потому что нужно писать str(slch). Что происходит: ваше число из-за операции & со строкой превращается в строку, причем используется системный разделитель, т.е. запятая в вашем случае, то же происходит, если использовать CStr. Если использовать str(), то будет использоваться точка, которая и требуется в SQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2017, 07:11:43 |
|
||
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
MrShin Если использовать str(), то будет использоваться точка, которая и требуется в SQL Код: vbnet 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2017, 07:59:15 |
|
||
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
\\\\ Код: vbnet 1. 2. Для компилятора запросов вполне съедобная форма. Он правильно воспримет выражение Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2017, 09:02:08 |
|
||
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
mds_world, ну может и так. Стараюсь не приравнивать к Double, весьма неоднозначные результаты можно получить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2017, 09:26:14 |
|
||
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
\\\\, Снова здравствуйте. Теперь новая напасть: при выполнении Set www = qqq.OpenRecordset("SELECT*FROM szayavka WHERE [szayavka]![szayavka_id]= " & Replace(CStr(Nz(slch, 0)), ",", ".") & "") выскакивает сообщение об ошибке, хотя записи в таблице есть. Что делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2017, 17:00:38 |
|
||
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
szayavka_id это что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2017, 17:13:23 |
|
||
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
bubucha, это поле в таблице. числовое. не счётчик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2017, 22:09:54 |
|
||
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
Tauri, Код: vbnet 1. 2. почувствуйте разницу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2017, 00:43:00 |
|
||
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
sdkuпочувствуйте разницу Это нормально. Звездочка такой же разделитель как и пробел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2017, 01:10:21 |
|
||
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
Код: vbnet 1. Выделенное-это что? так все работает Код: vbnet 1. (наличие пробелов возле звездочки не обязательно-привычка,не знаю хорошая или плохая) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2017, 01:51:01 |
|
||
|
OpenRecordset и дробные числа
|
|||
|---|---|---|---|
|
#18+
Tauriвыскакивает сообщение об ошибке, хотя записи в таблице есть. Что делать? Нажимаем Debug, копируем все, что внутри скобок OpenRecordset, Открываем окно Immediate, там после знака вороса вставляем скопированное и после нажатия Enter вы увидите то SQL выражение, которое пытается выполнить акцесс. Копируем его и вставляем в конструктор запросов, который точно скажет, что в нем неправильно. Практически уверен, что ошиблись в написании szayavka_id. Ну в качестве совета: сначала сконструируйте нужный рабочий запрос в конструкторе, а потом копируйте его в код, заменяя константы переменными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2017, 06:59:36 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=39435486&tid=1612560]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
298ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 226ms |
| total: | 643ms |

| 0 / 0 |
