SELECT синтаксиса(пропущен оператор)
smi
Дата: 06.09.2005 00:09:35
Добрый вечер.
Помогите пожалуйста найти ошибку в запросе.
Пишет что мол ошибка синтаксиса(пропущен оператор) в выражение : «(((Таблица." & переменная1 & ")= Like '*" & переменная2 & "*') AND ((Таблица.Поле1)= " & перПоле1 & ") AND ((Таблица.Поле2)= '" & переменная3 & "'))»
Сто раз проверил – вроде все правильно. А запрос не идет.
Код такой
Private Sub Поиск_Change()
Dim перТоЧоВвели As String
Dim перАктивноеПоле As String
Dim переменная2 As String
Dim переменная1 As Boolean
переменная2 = Me!Поле2
перАктивноеПоле = глПерАктивПоле.Name
If …………………. Then
переменная1 = 0
else
переменная1 = -1
end if
Me!Поиск.RowSource = "SELECT Таблица." & перАктивноеПоле & ", Таблица.Поле2, Таблица.Поле1 FROM Таблица GROUP BY Таблица." & перАктивноеПоле & ", Таблица.Поле2, Таблица.Поле1 HAVING (((Таблица.Поле2)='" & переменная2 & "') AND ((Таблица.Поле1)=" & переменная1 & ")) ORDER BY Таблица." & перАктивноеПоле & ";"
End Sub
|
Спасибо
smi
Дата: 06.09.2005 00:19:42
Извеняюсь за неточность
Пишет что мол ошибка синтаксиса(пропущен оператор) в выражение (((Таблица.Поле2)='" & переменная2 & "') AND ((Таблица.Поле1)=" & переменная1 & "))
smi
Дата: 06.09.2005 00:34:24
Все запутался
Окончательный вариант
Ошибка синтаксиса(пропущен оператор) в выражение : (((Таблица." & перАктивноеПоле & ")= Like '*" & перТоЧоВвели & "*') AND ((Таблица.Поле2)= " & переменная2 & ") AND ((Таблица.Поле1)= '" & переменная1 & "'))
Код такой
Private Sub Поиск_Change()
Dim перТоЧоВвели As String
Dim перАктивноеПоле As String
Dim переменная1 As String
Dim переменная2 As Boolean
переменная1 = Me!Поле1
перАктивноеПоле = глПерАктивПоле.Name
If ………….. Then
переменная2 = 0
else
переменная2 = -1
end if
Me!Поиск.RowSource = "SELECT Таблица." & перАктивноеПоле & ", Таблица.Поле2, Таблица.Поле1 FROM Таблица GROUP BY Таблица." & перАктивноеПоле & ", Таблица.Поле2, Таблица.Поле1 HAVING (((Таблица." & перАктивноеПоле & ")= Like '*" & перТоЧоВвели & "*') AND ((Таблица.Поле2)= " & переменная2 & ") AND ((Таблица.Поле1)= '" & переменная1 & "')) ORDER BY Таблица." & перАктивноеПоле & ";"
End sub
|
igor603
Дата: 06.09.2005 01:00:04
Попробуй " & перАктивноеПоле & " заключить в одинарные кавычки типа
Таблица.'" & перАктивноеПоле & "',
smi
Дата: 06.09.2005 01:06:12
igor603 |
Попробуй " & перАктивноеПоле & " заключить в одинарные кавычки типа
Таблица.'" & перАктивноеПоле & "', |
перАктивноеПоле - это же поле в таблице. Зачем его в кавычки?
igor603
Дата: 06.09.2005 01:32:03
Ну вроде у тебя
Dim перАктивноеПоле As String
Я в таких случаях (когда надо SQL разобрать) делаю на строке точку останова и в отладчике печатаю выражение, в твоем случае
"SELECT Таблица." & перАктивноеПоле & ", Таблица.Поле2, Таблица.Поле1 FROM Таблица GROUP BY Таблица." & перАктивноеПоле & ", Таблица.Поле2, Таблица.Поле1 HAVING (((Таблица." & перАктивноеПоле & ")= Like '*" & перТоЧоВвели & "*') AND ((Таблица.Поле2)= " & переменная2 & ") AND ((Таблица.Поле1)= '" & переменная1 & "')) ORDER BY Таблица." & перАктивноеПоле & ";"
smi
Дата: 06.09.2005 01:41:07
Засада где-то в куске кода:
((Таблица." & перАктивноеПоле & ")= Like '*" & перТоЧоВвели & "*')
Ибо без этого выражения все таботает как надо. А что в нем не так - ?????
Переменная "перТоЧоВвели" определена........ :-(
mds_world
Дата: 06.09.2005 02:23:23
Название поля из "перАктивноеПоле" сответствует правилам именования полей - может быть надо заключить его в квадратные скобки, т.е. так:
((Таблица.[" & перАктивноеПоле & "])= Like '*" & перТоЧоВвели & "*')
smi
Дата: 06.09.2005 10:10:55
Спасибо Всем. Разобрался. Был какой то неведомый науке глюк. Перезагрузил компьютер и все пошло.