使用VB在访问表中插入记录

时间:2019-02-22 13:12:44

标签: sql ms-access access-vba

我正在尝试将记录添加到Access表(超链接)中,并且字段“ link”应设置为“ u:\ directory here \” 我尝试过

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

并得到错误,我尝试用'代替“,然后尝试不使用引号,但都以错误的结尾而未指明错误之处。

2 个答案:

答案 0 :(得分:1)

我建议:

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

可以在here中找到MS Access SQL insert语句的语法。

答案 1 :(得分:0)

如果您的字段是Hyperlink类型(而不是text类型),则您的SQL需要使用以下格式:

Display Text#Link Path#Sub address#optional screen tip#

如果只需要链接路径(例如https://google.com),只需将其用#括起来:

INSERT INTO tHyperlinks (path) VALUES ("#https://google.com#")

可以找到更多信息here

我个人不喜欢在Access中使用Hyperlink数据类型:我发现使用简单的文本字段并在表单中生成超链接会更容易。

此外,我建议不要使用DoCmd.RunSQL。每当您使用此方法时,除非您将其关闭,否则用户都会看到一条确认消息(允许他们取消更新): action query confirmation

要关闭此确认,您必须执行以下操作:

DoCmd.SetWarnings False
DoCmd.RunSQL yourSQL
DoCmd.SetWarnings True

更糟糕的是,如果用户更改了选项以默认情况下不显示这些确认,则将显示确认(当他们明确表示不想查看时)。

最好在DAO库中使用Database.Execute方法:

Dim db as DAO.Database: Set db = CurrentDB
db.Execute yourSQL, dbFailOnError

用户将不会收到确认消息(无论其客户端设置如何),并且使用dbFailOnError,如果未添加记录,则会生成错误,这将为您提供详细的详细信息(以下错误是我删除括号后的错误):

db.execute error

然后您可以执行错误处理。

有关DoCmd.RunSQLDatabase.Execute的更多信息,请参见these links

您可能会发现有用的Microsoft官方文档页面: