Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Скрытие ID из выб.запроса по 10 таблицам
 
 автор: stix   (04.10.2006 в 10:03)   личное сообщение
 
 

Есть запрос на выборку по 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-у не имеет смысла. Как скрыть это поле?

  Ответить  
 
 автор: osmor   (04.10.2006 в 10:12)   личное сообщение
 
 

не понял. Уберите id из списка выводимых полей...

SELECT main.поле1, main.поле2, Таблица2.поле1, Таблица2.поле2
FROM main INNER JOIN Таблица2 ON main.id = Таблица2.id

  Ответить  
 
 автор: stix   (04.10.2006 в 12:52)   личное сообщение
 
 

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

  Ответить  
 
 автор: osmor   (04.10.2006 в 13:04)   личное сообщение
 
 

а запятую после Район убираете?
попробуйте руские назвнаия полей взять в []

  Ответить  
 
 автор: stix   (04.10.2006 в 14:11)   личное сообщение
 
 

Да, дело в запятой. Я ее раньше не замечал, потому что она "не явно видна", то есть ВЫБРАННЫЕ из списка ListPrint поля присоединяются посредством ф-ии link(это в приводимом выше коде за место этого дела я поставил многоточие):
Do While Not .ListPrint.Recordset.EOF
zap = zap + " " & link(.ListPrint.Recordset("name")) & " , "
.ListPrint.Recordset.MoveNext
Loop
В итоге в конце остается запятая.
Спасибо!

P.S. Глаз-алмаз

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList