|
|
|
| Есть запрос на выборку по 10 таблицам, кои соединяются посредством INNER JOIN через main.id(просто счетчик) главной таблицы main(main - соединяет все 10 таблиц).
В запросе пишу примерно так:
"SELECT Pole1, ......., Pole100, main.id FROM main, Table1,......,Table10 INNER JOIN....... main.id = Table1.id......"
Т.к. я выбираю SELECT-ом и main.id, то оно и выводится в запросе(а без его выбора таблички не соединить). Но его видеть обычному User-у не имеет смысла. Как скрыть это поле? | |
|
| |
|
|
|
| не понял. Уберите id из списка выводимых полей...
SELECT main.поле1, main.поле2, Таблица2.поле1, Таблица2.поле2
FROM main INNER JOIN Таблица2 ON main.id = Таблица2.id | |
|
| |
|
|
|
| C ID работает б/проблем,а убирая его из списка выводимых полей, Access выдает ошибку 3141: "Ошибочное или пропущенное зарезервированное слово или аргумент в инструкции SELECT или неверная пунктуация"
Если есть минутка-другая взгляните на код: все или почти все лишнее убрал
'**********************************************************
' Событие - Щелчок по кнопке "Показать запрос"
Private Sub save_Click()
Dim zap As String
Dim MyBase As Database
Dim MyRec As Recordset
Set MyBase = CurrentDb()
ТУТ ДЛЯ НАГЛЯДНОСТИ многоточие:
zap = "SELECT street.street AS Улица, main.dom AS Дом, .................................div.name AS Район, "
' ВОТ В ЭТОЙ СТРОКЕ Я ПРИСОЕДИНЯЮ ID последним полем
zap = zap & " main.id AS ID "
' УБИРАЯ ЕЕ ACCESS НЕ ДОВОЛЕН
zap = zap & " FROM t_number, t_date, t_square, residence, lodger, balance, provision, cable, territory, personnel, equip, street INNER JOIN (grp INNER JOIN (div INNER JOIN main ON div.id=main.div_id) ON grp.id=main.grp_id) ON street.id=main.street_id WHERE main.id = t_number.id And main.id = t_date.id And main.id = t_square.id And main.id = residence.id And main.id = lodger.id And main.id = balance.id And main.id = provision.id And main.id = cable.id And main.id = territory.id And main.id = personnel.id And main.id = equip.id And street.id = main.street_id"
' Порядок сортировки - по возрастанию
zap = zap & " ORDER BY street.street, main.dom;"
' построение и выполнение запроса
Dim QueryBase As QueryDef, strSQLQuery As String
Set QueryBase = MyBase.CreateQueryDef("ПОИСК В БАЗЕ", zap)
DoCmd.OpenQuery QueryBase.Name
End Sub | |
|
| |
|
|
|
| а запятую после Район убираете?
попробуйте руские назвнаия полей взять в [] | |
|
| |
|
|
|
| Да, дело в запятой. Я ее раньше не замечал, потому что она "не явно видна", то есть ВЫБРАННЫЕ из списка ListPrint поля присоединяются посредством ф-ии link(это в приводимом выше коде за место этого дела я поставил многоточие):
Do While Not .ListPrint.Recordset.EOF
zap = zap + " " & link(.ListPrint.Recordset("name")) & " , "
.ListPrint.Recordset.MoveNext
Loop
В итоге в конце остается запятая.
Спасибо!
P.S. Глаз-алмаз | |
|
| |