Вставить запись в таблицу доступа с помощью VB - PullRequest
0 голосов
/ 22 февраля 2019

Я пытаюсь добавить запись в таблицу доступа (гиперссылки), и поле "ссылка" должно быть установлено в "u: \ directory here \". Я попытался

docmd.runsql "insert into hyperlinks (link."U:\directory here\")" 

и получил ошибкиЯ попытался «вместо», и я попытался без кавычек, все заканчивается ошибкой без указания того, что не так.

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Если ваше поле имеет тип 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

Чтобы отключить это подтверждение, выПришлось бы что-то вроде следующего:

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

Затем можно выполнить обработку ошибок.

Для получения дополнительной информации о DoCmd.RunSQL против Database.Execute см. this ссылки .

Официальный документ MicrosoftСтраницы, которые могут оказаться полезными:

0 голосов
/ 22 февраля 2019

Я бы предложил:

docmd.runsql "insert into hyperlinks (link) values ('U:\directory here\')" 

Синтаксис оператора MS Access SQL insert можно найти здесь .

...