Как да създадете свой собствен разделен формуляр в Access с помощта на VBA

Споделете сега:

Разделените формуляри в Access са изключително полезни. За съжаление, те не работят, когато ги поставите във формуляр за навигация. Научете как можете да създадете VBA функция, която ще симулира функционалностите на разделен формуляр на Access и ще я накара да работи дори във формуляр за навигация.

Разделеният формуляр ви позволява да имате два изгледа на вашите записи едновременно – изглед на формуляр и изглед на лист с данни. Позволява ви да имате преглед на всичките си записи, като в същото време ви дава възможност да ги преглеждате и редактирате един по един.

За съжаление, разделените формуляри няма да работят, когато ги поставите във формуляр за навигация – нещо, което ме озадачава. Добре, че има заобиколно решение за това. Използвайки VBA, можете да създадете своя собствена функция, която ще симулира разделена форма на Access. Просто следвайте стъпките по-долу.

Свали сега

Ако искате да започнете да използвате функцията възможно най-скоро, можете да:

Изтеглете примерната база данни с VBA кодове сега

В противен случай, ако искате да си направите сам, можете да прочетете съдържанието по-долу.

Стъпки за създаване на ваш собствен разделен формуляр в Access с помощта на VBA

1. Отворете вашия разделен формуляр и актуализирайте изгледа по подразбиране до Единичен формуляр. Отворете вашия разделен формуляр и актуализирайте изгледа по подразбиране до единичен формуляр

  1. Отворете вашата разделена форма.
  2. Докато сте в изглед за дизайн, изберете формата.
  3. Отидете на Лист със свойства (ALT + Enter) > Раздел Формуляр.
  4. Променете изгледа по подразбиране на: Единичен формуляр.
  5. Затворете формата и запазете.

2. Създайте копие на формуляра. Това ще служи като изглед на листа с данни.

  1. Отидете до навигационния панел.
  2. Щракнете с десния бутон върху вашия формуляр и изберете Копиране.
  3. Щракнете с десния бутон върху празно място в навигационния панел и изберете Поставяне.
  4. Променете името на формуляра. Добавете го с „_Datasheet“.

Пример:

  • Форма: Членове
  • Копие на формуляра: 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. След като копирате кода, заменете всички екземпляри на думата Членове_лист с данни с действителното име на вашия формуляр за лист с данни.
  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 Editor.

Сега можете да добавите своя собствена разделена форма във формата за навигация. Опитай го!

Коригиране на повредена база данни за достъп (.accdb)

Може да има много причини, поради които база данни на Access се повреди. За съжаление, ние нямаме контрол върху повечето от тях. Ако това ви се случи, не забравяйте, че все още има начин да я възстановите. DataNumen Inc. създаде софтуер, който изпълнява поправка на accdb, Виж това.

Въведение на автора:

Jayme Stack е експерт по възстановяване на данни в DataNumen, Inc., която е световен лидер в технологиите за възстановяване на данни, включително sql възстановяване и excel софтуерни продукти за възстановяване. За повече информация посетете WWW.datanumen.com

Споделете сега:

Коментарите са забранени.