|
|
|
| Чтобы не плодить множество однотипных запросов, решил сделать форму с чекбоксами, в зависимости от выбранного бокса, в запрос передается определенный параметр. Но совсем запутался в коде, киньте пожалуйста пример. Хотя бы направление, куда копать.
Спасибо | |
|
| |
|
|
|
| Смотрите вопрос cheperа "Помогите пожалуйста дилетанту" | |
|
| |
|
|
|
| Спасибо, более менее разобрался. Сейчас следующий вопрос. Определил в общем модуле глобальную переменную, присваиваю ей числовое значение в соответствии с выбранным чекбоксом на форме, но когда хочу передать ее как параметр в запрос, выдает ошибку, что слишком сложное вычисляемое значение. Как побороть? | |
|
| |
|
|
|
|
| Разобрался наполовину ))) В общем модуле прописал функцию
Function RepPar1() As Integer
RepPar1 = Forms![frmCalc].gr0
End Function
|
и в параметр запроса вставил =RepPar1()
Теперь не могу понять как можно вставить параметр вида In(1;2;3) ?
Помогите пожалуйста. | |
|
| |
|
|
|
| Function RepPar1() As Integer
RepPar1 = Forms![frmCalc].gr0
End Function
Для вставки параметров функция должна быть с входящими параметрами
Function RepPar1( par1,par2,par3)
реализация логики самой функции
End Function
В модуле формы идет вызов этой функции
Call RepPar1( параметр1,параметр2,параметр3)
В качестве параметр1 параметр2 параметр3
могут выступать me.Поле1, например, или переменные, содержащие необходимые параметры
Ваша же функция без входных параметров, поэтому передать ей параметры невозможно. | |
|
| |
|
|
|
| Переделать функцию для получения параметров и формирования возвращаемого значения в виде строки "In(1;2;3;4) - не проблема. Только не понятно, как использовать это значение как параметр запроса? К тому же, как я понимаю, функция должна возвращать строку? | |
|
| |
|
|
|
| Хорошо, попробуем по другому. Функция не нужна
Допустим у вас есть запрос вида
Select Number,Name,Tel From Table1 Where Number = Ваш параметр ( числовое значение, определенное в переменной )
Передать его в запрос можно так
CurrentDb.Execute"Select Number,Name,Tel From Table1 Where Number = " & имя_переменной & ";" | |
|
| |
|
|
|
| FORMAT, простите за тупость, но что-то совсем не догоняю (((
Если использовать ваш пример, то в моем случае поле Number имеет тип длинное целое. Когда в условие отбора передаются числовые значения, то соответственно, никаких проблем нет. Но если нужно передать строку типа In(1;2) то получаю несовпадение типов. Пока меняю каждый раз условие отбора в конструкторе запросов, но это не выход... | |
|
| |
|
|
|
| Пример используемой формулы
Function RepPar2() As Integer
Select Case Forms![frmCalc].gr1
Case 1
RepPar2 = "In(1;2;3)"
Case 2
RepPar2 = 4
Case 3
RepPar2 = 5
Case 4
RepPar2 = 6
End Select
End Function
|
| |
|
| |
|
|
|
| Тогда делайте все значения стринговыми
Function RepPar2() As Integer
Select Case Forms![frmCalc].gr1
Case 1
RepPar2 = "In(1;2;3)"
Case 2
RepPar2 = "4"
Case 3
RepPar2 = "5"
Case 4
RepPar2 = "6"
End Select
End Function
А запрос в таком виде
CurrentDb.Execute"Select Number,Name,Tel From Table1 Where Number like '" & RepPar2 & "';"
( т.е. еще добавьте апострофы) | |
|
| |