|
|
|
| Помогите, пожалуйста как решить такую задачу:
Есть таблицы с одинаковой структурой
Нужно в форме открыть любую из этих таблиц
Пробовал сделать так
На открытие формы (форма табличная)
Dim dok as string
Dok = Форма1!TabName
Me.RecordSourse = "SELECT dok.Поле1, dok.Поле2 FROM dok;”
Access говорит – Не существует источника…"SELECT dok.Поле1, dok.Поле2”
Подскажите, что нужно сделать. Заранее спасибо. | |
|
| |
|
|
|
| Как вариант:
Me.RecordSource = Forms("FormName").Controls("ControlName").Value
Или:
Dim strSQL As String
strSQL="SELECT Поле1, Поле2 FROM " & Forms("FormName").Controls("ControlName").Value
Me.RecordSource = strSQL
|
| |
|
| |
|
|
|
|
| Что то не проходит…
Попробую точнее сформулировать задачу
Есть таблицы с одинаковой структурой, имеющие разные TabName и одинаковые имена полей
Есть Форма1 из которой выбирается имя одной из этих таблиц (TabName)
Есть Форма2 не имеющая RecordSourse
На открытие Формы2 (форма табличная)
Dim Dok as string
Dok = Форма1!TabName
Далее нужно назначить RecordSource для Формы2, используя переменную Dok и с использованием WHERE
Спасибо | |
|
| |
|
16 Кб. |
|
| Пример | |
|
| |
|
17 Кб. |
|
| Вот пример с фильтром, через OpenArgs | |
|
| |
|
|
|
| Извините, в вашем примере из формы1 выбираю таблицу нажимаю "Открыть форму2" выскакивает сообщение ...Module not found ... Может у меня пример не полностью скачивается? По обработке событий открываю VB редактор, открываю модуль формы и "Прог-ма выполнила недопустимую операцию... и т.д." Как посмотреть код? Спасибо | |
|
| |
|
16 Кб. |
|
| Какой версии ACCESS установлен? Новая версия:
Код формы "Форма1" для 2 примера:
Private Sub btnOpenForm2_Click()
Dim strSQL As String
If Len(Nz(Me.ListTables)) = 0 Then Exit Sub
strSQL = "SELECT * FROM " & Me.ListTables & " WHERE ItemValue=" & Me.ListItemValue
If CurrentProject.AllForms("Форма2").IsLoaded Then DoCmd.Close acForm, "Форма2"
DoCmd.OpenForm "Форма2", acFormDS, , , , , strSQL
End Sub
|
Код формы "Форма2"
Private Sub Form_Open(Cancel As Integer)
Me.RecordSource = Nz(Me.OpenArgs, "Таблица1")
End Sub
|
| |
|
| |
|
|
|
| Большое спасибо! Последний пример работает
Буду разбираться | |
|
| |
|
|
|
| Еще раз БОЛЬШОЕ СПАСИБО!
Все получилось так как хотел | |
|
| |
|
|
|
|
Есть таблицы с одинаковой структурой, имеющие разные TabName и одинаковые имена полей
| А почему не одна таблица с дополнительным полем-признаком? | |
|
| |
|
|
|
| Потому, что таблицы - Оборотно-сальдовые ведомости, помесячно, за несколько лет
возникнут проблемы с индексированными полями да и таблица будет расти как на дрожжах
а так проще - по шаблону создаю новую тбл с именем Мес_Год переношу остатки и далее по Бух-операциям. Хотя смысл в вашем вопросе есть, надо подумать. Спасибо | |
|
| |