Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Список названий столбцов.... / 12 сообщений из 12, страница 1 из 1
02.04.2004, 18:09
    #32467625
Benzin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список названий столбцов....
Есть некая таблица1 с уникальными именами полей.
Пример: [дед],[бабка],[внучка],[Жучка]...
Есть другая таблица2, где эти имена представляют собой собственно данные.
Пример: Поле [бригада_по_Репке], его записи - дед,бабка,внучка,Жучка...
Если можно. то как в запросе к таблице2 вывести только те записи, которые не упомянуты в качестве имен полей таблицы1?
...
Рейтинг: 0 / 0
02.04.2004, 18:19
    #32467642
PokeMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список названий столбцов....
В Access-е есть такая таблица системная в ней и смотри.
Как я помню в разных версиях Access-а разная структура системных таблиц.
Вообсчем открывай меню Сервис -> Параметры -> Вкладка(Вид) ->Скрытые объекты+системные объекты. Поройся там. Там все понятно.
...
ЗЫ: Пользуйся поиском, че лишние ветки плодить.
...
Рейтинг: 0 / 0
02.04.2004, 18:25
    #32467651
PokeMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список названий столбцов....
[флуд]
О-о-й ...
Чего-то у меня с лексикой/граматикой/пунктуацией в пятницу под вечер трудно ... :-)
...
Пардон.
...
Хто читал надеюсь поняли мою тонкую мысль ... :-)
...
Рейтинг: 0 / 0
02.04.2004, 18:31
    #32467663
Benzin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список названий столбцов....
1.Тонкую мысль не понял, может она слишком тонкая? :)
2.Где-это в системной таблице имена полей указаны?
3.Поиск не работает, точнее работает, но частично: выводятся какие-то сообщения, но по ссылке ничего не открывается....
...
Рейтинг: 0 / 0
02.04.2004, 18:32
    #32467664
фыыф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список названий столбцов....
ИЛи напиши ф-ю ListFields(tName as string), где по имени перебирай все поля TableDef-а и пиши через ";", затем пошлеш динамически (в VBA) сформированный запрос
"Select ... WHERE t2.f NOT IN(" & ListFields(t1) & ");"
...
Рейтинг: 0 / 0
02.04.2004, 18:33
    #32467669
Kelme
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список названий столбцов....
Есть следующая идея:
Делаешь запрос, включаешь в него все поля, причём перечисляешь каждое, а не через *. Coхраняешь его. и затем глядишь в таблицы MSysObjects и MSysQueries, а дальше дело техники ;)
...
Рейтинг: 0 / 0
02.04.2004, 18:41
    #32467682
PokeMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список названий столбцов....
Точно!
:-)
...
Эт мы с MSSQL-ом попутали.
...
Все. Домой, домой. Работать хватит...
...
Рейтинг: 0 / 0
02.04.2004, 18:49
    #32467692
Benzin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список названий столбцов....
Создал запрос. В табл. MSysQueries появились 3 записи. Ну и что?
Записи такие: таблица1.дед, таблица1.бабка, таблица1.внучка.
И что с этим делать? Учитывая, кстати, что в следующий раз число и имена полей будут другими.
...
Рейтинг: 0 / 0
02.04.2004, 18:53
    #32467699
Kelme
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список названий столбцов....
ну а дальше берёшь бубен и вперёд, исходные данные есть, осталось тока их привести в нужный вид
...
Рейтинг: 0 / 0
02.04.2004, 19:07
    #32467713
фыыф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список названий столбцов....
тебя динамический запрос не устраивает?
Т.е. железно хочешь "сохраненный"?

Тогда вместо строки в ф-ии ListFields(tName as string), заполняй вспомогательную табличку - например -
t3
id_сеанс; Имя_поля
по входу в ф-ю получай уникальный сеанс
и с ним , в теле ф-ии, добавляй столько записей, сколько полей,
возвращай из функции id_сеанс
(т.е.
...
ListFields = id_сеанс
END Function

И в запросе t3.Имя_поля
SELECT ... FROM t2 RIGHT JOIN t3
ON t2.Имя_поля = t3.Имя_поля
WERE t3.id_сеанс =ListFields("t1")
AND t2.Имя_поля IS NULL;

т.к. "t1" - константа, то ListFields должно вызваться только один раз
(тут надо пошаманить, но подобные решения известны).
...
Рейтинг: 0 / 0
02.04.2004, 19:19
    #32467724
фыыф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список названий столбцов....
Соврал. ListFields Вызовется несколько раз.
Тогда надо дополнить
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
ListFields (tName as string, Optional X as boolean)
static id_сеанс as Long
  if X =False then
    id_сеанс = Newid_сеанс() 'Любой способ получения нового числа
    'тут как и раньше, заполняем табличку т3
    ...
    ListFields =- 1 
    exit function
  end if
  'тут только возвращаем id_сеанс'
  ListFields =id_сеанс 
End Function
а в запросе:
....
WERE t3.id_сеанс =ListFields("t1")
AND t2.Имя_поля IS NULL
AND ListFields();

Вот это-то ListFields() без параметра запросится один раз
...
Рейтинг: 0 / 0
02.04.2004, 19:23
    #32467728
фыыф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список названий столбцов....
тьфу, черт
читать
....
WERE t3.id_сеанс =ListFields("t1", True)
AND t2.Имя_поля IS NULL
AND ListFields("t1");


Помозговал - и первый вариант в аксессе, по крайней мере начиная с 97-го, должен вызываться один раз (так как нет зависимости от полей в вызове ф-ии).
Перестраховался.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Список названий столбцов.... / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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