Arhn - архитектура программирования

Как изменить порядок открытых форм с вкладками в MS Access через VBA

Я использую формы «документа с вкладками» в MS Access (каждая открытая основная форма имеет «вкладку», позволяющую пользователям легко перемещаться между формами).

Кто-нибудь знает, как изменить порядок таких открытых форм через VBA? У меня есть код обходного пути, который закрывает все формы, а затем повторно открывает их в нужном мне порядке, но он неуклюжий и медленный (некоторые формы большие, поэтому загрузка занимает некоторое время, и часто пользователи применяют фильтры / сортировки, которые Затем мне нужно индивидуально повторно подать заявку, а также сбросить текущую запись и т. Д.).

Поскольку все, что мне нужно, это изменить порядок форм на экране, поэтому мой подход кажется излишним, но я не могу найти информацию о том, как это сделать где-либо!

(К вашему сведению, я НЕ говорю о порядке страниц в элементе управления вкладками, чтобы избежать путаницы!)

Прикрепите снимок экрана с тремя открытыми формами с вкладками. Я бы хотел изменить их расположение, например, слева направо: @Home, Детали бронирования, Детали запроса.

3 формы с вкладками

Спасибо

04.10.2018

  • Доступ не поддерживает изменение порядка. Это невозможно сделать ... без невозможных обходных путей. Одно время я пробовал это, исследуя и экспериментируя, но так и не смог. Больше возможностей для тех, кто может опубликовать надежное и разумное решение, но я уверен, что этого не произойдет. Обычно я не публикую отрицательные ответы, но вы, скорее всего, потратите свое время на ожидание ответа и еще больше времени, пытаясь заставить что-то работать из различных предложений в Интернете. 04.10.2018
  • Если вы закрываете и снова открываете в желаемом порядке и это работает, почему они открыты с самого начала? Зачем менять порядок? Я никогда не использовал документы с вкладками, только перекрывающиеся окна. 04.10.2018

Ответы:


1

Хорошо, я случайно понял это.

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

Эврика! Теперь, чтобы изменить порядок форм, я просто скрываю их, а затем показываю в нужном порядке. Объедините это с DoCmd.Echo = False, и в моем тестировании накладные расходы практически нулевые.

Фух!

02.11.2018

2

Если пользователь не видит все формы сразу, вам не нужно тратить ресурсы / время на загрузку всех форм сразу. Загружать только то, что должен видеть пользователь. NavigationControl очень хорош для этого.

Метод 1

Переход от документов с вкладками к NavigationControl. Каждая вкладка загружается OnDemand, поэтому запуск вашей основной формы будет намного быстрее. Если основная форма и форма с вкладками связаны друг с другом, используйте событие OnOpen формы с вкладками для динамического изменения источника записи.

I.e. Form_Open => me.RecordSource = Select * form T1 where T1.id = ParentForm.Id

Способ 2

Если вы не можете перейти к элементу управления «Навигация», смоделируйте тот же эффект, что и выше. Когда вкладки изменяются / выбираются => базовая форма получает источник записи.

I.e.

Private Sub TabCtl2_Change()
    If Me.TabCtl2.value = 1 Then
        me.subform1.recordsource    = source
        me.subform1.LinkChildFields = linkingFieldName 'if related
        me.subform1.LinkChildFields = LinkMasterFields 'if related
    ElseIf Me.TabCtl2.value = 2 Then
        'Your other form
    end if
End Sub

Это может помочь вам сократить время загрузки.

[Каскадные наборы результатов] В случае, если все ваши формы показывают каскадные результаты, вы можете рассмотреть возможность удаления источника записи для всех ваших подчиненных форм, а затем повторно применять их при каждом выборе.

Цель состоит в том, чтобы минимизировать время загрузки и отображать только необходимые данные, которые пользователь должен видеть / хочет видеть. Надеюсь, это поможет получить представление.

05.10.2018
  • Привет, Криш, спасибо за это. Фактически, я уже этим занимаюсь. Пользователи открывают формы по мере необходимости, а подформы загружаются динамически, как вы предлагаете. Не в этом проблема. Проблема в том, что я загружал все формы, и они загружались в установленном порядке. Теперь пользователи сами загружают формы, порядок может быть другим - и им это не нравится! Поэтому мне нужен простой способ переупорядочить открытые формы БЕЗ закрытия и повторного открытия (что я сейчас и делаю) 06.10.2018
  • Не уверен, о чем вы. Пожалуйста, добавьте скриншоты, если можете. @Jaspos 06.10.2018
  • Я повторно отредактировал вопрос, чтобы добавить снимок экрана, и то, что я пытаюсь достичь 06.10.2018
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..