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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Открыть отчет с разных форм?
 
 автор: Goblin   (17.04.2009 в 18:14)   личное сообщение
 
 

Есть отчет, который надо открыть с разных форм. Отчет имеет встроенный SQL запрос с условием типа Forms![Сотрудники]![КодСотрудника]. Чтобы такой же отчет открывался с поисковой формы пришлось делать его дубликат, открывающийся с формы поиск по тому же условию. Forms![Поиск]![КодСотрудника]. Можно ли как-то подменить название формы в запросе, в зависимости от того, какая форма есть на экране, чтобы был только один отчет.
Условие типа IIF(forms![Поиск].Visible=True;Forms![Поиск]![КодСотрудника];Forms![Сотрудники]![КодСотрудника]) не срабатывает.

  Ответить  
 
 автор: ars_bs   (18.04.2009 в 02:48)   личное сообщение
 
 

это стоит на открытие отчета, просто подредактируешь под себя и все будет ок
Dim sq As String
Dim formname As String
Dim x As String
formname = Screen.ActiveForm.Name
x = "Forms!" + formname + "!хирург"
sq = "SELECT доктора.kod, доктора.хирург FROM доктора WHERE (((доктора.хирург)=" & x & "));"
Me.RecordSource = sq

  Ответить  
 
 автор: Goblin   (18.04.2009 в 16:36)   личное сообщение
 
 

Большое спасибо. Разобрался и подредактировал. Но вот проблемка возникла. В одной базе работает без замечаний с двух форм. А в другой базе не хочет. С одной формы запускается и работает как надо, а с другой формы вдруг выдает сообщение:
Ошибка синтаксиса (пропущен оператор) в выражении запроса '((([Протокол исследования].КодПациента)=Forms!Поиск по фамилии!КодПациента))'.
Хотя имя формы показывает правильно. Чего ему может быть надо, если отчет один и на его открытии стоит указанный код?
PS Не знаю что там было, пришлось снести форму и построить другую тоже ленточную. С нее все работает.

PS Все понятно! Работает везде кроме ленточной формы. . Какого ей-то не так? Ставил кнопку на открытие в заголовок - результат тот же. Не работает так же и если критерий попадает в подчиненную форму. Только с главной. Как быть?

  Ответить  
 
 автор: ars_bs   (19.04.2009 в 04:39)   личное сообщение
 
 

как открыть из подчиненной формы незнаю но можно попробовать вытащить значение поля КодПациента на главную форму и далее запускать
либо попробуй Select case
но это глюк наверно прописывать каждую форму, хотя если форм не много то можно и так
на открытие отчета
Dim FormName As String
FormName = Screen.ActiveForm.Name
Select Case FormName
Case "Доктора"
Me.RecordSource = "SELECT доктора.kod, доктора.хирург FROM доктора WHERE (((доктора.хирург)='" & Forms![доктора]![хирург] & "'));"
Case "Доктора1"
Me.RecordSource = "SELECT доктора.kod, доктора.хирург FROM доктора WHERE (((доктора.хирург)='" & Forms![доктора1]![доктора2].Form![хирург] & "'));"
End Select

  Ответить  
 
 автор: Goblin   (19.04.2009 в 14:25)   личное сообщение
 
 

Да нет, не глюк. Положим что если один отчет открываясь с разных форм должен менять критерий отбора. Это ведь, похоже то, что нужно. Не так ли? Зачем делать 3 одинаковых отчета, если можно с разных мест открывать одно и то же по соответствующему критерию отбора? Я иногда делал меняющий свою структуру запрос, в зависимости от критерия, выбираемого из ниспадающего миню. Но это мутно, на мой взгляд.

А с ленточной формы заработал после того, как снес ее и составил другую. Не знаю что там было не так.
И почему-то пишет ошибку, будто лишняя скобка в условии ")". И сколько этих скобок не убирай, все равно будет лишняя. Странно.

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