Запись из Excel для доступа к многоколонному списку полей со списком VBA - PullRequest
0 голосов
/ 07 марта 2019

У меня есть файл Access с двумя таблицами: пользователи и продукты. Пользователи хранят список тех, кто может писать в файл Access (поля, такие как userID, systemID, name). Продукты хранит список атрибутов продукта, включая тех, кто сделал последнее обновление записи. Последнее поле обновления представляет собой комбинированный список с двумя столбцами: userID (привязан к этому), name (отображает это из-за ширины столбца 0 "; 2").

У меня также есть файл Excel с именем simulator. Используя VBA, симулятор считывает данные из таблицы продуктов, использует различные алгоритмы прогнозирования для моделирования будущего продукта, а затем записывает прогнозы в Access.

Когда Excel записывает обратно в запись продукта, я хотел бы записать последнего автора обновления, который будет имитатором. Предполагая, что этот пользователь существует (userID = 100, name = Simulator, скажем), как мне это сделать?

У меня сейчас есть

' Open Access database, get products table, get product record
connection.Open ...
products.Open "Products", connection, ...
products.Filter = "ProductID = " & productNumber

' Update record
products("LastUpdateAuthor") = "100; Simulator"
products.Update
products.Close

И это пишет "100; Симулятор" в правильное поле. Как заставить его распознать, что 100 - это связанный столбец, а симулятор - это второй столбец?

1 Ответ

1 голос
/ 07 марта 2019

Следует сохранять только идентификатор пользователя в поле LastUpdateAuthor.Тогда многостолбцовый комбинированный список RowSource должен быть оператором SQL таблицы Users, чтобы получить и просмотреть соответствующее имя пользователя.Так что имейте запись в Users с UserID 100 и именем Simulator, а затем просто сохраните UserID.

Пока RowSourceType равен Table / Query, он будет видеть значение 100; Simulator в виде одной строки из поля LastUpdateAuthor.Можно установить combobox RowSourceType как ValueList, затем использовать код, управляющий набором записей, и метод Add для загрузки данных LastUpdateAuthor в RowSource, и точка с запятой будет распознаваться как разделитель столбцов.Однако, если вы делаете, как описано в первом абзаце, это не обязательно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...