Если ваше поле имеет тип Hyperlink
(а не тип text
), ваш SQL должен использовать следующий формат:
Display Text#Link Path#Sub address#optional screen tip#
Если вы просто хотите указать путь ссылки (например, https://google.com
), просто заключите его в #
:
INSERT INTO tHyperlinks (path) VALUES ("#https://google.com#")
Более подробную информацию можно найти здесь
Лично я не люблю использоватьHyperlink
тип данных в Access: я считаю, что проще использовать простое текстовое поле и генерировать гиперссылку в форме.
Кроме того, я бы рекомендовал не использовать DoCmd.RunSQL
.Каждый раз, когда вы используете этот метод, пользователь увидит сообщение с подтверждением (позволяющее отменить обновление), если вы не отключите его: ![action query confirmation](https://i.stack.imgur.com/dbzRr.png)
Чтобы отключить это подтверждение, выПришлось бы что-то вроде следующего:
DoCmd.SetWarnings False
DoCmd.RunSQL yourSQL
DoCmd.SetWarnings True
Еще хуже, если пользователь изменил свои параметры, чтобы не показывать эти подтверждения по умолчанию, вы увидите подтверждение (когда они специально сказали, что онине хочу их просматривать).
Гораздо лучше использовать метод Database.Execute
в библиотеке DAO:
Dim db as DAO.Database: Set db = CurrentDB
db.Execute yourSQL, dbFailOnError
Пользователь не получит подтверждающего сообщения (независимо от настроек клиента), и с dbFailOnError
, если запись не будет добавлена, будет сгенерирована ошибка, которая даст вам хорошую подробную информацию (ошибка ниже, когда я удалил скобки):
![db.execute error](https://i.stack.imgur.com/nRMUU.png)
Затем можно выполнить обработку ошибок.
Для получения дополнительной информации о DoCmd.RunSQL
против Database.Execute
см. this ссылки .
Официальный документ MicrosoftСтраницы, которые могут оказаться полезными: