powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / OpenRecordset и дробные числа
25 сообщений из 38, страница 1 из 2
OpenRecordset и дробные числа
    #39435475
Tauri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Я в процедуре 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 - дробное число, то возникает сообщение об ошибке.

Что делать?
...
Рейтинг: 0 / 0
OpenRecordset и дробные числа
    #39435480
\\\\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tauri, замени запятую на точку
...
Рейтинг: 0 / 0
OpenRecordset и дробные числа
    #39435481
Tauri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
\\\\,
я пробовал. не помогает.
...
Рейтинг: 0 / 0
OpenRecordset и дробные числа
    #39435485
\\\\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tauri\\\\,
я пробовал. не помогает.У всех помогает, а у тебя нет. Странно.
И что же пишет когда поменяешь?
...
Рейтинг: 0 / 0
OpenRecordset и дробные числа
    #39435486
\\\\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tauri, так?
Код: vbnet
1.
"SELECT * FROM Таблица1 WHERE [prob]= " & Replace(Cstr(Nz(slch,0)), ",",".") 
...
Рейтинг: 0 / 0
OpenRecordset и дробные числа
    #39435488
Tauri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
\\\\,

Нет. Так не пробовал. Сейчас проверю.
...
Рейтинг: 0 / 0
OpenRecordset и дробные числа
    #39435491
Tauri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
\\\\,

Да, этот синтаксис помог. Спасибо большое.

А почему тогда даже при принудительном присваивании

slch = 0.301948

Set qqq = CurrentDb
Set www = qqq.OpenRecordset("SELECT*FROM Таблица1 WHERE [Таблица1]![prob]= " & slch & "")

не работало?
...
Рейтинг: 0 / 0
OpenRecordset и дробные числа
    #39435510
\\\\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tauri, так там запятая все равно.

А вот если бы было так, то сработало бы slch = "0.301948"
...
Рейтинг: 0 / 0
OpenRecordset и дробные числа
    #39435513
\\\\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tauri, кстати, не плохо бы в тексте запроса ставить пробелы
...
Рейтинг: 0 / 0
OpenRecordset и дробные числа
    #39435763
Tauri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
\\\\,

Да, slch ="0.301948" сработало. Спасибо. Впредь буду знать.

А какой тип данных можно присваивать переменной, если она всегда дробное число от 0 до 1 ? Long можно?
...
Рейтинг: 0 / 0
OpenRecordset и дробные числа
    #39435764
Tauri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
\\\\,

Пробелы в тексте запроса необходимы для удобства или для корректного выполнения запроса?
...
Рейтинг: 0 / 0
OpenRecordset и дробные числа
    #39435776
Прогер_самоучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tauri\\\\,

Пробелы в тексте запроса необходимы для удобства или для корректного выполнения запроса?Для красоты, поговаривают :)
...
Рейтинг: 0 / 0
OpenRecordset и дробные числа
    #39435871
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tauri\\\\,
...А какой тип данных можно присваивать переменной, если она всегда дробное число от 0 до 1 ? Long можно?
LONG это длинное целое-ответьте себе можно ли его присваивать дробной переменной. (когда уже народ будет читать HELP...)
...
Рейтинг: 0 / 0
OpenRecordset и дробные числа
    #39435893
\\\\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TauriА какой тип данных можно присваивать переменной, если она всегда дробное число от 0 до 1 ? Long можно?Double
...
Рейтинг: 0 / 0
OpenRecordset и дробные числа
    #39436243
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tauri\\\\,
А почему тогда даже при принудительном присваивании

slch = 0.301948

Set qqq = CurrentDb
Set www = qqq.OpenRecordset("SELECT*FROM Таблица1 WHERE [Таблица1]![prob]= " & slch & "")

не работало?

Потому что нужно писать str(slch). Что происходит: ваше число из-за операции & со строкой превращается в строку, причем используется системный разделитель, т.е. запятая в вашем случае, то же происходит, если использовать CStr. Если использовать str(), то будет использоваться точка, которая и требуется в SQL
...
Рейтинг: 0 / 0
OpenRecordset и дробные числа
    #39436254
\\\\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MrShin Если использовать str(), то будет использоваться точка, которая и требуется в SQL
Код: vbnet
1.
2.
?str(0.33)
 .33
...
Рейтинг: 0 / 0
OpenRecordset и дробные числа
    #39436282
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
\\\\
Код: vbnet
1.
2.
?str(0.33)
 .33


Для компилятора запросов вполне съедобная форма. Он правильно воспримет выражение
Код: sql
1.
where fld=.33
...
Рейтинг: 0 / 0
OpenRecordset и дробные числа
    #39436300
\\\\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mds_world, ну может и так. Стараюсь не приравнивать к Double, весьма неоднозначные результаты можно получить.
...
Рейтинг: 0 / 0
OpenRecordset и дробные числа
    #39436660
Tauri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
\\\\,

Снова здравствуйте.
Теперь новая напасть: при выполнении

Set www = qqq.OpenRecordset("SELECT*FROM szayavka WHERE [szayavka]![szayavka_id]= " & Replace(CStr(Nz(slch, 0)), ",", ".") & "")

выскакивает сообщение об ошибке, хотя записи в таблице есть. Что делать?
...
Рейтинг: 0 / 0
OpenRecordset и дробные числа
    #39436669
bubucha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
szayavka_id это что?
...
Рейтинг: 0 / 0
OpenRecordset и дробные числа
    #39436855
Tauri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bubucha,

это поле в таблице. числовое. не счётчик.
...
Рейтинг: 0 / 0
OpenRecordset и дробные числа
    #39436909
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tauri,
Код: vbnet
1.
2.
SELECT*FROM
SELECT * FROM

почувствуйте разницу
...
Рейтинг: 0 / 0
OpenRecordset и дробные числа
    #39436914
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuпочувствуйте разницу
Это нормально. Звездочка такой же разделитель как и пробел
...
Рейтинг: 0 / 0
OpenRecordset и дробные числа
    #39436927
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
Set www = qqq.OpenRecordset("SELECT*FROM szayavka WHERE [szayavka]![szayavka_id]= " & Replace(CStr(Nz(slch, 0)), ",", ".") & "")

Выделенное-это что?
так все работает
Код: vbnet
1.
Set rs = CurrentDb.OpenRecordset("select * from таблица1 where ctl=" & Replace(slch, ",", "."))

(наличие пробелов возле звездочки не обязательно-привычка,не знаю хорошая или плохая)
...
Рейтинг: 0 / 0
OpenRecordset и дробные числа
    #39436947
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tauriвыскакивает сообщение об ошибке, хотя записи в таблице есть. Что делать?
Нажимаем Debug, копируем все, что внутри скобок OpenRecordset, Открываем окно Immediate, там после знака вороса вставляем скопированное и после нажатия Enter вы увидите то SQL выражение, которое пытается выполнить акцесс. Копируем его и вставляем в конструктор запросов, который точно скажет, что в нем неправильно. Практически уверен, что ошиблись в написании szayavka_id. Ну в качестве совета: сначала сконструируйте нужный рабочий запрос в конструкторе, а потом копируйте его в код, заменяя константы переменными.
...
Рейтинг: 0 / 0
25 сообщений из 38, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / OpenRecordset и дробные числа
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]