Excel VBA записи в определенное поле и значение в Access - PullRequest
1 голос
/ 09 февраля 2012

Я создаю приложение Excel, которое может перечислять инструменты на основе ввода пользователя. Из этого ввода они могут щелкнуть инструмент (в данном случае это разные файлы Excel), который затем открывает новый инструмент. Поскольку я запускаю это приложение на удаленном сервере, и многие люди будут иметь доступ к этим инструментам, я хотел бы создать обновление для поля isLocked в базе данных Access, которое содержит всю информацию об инструментах (другие поля для инструмента включают имя, путь , номер проекта). Итак, мой вопрос: как я могу посмотреть на инструмент, который открыл пользователь, а затем зайти в базу данных доступа и изменить поле isLocked на YES? Я думаю, что в конечном итоге я ищу конкретный тип оператора SQL ...

Спасибо за вашу помощь.

1 Ответ

1 голос
/ 09 февраля 2012

Я предполагаю, что вы можете добавить это к коду, который открывает файл "инструмент" Excel, выбранный пользователем. Другие предположения включают в себя: tblExcelTools в качестве имени таблицы; числовое поле первичного ключа, tool_id; элемент управления со списком с именем cboToolChooser и его связанное поле - tool_id.

Dim strSql AS String
strSql = "UPDATE tblExcelTools" & vbCrLf & _
    "SET isLocked = -1" & vbCrLf & _
    "WHERE tool_id = " & Me.cboToolChooser
Debug.Print strSql ' look in Immediate window (Ctrl+g) if problems '
CurrentDb.Execute strSql, dbFailonerror

Вы должны добавить обработчик ошибок, чтобы справиться с любыми проблемами, которые вызывает dbFailonerror.

Я думаю, что что-то похожее на это может сработать для достижения вашей непосредственной цели - установите isLocked в -1 (True), когда пользователь откроет инструмент. Однако я не имею ни малейшего представления о том, как вы собираетесь установить isLocked обратно в False, когда пользователь закончит работу с инструментом.

Редактировать : Я предложил этот пример кода, думая, что вы запустите его из Access, но вы делаете это из Excel. Я не использую Excel с пользовательской формой. Может быть, этот код может быть просто адаптирован для ADO. Откройте соединение ADO с Access db, затем используйте: cn.Execute strSql

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