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

- Додайте командну кнопку. Пропустити майстер командної кнопки.
- Додайте На клацанні подія до кнопки.
- Під час перегляду дизайну натисніть кнопку.
- Відкрийте аркуш властивостей (ALT + Enter)
- Перейдіть на вкладку Подія> На клік> ...
- Коли Виберіть Builder спливаюче меню, виберіть Конструктор коду.
- Натисніть кнопку ОК.
- Це відкриє редактор VBA.
-
- Скопіюйте наступний код та змініть його відповідно до своїх потреб. Використовуйте коментарі як керівництво.
Private Sub Command24_Click() Dim currentID As Long 'TO DO: change all instances of 'BookID' with the actual name of your table's ID or primary key If IsNull(BookID) Then MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation Exit Sub End If currentID = BookID DoCmd.GoToRecord record:=acNewRec 'TO DO: set the fields to be copied (those that most likely will have the same values) 'FORMAT: fieldName = Dlookup("fieldname", "tableName", "primaryKeyField=" & currentID) Author = DLookup("Author", "Books", "BookID=" & currentID) Country = DLookup("Country", "Books", "BookID=" & currentID) Language = DLookup("Language", "Books", "BookID=" & currentID) Genre = DLookup("Genre", "Books", "BookID=" & currentID) Publisher = DLookup("Publisher", "Books", "BookID=" & currentID) Title.SetFocus ‘TO DO: change 'Title' with name of field that is going to be edited by the user End Sub - Тепер протестуйте код, якщо він працює.
Пояснення коду
Наведений вище код був використаний для бази даних книгарні. Через серії книг існують випадки, коли всі подробиці книги (наприклад, автор, країна, мова тощо) однакові, крім одного поля - заголовка. Таким чином, необхідність коду.
У наведеному нижче списку показано потік програми.
- Перевірте, чи вибрав користувач запис для копіювання. Повідомлення про помилку з’явиться, якщо користувач натискає кнопку відразу після натискання кнопки Додати новий запис - ідентифікатор стає нульовим.
If IsNull(BookID) Then MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation Exit Sub End If
- Отримайте ідентифікатор або первинний ключ поточного запису та призначте його як значення для поточний ідентифікатор Це буде використано як основу для копіюваних значень.
currentID = BookID
- Додайте новий запис.
DoCmd.GoToRecord record:=acNewRec
- Встановіть значення для певних полів на основі поточний ідентифікатор Тут копіюються дані із вибраного запису.
'FORMAT: fieldName = Dlookup("fieldname", "tableName", "primaryKeyField=" & currentID)
Author = DLookup("Author", "Books", "BookID=" & currentID)
Country = DLookup("Country", "Books", "BookID=" & currentID)
Language = DLookup("Language", "Books", "BookID=" & currentID)
Genre = DLookup("Genre", "Books", "BookID=" & currentID)
Publisher = DLookup("Publisher", "Books", "BookID=" & currentID)
- Встановіть фокус на поле, яке, найімовірніше, користувач першим редагуватиме. Це покращує взаємодію з користувачем, оскільки усуває необхідність вручну вибирати поле, яке все ще потрібно оновити.
Title.SetFocus ‘TO DO: change 'Title' with name of field that is going to be edited by the user
Виправити пошкоджену базу даних
Якщо з незрозумілої причини ви одного дня прокинетесь і не можете відкрити базу даних, ви можете спробувати сторонні інструменти, які працюють Ремонт доступу. Це творить чудеса.
Вступ автора:
Джейме Стек - експерт із відновлення даних у DataNumen, Inc., яка є світовим лідером у галузі технологій відновлення даних, в тому числі відновлення SQL та програмні продукти Excel для відновлення. Для отримання додаткової інформації відвідайте WWW.datanumen.com
