Як створити власну розділену форму в Access за допомогою VBA

Поділитися зараз:

Розділені форми в Access надзвичайно корисні. На жаль, вони не працюють, коли ви розміщуєте їх у навігаційній формі. Дізнайтеся, як можна створити функцію VBA, яка імітуватиме функції розділеної форми Access і змуситиме її працювати навіть у навігаційній формі.

Розділена форма дозволяє одночасно мати два подання ваших записів - вигляд форми та таблицю даних. Це дозволяє вам оглянути всі ваші записи, одночасно даючи вам можливість переглядати та редагувати їх по одному.

На жаль, розділені форми не працюватимуть, коли ви помістите їх у навігаційну форму - те, що мене бентежить. Добре, що для цього є обхідний шлях. Використовуючи VBA, ви можете створити власну функцію, яка буде імітувати розділену форму Access. Просто виконайте наведені нижче дії.

Завантажити зараз

Якщо ви хочете почати користуватися цією функцією якомога швидше, ви можете:

Завантажте Зразок бази даних із кодами VBA зараз

В іншому випадку, якщо ви хочете зробити самостійно, ви можете прочитати вміст нижче.

Кроки для створення власної розділеної форми в Access за допомогою VBA

1. Відкрийте розділену форму та оновіть стандартний вигляд до єдиної форми. Відкрийте розділену форму та оновіть подання за замовчуванням до однієї форми

  1. Відкрийте розділену форму.
  2. Під час перегляду дизайну виберіть форму.
  3. Перейдіть до Аркуша властивостей (ALT + Enter)> вкладка Форма.
  4. Змініть подання за замовчуванням на: Single Form.
  5. Закрийте форму та збережіть.

2. Створіть копію форми. Це буде служити поданням таблиці даних.

  1. Перейдіть на панель навігації.
  2. Клацніть правою кнопкою миші на формі та виберіть Копіювати.
  3. Клацніть правою кнопкою миші на порожній області на навігаційній панелі та виберіть Вставити.
  4. Змініть назву форми. Додайте його до “_Dataheet”.

приклад:

  • Форма: Учасники
  • Копія форми: Members_Datasheet

3. Відкрийте форму таблиці та оновіть властивості подання форми.

  1. Відкрийте форму таблиці.
  2. Під час перегляду дизайну виберіть форму.
  3. Перейдіть на Аркуш властивостей> вкладку Форма.
  4. Оновіть такі властивості:
    • Вид за замовчуванням: Даташит
    • Дозволити перегляд таблиці даних: Так
    • Дозволити перегляд форми: Немає
  5. Закрийте форму та збережіть.

4. Повторно відкрийте основну форму та додайте форму таблиці як підформу.

  1. Відкрийте основну форму (ту, яку скопіювали) у вікні дизайну.
  2. Додайте підформу.
    • Перейдіть до меню Дизайн. Виберіть Підформу / Підзвіт.Виберіть Підформу
    • Клацніть на область Детально форми.
    • З'явиться майстер підформи.Майстер підформи

1. Клацніть на «Використовувати існуючу форму».

2.Виберіть форму таблиці.

3. натисніть Далі.Виберіть "Визначити власного"

4.Виберіть "Визначити мою власну".

5. натисніть Готово.

3. Форма таблиці даних тепер є підформою основної форми. Відрегулюйте його до бажаного розміру та положення.

5. Нарешті, додайте код.

  1. Відкрийте редактор VBA (ALT + F11).
  2. Виберіть основну форму та вставте наступний код.Виберіть основну форму та вставте код
'MAIN FORM
Option Explicit

Private Sub Form_AfterUpdate()
   Me.Members_Datasheet.Requery
End Sub

Private Sub Form_Current()
   If Me.NewRecord Then
     Me.Members_Datasheet.Form.Recordset.AddNew
   Else
     Me.Members_Datasheet.Requery
   End If
End Sub
  1. Після копіювання коду замініть усі екземпляри слова Members_Dataheet з фактичною назвою форми таблиці даних.
  2. Закінчивши, виберіть свою форму таблиці з меню Проект і скопіюйте код нижче.
'SUBFORM/DATASHEET FORM
Option Explicit

Private Sub Form_AfterUpdate()
   Me.Parent.Form.Requery
End Sub

Private Sub Form_Current()

  Dim pk_field As String, pk_tbox As Control
  Dim primaryKey As String, strSearch As String
 
  Set pk_tbox = Me.Member_ID 'textbox containing primary key *
  pk_field = "Member_ID" 'primary key field name *

  primaryKey = Nz(pk_tbox.Value, 0) 'change value to 0 if null
  pk_field = "[" & pk_field & "]" 'enclose field name with brackets
 
  If primaryKey <> 0 Then 'if not null (or not a new record)
    strSearch = pk_field & "=" & primaryKey
    Me.Parent.Recordset.FindFirst strSearch
  Else
     Me.Parent.Form.Recordset.AddNew
  End If

End Sub
  1. Оновіть значення для таких змінних:
  • pk_tbox - посилається на текстове поле, що містить первинний ключ.
  • pk_field - відноситься до поля первинного ключа джерела запису.

Кожен із них має зірочку (*) у розділі коментарів, щоб ви могли легко їх знайти.

  1. Закінчивши, збережіть зміни (CTRL + S) і закрийте редактор VBA.

Тепер ви можете додати свою власну розділену форму всередині навігаційної форми. Спробуй!

Виправлення пошкодженої бази даних (.accdb)

Існує багато причин пошкодження бази даних Access. На жаль, ми не можемо контролювати більшість із них. Якщо це все ж таки трапиться з вами, пам’ятайте, що все ще існує спосіб її відновити. DataNumen Inc. створила програмне забезпечення, яке працює Ремонт. Перевір.

Вступ автора:

Джейме Стек - експерт із відновлення даних у DataNumen, Inc., яка є світовим лідером у галузі технологій відновлення даних, в тому числі відновлення SQL та програмні продукти Excel для відновлення. Для отримання додаткової інформації відвідайте WWW.datanumen.com

Поділитися зараз:

Коментарі закриті.