powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как лучше сделать? имятаблицы - параметр?
16 сообщений из 16, страница 1 из 1
Как лучше сделать? имятаблицы - параметр?
    #32387403
lapa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть несколько таблиц на сервере SQL одинаковой структуры. Приложение Access. Хочу сделать общий запрос для всех, но чтобы имя таблицы бралось из поля со списком из формы. Подскажите пожалуйста как это лучше сделать. Заранее благодарю.
...
Рейтинг: 0 / 0
Как лучше сделать? имятаблицы - параметр?
    #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
Как лучше сделать? имятаблицы - параметр?
    #32387511
lapa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ув.Incold это тоже было уже испробовано. Но у меня почему то не выводится результат. Вернее выводится,но он пустой, хотя этого не может быть.
...
Рейтинг: 0 / 0
Как лучше сделать? имятаблицы - параметр?
    #32387603
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно сам задавался здесь таким же вопросом. У меня база Access каждый день получала новую таблицу с постоянной структурой. Идея была такая же, нужно было писать запросы для таблиц имя которых неизвестно. Раньше использовал токо динамические, потом захотелось узнать у народа другие варианты. Какие еще возможны.
1. Менять имя таблицы под стандартное или копировать ее со станд. имененем (по смыслу очень похоже на решение incold, у него правда все сливается в одну таблицу, но например такой вариант никак не мог подойти, у меня каждый день новые таблицы...., ну а смена имени таблицы сами понимаете чем грозит)
2. Вариант подсказанный Санычем: в DAO можно обратиться к сохраненному запросу и изменить ему SQL строку. Недостатки: медленнее чем динам. строка. При таком варианте вообще смысл как такого сохраненного запроса теряется потому как изменяя его SQL строку мы лишаем его предварительной оптимизации, по сути он получается такой же как и динам. строка, токо работает медленее, потому в DAO теряется время по изменению SQL строки сохраненного запроса, его сохранения в базе и токо потом уже запуск на выполнение, тогда как дин. строка сразу идет на выполнение.
Достоинства: удобнее работать, нагляднее что-ли, правда если формирование дин. строки засунуть в функц. и спокойно вызывать ее передавая как параметр имя таблицы мы помойму получим такое же удобство.
3. Избавиться от таблиц с одинаковой структурой для которых нужны одинаковые по сути запросы, а соединить их навечно в одной таблице.

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

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

Me.MySubForm.Form.RecordSource = "CобраннаяСтрока"
...
Рейтинг: 0 / 0
Как лучше сделать? имятаблицы - параметр?
    #32388209
lapa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если можно то подробнее?
...
Рейтинг: 0 / 0
Как лучше сделать? имятаблицы - параметр?
    #32388238
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
В исходном вопросе было сказано:Хочу сделать общий запрос для всех, но чтобы имя таблицы бралось из поля со списком из формы.
Это создает иллюзию, что автор вопроса знает, для чего нужен этот запрос. Это не так?
...
Рейтинг: 0 / 0
Как лучше сделать? имятаблицы - параметр?
    #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
Как лучше сделать? имятаблицы - параметр?
    #32388654
lapa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запросы нужны для выборки данных из таблиц или например на подсчет данных из них. Все сделала получилось! Спасибо!!! Но вот вопрос как бы сделать так чтобы структура подчиненной формы менялась в зависимости от того какой запрос. Надумки есть.Но может кто подскажет как это сделать грамотно. Очень не хочется каждый раз вызывать новую форму. Подскажите в каком направлении лучше смотреть?
...
Рейтинг: 0 / 0
Как лучше сделать? имятаблицы - параметр?
    #32390678
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нужны именно формы?
Можно ведь просто открыть сам запрос:
DoCmd.OpenQuery

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


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