Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/19: Рейтинг темы: голосов - 19, средняя оценка - 5.00
10 / 2 / 0
Регистрация: 20.02.2021
Сообщений: 34

Открытие формы из списка

08.07.2021, 15:29. Показов 4048. Ответов 35

Студворк — интернет-сервис помощи студентам
Есть таблица со списком вызовов в которой содеражатся данные (дата/время, от кого, номер и тип вызова), для каждого типа есть своя форма, подскажите как сделать так, чтобы при нажатии на тип вызова открывалась соотвтствующая форма и соответсвующая запись для просмотра. Возможно через макрос с временной переменной?
Миниатюры
Открытие формы из списка  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.07.2021, 15:29
Ответы с готовыми решениями:

Открытие и закрытие формы в зависимости от выбора элемента списка
Есть Главная форма, содержащая постоянные поля, которые являются общими и всегда находятся на экране, и есть необходимость открывать формы...

Открытие формы или запроса путём клика на запись из списка в подчиненной форме
Есть база "Автотранспортное предприятие" в которой хочу переделать одну из форм по выдаче документов водителю. Есть список...

Открытие одной формы внутри другой формы (подчиненная форма)
Добрый день. Проблема следующего характера. Создаю элемент подчиненной формы на главной форме. Необходимо, чтобы пользователь выбирал на...

35
Эксперт MS Access
 Аватар для Eugene-LS
13266 / 5943 / 1529
Регистрация: 05.10.2016
Сообщений: 16,627
11.07.2021, 21:05
Студворк — интернет-сервис помощи студентам
Praisethe222, а вот хочу спросить:
Решение из пост#7 - чем не устроило?
...
в решении из пост#17 - закомментируйте все строки : Debug.Print ...
И блок :
Visual Basic
1
2
3
        For Each prt In cnt.Properties
        Debug.Print prt.Name, prt.Value
        Next prt
там IMHO лишний.
1
Модератор
Эксперт MS Access
 Аватар для shanemac51
12511 / 5085 / 814
Регистрация: 07.08.2010
Сообщений: 14,962
Записей в блоге: 4
11.07.2021, 21:25
Цитата Сообщение от Eugene-LS Посмотреть сообщение
закомментируйте все строки : Debug.Print
мне проще(и быстрее ) набить несколько лишних строк кода, чем проверять имена контролов(слишком много ошибок в них)

