sql - 使用 Access 的 VBA 追加查询

标签 sql ms-access vba

我正在尝试向表单添加一个按钮,以将表单的内容添加为表格中的新行。这行代码我以前写过,但是这次不行。

我的表单包含文本和整数。加载表单时,会自动填充表单上的 3 个框。 (自动填充的框会改变什么吗?)

我没有尝试让整个字符串工作,而是减少了代码,只添加一个框(自动填充的框之一)。我收到 rune 时错误“438”:对象不支持此属性或方法。

我尝试用谷歌搜索该错误,但找不到任何适用的内容。

代码如下:

Dim strInsert As String

strInsert = "INSERT INTO NLog(IDKEY) " & _
    " Values(" & Me.TxtIdKey & ")"

Debug.Print strInsert
CurrentProject.Execute strInsert, dbFailOnError


MsgBox ("Entry Added")

当我查看调试屏幕时,它显示以下内容: 插入 NLog(IDKEY) 值(OH08801405)

我好郁闷啊!我对此还很陌生,感觉完全不适应。

最佳答案

您可以像这样使用 ADO 执行 INSERT 语句...

CurrentProject.Connection.Execute strInsert

注意 CurrentProject.Connection.Execute,而不是 CurrentProject.Execute,并且从 ADO 执行时不要包含 DAO 常量 dbFailOnError

或者像这样使用 DAO ...

CurrentDb.Execute strInsert, dbFailOnError

此外,您还尝试将文本值插入到 IDKEY 字段中。假设文本是该字段的正确数据类型,请在您要插入的值周围添加引号...

strInsert = "INSERT INTO NLog(IDKEY) " & _
    " Values('" & Me.TxtIdKey & "')"

然后您应该看到与此类似的 Debug.Print 输出...

INSERT INTO NLog(IDKEY) Values('OH08801405')

如果OH08801405周围没有引号,数据库引擎将不会理解它应该是应该插入的字符串值,而是会假设它是您尚未提供值的参数.

关于sql - 使用 Access 的 VBA 追加查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27987736/

相关文章:

mysql错误选择输出

sql - 行中的列名及其值 sql

需要 VBA 循环逻辑

function - 如何编写打开和关闭数据库连接的常用函数?

c# - SELECT .... WHERE something equals with 汉字

sql - 获取多对多关系的聚合 View

c++ - MS Access 从 C++ 应用程序查询 ORDER BY 日期

sql - VBA Access SQL SELECT 查询只返回一条记录

java - 获取另一个时区的 SimpleDateFormat 日期对象

vba - Excel公式加1