Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как лучше сделать? имятаблицы - параметр? / 16 сообщений из 16, страница 1 из 1
26.01.2004, 10:26
    #32387403
lapa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше сделать? имятаблицы - параметр?
У меня есть несколько таблиц на сервере SQL одинаковой структуры. Приложение Access. Хочу сделать общий запрос для всех, но чтобы имя таблицы бралось из поля со списком из формы. Подскажите пожалуйста как это лучше сделать. Заранее благодарю.
...
Рейтинг: 0 / 0
26.01.2004, 10:45
    #32387425
incold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше сделать? имятаблицы - параметр?
Оодин из вариантов

Делаем View

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
create view vw_seltabs
as
select *, 'tab1' as tab_name from tab1
uinion
select *, 'tab2' as tab_name from tab2
union
...
select *, 'tabN' as tab_name from tabN


Дальше делаем запрос

select * from vw_seltabs
where tab_name=[параметр формы]

Другой вариант использование динамического запроса
Может еще есть варианты.
...
Рейтинг: 0 / 0
26.01.2004, 11:51
    #32387511
lapa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше сделать? имятаблицы - параметр?
Ув.Incold это тоже было уже испробовано. Но у меня почему то не выводится результат. Вернее выводится,но он пустой, хотя этого не может быть.
...
Рейтинг: 0 / 0
26.01.2004, 12:35
    #32387603
SergeySV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше сделать? имятаблицы - параметр?
Недавно сам задавался здесь таким же вопросом. У меня база Access каждый день получала новую таблицу с постоянной структурой. Идея была такая же, нужно было писать запросы для таблиц имя которых неизвестно. Раньше использовал токо динамические, потом захотелось узнать у народа другие варианты. Какие еще возможны.
1. Менять имя таблицы под стандартное или копировать ее со станд. имененем (по смыслу очень похоже на решение incold, у него правда все сливается в одну таблицу, но например такой вариант никак не мог подойти, у меня каждый день новые таблицы...., ну а смена имени таблицы сами понимаете чем грозит)
2. Вариант подсказанный Санычем: в DAO можно обратиться к сохраненному запросу и изменить ему SQL строку. Недостатки: медленнее чем динам. строка. При таком варианте вообще смысл как такого сохраненного запроса теряется потому как изменяя его SQL строку мы лишаем его предварительной оптимизации, по сути он получается такой же как и динам. строка, токо работает медленее, потому в DAO теряется время по изменению SQL строки сохраненного запроса, его сохранения в базе и токо потом уже запуск на выполнение, тогда как дин. строка сразу идет на выполнение.
Достоинства: удобнее работать, нагляднее что-ли, правда если формирование дин. строки засунуть в функц. и спокойно вызывать ее передавая как параметр имя таблицы мы помойму получим такое же удобство.
3. Избавиться от таблиц с одинаковой структурой для которых нужны одинаковые по сути запросы, а соединить их навечно в одной таблице.

Например в моей базе оэто решается так, каждый день я импортирую новые данные в сущ. таблицу с добавлением в доп. поле текущей даты. При желании избалвения от старых данных, просто запускаю запрос на удаление данных за такую то дату. Все - таблица все время одна, геммороя нет, все счастливы.
...
Рейтинг: 0 / 0
26.01.2004, 12:56
    #32387636
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше сделать? имятаблицы - параметр?
У моего варианта есть и другой недостаток - он не годится для мультиюзерства.
...
Рейтинг: 0 / 0
26.01.2004, 13:34
    #32387707
lapa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше сделать? имятаблицы - параметр?
Так решение все таки есть? При условии что не надо приводить к единой таблице и мультиюз тоже никуда не деть.А???
...
Рейтинг: 0 / 0
26.01.2004, 14:03
    #32387760
SergeySV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше сделать? имятаблицы - параметр?
Тогда остается токо: динамич. SQL строка
...
Рейтинг: 0 / 0
26.01.2004, 15:22
    #32387951
lapa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше сделать? имятаблицы - параметр?
Извените только начинаю в этом разбираться. Если кто подскажет как собрать SQL строку с именем таблицы из формы(поле со списком) буду ооооочень благодарна.
...
Рейтинг: 0 / 0
26.01.2004, 15:29
    #32387967
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше сделать? имятаблицы - параметр?
dim s as string
s = "select ... from " & forms!myform!mycombobox.column(1) & " ..."

Возможно, цифру 1 придется поменять на что-то другое.
...
Рейтинг: 0 / 0
26.01.2004, 16:24
    #32388063
lapa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше сделать? имятаблицы - параметр?
Извините за назойливость, а как бы теперь эту строку да на исполнение. Обещаю исправиться но только сейчас очень нужно.СПБББ!!!
...
Рейтинг: 0 / 0
26.01.2004, 16:29
    #32388074
AlexJuice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше сделать? имятаблицы - параметр?
Например, можно задать получившийся запрос как источник строк для подчиненной формы:

Me.MySubForm.Form.RecordSource = "CобраннаяСтрока"
...
Рейтинг: 0 / 0
26.01.2004, 17:49
    #32388209
lapa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше сделать? имятаблицы - параметр?
А если можно то подробнее?
...
Рейтинг: 0 / 0
26.01.2004, 18:08
    #32388238
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше сделать? имятаблицы - параметр?
В исходном вопросе было сказано:Хочу сделать общий запрос для всех, но чтобы имя таблицы бралось из поля со списком из формы.
Это создает иллюзию, что автор вопроса знает, для чего нужен этот запрос. Это не так?
...
Рейтинг: 0 / 0
26.01.2004, 18:09
    #32388242
AlexJuice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше сделать? имятаблицы - параметр?
Добавляешь в форму со списком подчиненную форму с источником - одной из нужных таблиц (проще всего - с помощью мастера).

На событие "Изменение" нужного списка (mycombobox) вешаешь процедуру:

Private Sub mycombobox_AfterUpdate()
Dim s As String
'Здесь собираешь строчку по рецепту Саныча
s = "select ... from " & forms!myform!mycombobox.column(1) & " ..."
'Здесь задаешь эту строчку в качестве источника строк для подчиненной формы
Me.MySubForm.Form.RecordSource = s
End Sub

Можно и в одну строчку, но для отладки удобнее именно так.
...
Рейтинг: 0 / 0
27.01.2004, 10:19
    #32388654
lapa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше сделать? имятаблицы - параметр?
Запросы нужны для выборки данных из таблиц или например на подсчет данных из них. Все сделала получилось! Спасибо!!! Но вот вопрос как бы сделать так чтобы структура подчиненной формы менялась в зависимости от того какой запрос. Надумки есть.Но может кто подскажет как это сделать грамотно. Очень не хочется каждый раз вызывать новую форму. Подскажите в каком направлении лучше смотреть?
...
Рейтинг: 0 / 0
28.01.2004, 13:53
    #32390678
AlexJuice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше сделать? имятаблицы - параметр?
А нужны именно формы?
Можно ведь просто открыть сам запрос:
DoCmd.OpenQuery

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


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