естественно достаточно
Visual Basic
1
2
3
4
5
6
7
8
9
10
Private Sub Тип_Click()
'''''DoCmd.RunMacro "Вызовы"
Dim s1 as string
s1=me.Тип.text & ""
  
If Len(s1) > 0 Then
DoCmd.OpenForm s1, acNormal, "", "[Код]=" & Nz(Me.Код, 0), acFormEdit
End If
 
End Sub
0
Эксперт MS Access
 Аватар для Eugene-LS
13266 / 5943 / 1529
Регистрация: 05.10.2016
Сообщений: 16,627
11.07.2021, 21:31
Цитата Сообщение от shanemac51 Посмотреть сообщение
естественно достаточно
Я бы примерно так написал:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Тип_Click()
'DoCmd.RunMacro "Вызовы"
Dim s1 as string
    s1=me.Тип & ""
  
    If Len(s1) > 0 Then
        If Nz(Me.Код, 0) > 0 Then
            DoCmd.OpenForm s1, acNormal, "", "[Код]=" & Nz(Me.Код, 0), acFormEdit
        End If
   End If
 
End Sub
1
10 / 2 / 0
Регистрация: 20.02.2021
Сообщений: 34
11.07.2021, 21:37  [ТС]
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Я бы примерно так написал:
Все прекрасно работает, мне нравится, спасибо
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12511 / 5085 / 814
Регистрация: 07.08.2010
Сообщений: 14,962
Записей в блоге: 4
11.07.2021, 21:44
Praisethe222,
и кстати, сравните последний код с кодом вашего макроса - видимо вы потратили на макрос достаточно много времени, получив при этом неработающий результат
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Function Вызовы()
On Error GoTo Вызовы_Err
 
    With CodeContextObject
        On Error Resume Next
        If (.Form.Dirty) Then
            DoCmd.RunCommand acCmdSaveRecord
        End If
        If (.MacroError.Number <> 0) Then
            Beep
            MsgBox .MacroError.Description, vbOKOnly, ""
            Exit Function
        End If
        On Error Resume Next
        TempVars.Add "Имя", Screen.ActiveControl
        DoCmd.OpenForm TempVars!Имя, acNormal, "", "[Код]=" & Nz(.Код, 0), , acNormal
        If (Not IsNull(.Код)) Then
            TempVars.Add "Текущий_ИД", .Код
        End If
        If (IsNull(.Код)) Then
            TempVars.Add "Текущий_ИД", Nz(DMax("[Код]", .Form.RecordSource), 0)
        End If
        DoCmd.Requery ""
        DoCmd.SearchForRecord , "", acFirst, "[Код]=" & TempVars!Текущий_ИД
        TempVars.Remove "Текущий_ИД"
        TempVars.Remove "Имя"
    End With
 
 
Вызовы_Exit:
    Exit Function
 
Вызовы_Err:
    MsgBox Error$
    Resume Вызовы_Exit
 
End Function
1
Эксперт MS Access
 Аватар для Eugene-LS
13266 / 5943 / 1529
Регистрация: 05.10.2016
Сообщений: 16,627
11.07.2021, 21:53
Цитата Сообщение от shanemac51 Посмотреть сообщение
видимо вы потратили на макрос достаточно много времени
Это уж точно!
И там много "на макросах", пока, к сожалению.
Praisethe222 переходите на VBA - будет проще, удобней, универсальней - ЛУЧШЕ.
VBA , в основном, не так уж сложен ...

Добавлено через 5 минут
Цитата Сообщение от Praisethe222 Посмотреть сообщение
Все прекрасно работает
Ну тогда макросы: "Вызовы" и "Вызовы1" можно смело удалить из приложения.
1
10 / 2 / 0
Регистрация: 20.02.2021
Сообщений: 34
11.07.2021, 22:05  [ТС]
Уже
Благодарю

Добавлено через 1 минуту
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Praisethe222 переходите на VBA - будет проще, удобней, универсальней - ЛУЧШЕ
Приму к сведению
0
Эксперт MS Access
 Аватар для Eugene-LS
13266 / 5943 / 1529
Регистрация: 05.10.2016
Сообщений: 16,627
11.07.2021, 22:12
Цитата Сообщение от Praisethe222 Посмотреть сообщение
Приму к сведению
Я тут праздную "День Рыбака" - есть время ....
С праздничком всех!

Почитайте:

Вот вам супер краткий курс за 20 секунд:
Как минимально подготовить MSA к работе разработчика.
01. В настройках VBE установите опцию "Require Variable Declaration"
02. На панель кнопок VBE выведите кнопку Compile - и нажимайте её после каждой редакции кода.
03. Отобразите Immediate Window в редакторе VBE, для этого нажмите [Ctrl]+[G] (или через меню View)
04. В опциях VBE установите приемлемый размер шрифта для комфортной работы (сам шрифт не меняйте).

Отказывайтесь от пользования "мастерами" создавайте всё в ручную, так выучите свойства объектов - хотя ...
Никаких полей подстановок в таблицах - всё решаем через интерфейс - Формы и их контроли (поля)
Ознакомитесь со списком зарезервированных слов - их в названиях употреблять нельзя.
Зарезервированные слова:
Ключевые слова (Visual Basic)
Зарезервированные слова и символы Access
Короче все определители и команды языка + всё из списка свойств и методов объектов ...

Коротенько про написание кода:
Изучите основные события формы и контролей, например:
AfterUpdate
OnCurrent
OnTimer
и т.д. - часто употребляемых штук 30-50.

Ознакомьтесь со списком встроенных функций:
Функции (по категориям)
Многие из них вы будите часто использовать.

Модули форм и внешние модули.
В модулях форм пишем всё что касается конкретной формы и объявляем как Private
Всё что касается всего приложения пишем во внешних модулях, и объявляем как Public

Смотрите примеры, коих много в сети!


Мои рекомендации просты:
01. Знаки препинания, скобки и пр. в названиях полей (таблиц и пр.) недопустимы. Только буквы и цифры (не в начале) и пробелы меняем на "_"
02. Названия полей желательно делать краткими и внятными (если что - описания для полей есть)
03. В каждой таблице должно быть ключевое поле однозначно определяющее конкретную запись (обычно счётчик) - могут быть исключения, но лучше этого вам избегать.

По связям:
Я например у себя пишу так :
DocID = Ключевое поле таблице данных (со стороны ОДИН)
DocSID = Поле связи в таблице (со стороны МНОГИЕ от "Sub ID")
... но это мой вариант.

В вариантах с русскими названиями можно например так:
КодДокумента = Ключевое поле таблице данных (со стороны ОДИН)
ДокументКод = Поле связи в таблице (со стороны МНОГИЕ)

Вы можете придумать свои варианты, главное что бы было вам самому (и другим) понятно где "главное" поле и где "подчинённое"

Если не хотите путаться - никаких полей с подстановками и вычисляемых полей (они не имеют смысла)

Интерфейс:
Желательно не сложный, удобный и интуитивно понятный.
Минимум разнообразия шрифтов и цветов. Придерживайтесь стандарта программ под Windows.

Вот и всё, пожалуй.
Может кто дополнит меня - буду только рад.
3
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,383
11.07.2021, 22:17
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Вопросы:
Ответы даны выше, хватит размазывать.
0
Эксперт MS Access
 Аватар для Eugene-LS
13266 / 5943 / 1529
Регистрация: 05.10.2016
Сообщений: 16,627
11.07.2021, 22:20
Цитата Сообщение от alvk Посмотреть сообщение
хватит размазывать
Это уж точно!
0
10 / 2 / 0
Регистрация: 20.02.2021
Сообщений: 34
11.07.2021, 22:21  [ТС]
Цитата Сообщение от Eugene-LS Посмотреть сообщение
С праздничком всех!
Как и вас с праздником

Цитата Сообщение от Eugene-LS Посмотреть сообщение
Вот вам супер краткий курс за 20 секунд:
Мне еще учиться и учиться, спасибо за введение в access, обязательно буду пользоваться вашими советами, и, чувствую, еще не раз обращусь за консультацией
0
Эксперт MS Access
 Аватар для Eugene-LS
13266 / 5943 / 1529
Регистрация: 05.10.2016
Сообщений: 16,627
11.07.2021, 22:40
Цитата Сообщение от Praisethe222 Посмотреть сообщение
спасибо за введение в access
Не жалко!
Я это уже писал на форуме (кусками) просто "откопипастился" в пост#28.
Сам, не редко, заглядываю в справочники описанные выше - всего ведь не упомнишь ...

Самый главный "справочник" это строка запроса в поисковике (Google, Yandex, etc ...)
Пишите в поисковом поле:
VBA Access [+ через пробел ваш вопрос по русски] ....
Если что - перефразируем вопрос по русски...
Если что - перефразируем вопрос по английски ...
... и до опупения

Добавлено через 3 минуты
alvk так можно и в "игнор лист" залететь ...
Не понимаю вас совсем ... ЗАЧЕМ?
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,383
11.07.2021, 22:51
Цитата Сообщение от Praisethe222 Посмотреть сообщение
что более высокомерного человека, который настолько кичится превосходством своих знаний и опыта над другими, разливая свою желчь во все углы - я еще не встречал
Я тоже самое могу сказать про вас, вы полностью игнорируете любые вопросы и намёки про ваш фундамент, которые вам задают. Высокомерно отмалчиваетесь в темах. Видимо считаете себя самым умным здесь.
Импорт таблицы с заменой - тут игнор
Выборка значений из списка, основываясь на предыдущем списке - тут про пробелы, результат - игнор.
Подчиненные поля со списком - тут опять игнор, нет ответа на прямой вопрос, результат - ваши кривые связи в выложенной выше БД. Это ДВА месяца с лишним назад.
Обращение к подчиненной форме - опять пробелы и опять игнор с вашей стороны. Месяц назад
и наконец 10 дней назад и опять игнорирование:
При добавлении в таблицу запись разделяется
В итоге ваша схема данных - полная лажа, которую вы и не пытались никогда перестроить.
Так кто тут высокомерный и напыщенный?

Цитата Сообщение от Praisethe222 Посмотреть сообщение
с направлением в сторону учебного материала, без намека на конкретную литературу
чтобы что-то получить, надо хотя бы спросить или отвечать в темах.
В первом же своём ответе полгода назад я вам объяснил, куда вам идти и что смотреть!
Телефонный справочник в Access
Тогда Евгений был со мной почему-то не спорил, а даже лайк поставил. Полгода назад.
Так что вы прочли за полгода из темы Написание статей? Или вы не знаете до сих пор, где это?

Добавлено через 7 минут
Цитата Сообщение от Eugene-LS Посмотреть сообщение
alvk так можно и в "игнор лист" залететь ...
Так я у ТС в игноре с февраля месяца, прямо с первого совета.
Я всё написал и показал выше. И не называйте его новичком. Например, за полгода я написал и запустил в холдинге систему документооборота, которая проработала с дополнениями и изменениями 11 лет, пока работало предприятие.
Никаких вопросов про нормальные формы через полгода у меня уже не было и т.д.
0
Эксперт MS Access
 Аватар для Eugene-LS
13266 / 5943 / 1529
Регистрация: 05.10.2016
Сообщений: 16,627
11.07.2021, 22:52
Praisethe222, ну например:
Вы читаете пост #23 - и хотите понять строку:
Visual Basic
1
2
    If Len(s1) > 0 Then
...
Пишите в поисковом поле:
"VBA Access If" потом "VBA Access Left"
... Получаете:
Миниатюры
Открытие формы из списка   Открытие формы из списка  
1
Эксперт MS Access
 Аватар для Eugene-LS
13266 / 5943 / 1529
Регистрация: 05.10.2016
Сообщений: 16,627
11.07.2021, 23:00
Цитата Сообщение от Eugene-LS Посмотреть сообщение
потом "VBA Access Left"
Исправляюсь:
"VBA Access Len" - конечно! (закодился я уже ...)
Миниатюры
Открытие формы из списка  
1
10 / 2 / 0
Регистрация: 20.02.2021
Сообщений: 34
11.07.2021, 23:20  [ТС]
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Пишите в поисковом поле:
"VBA Access If" потом "VBA Access Left"
При возможности просмотрю материал
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.07.2021, 23:20

Открытие формы на добавления на основе данных из другой формы
Помогите решить две проблемы: 1. Есть &quot;форма 1&quot; со свободным полем &quot;Код предприятия&quot;, нужно чтобы пользователь при открытие формы...

Открытие Отчета из Формы с данными текущей Формы по кнопке
Добрый день! Есть форма &quot;Ввод данных персонала&quot;, в ней кнопка &quot;Протокол проверки знаний&quot;. По клику открывается Отчет. Не могу...

Открытие формы с условием отбора с использованием подчиненной формы
День добрый. Подскажите пожалуйста по следующему вопросу В форме &quot;Задачи сотрудников&quot; есть подчиненная форма &quot;Задачи...

Открытие формы из другой формы с целью детализации
Уважаемые гуру форума! Подскажите, желательно примером, как по записи одной формы выводить, в принципе, ту же запись но в другой форме (для...

Открытие формы бизнес-процесса из формы списка
Имеется форма списка задачи (скрин ниже), как сделать, чтобы при двойном клике открывалась форма объекта текущего бизнес-процесса? Пытался...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru