我正在尝试向表单添加一个按钮,以将表单内容添加为表格中的新行。我以前写过这行代码,但这次它没有用。
我的表单包含文本和整数。表单加载时,表单上的3个框自动填充。 (自动填充的盒子会改变什么吗?)
我没有尝试使整个字符串工作,而是将代码减少到只添加一个框(其中一个自动填充的框)。我得到符文时错误'438':对象不支持此属性或方法。
我尝试使用Google搜索错误,但我找不到任何适用的内容。
代码如下:
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)
我很沮丧!我对此仍然很陌生,我觉得完全不符合我的要素。
答案 0 :(得分:2)
您可以像这样使用ADO执行INSERT
语句......
CurrentProject.Connection.Execute strInsert
注意CurrentProject.Connection.Execute
,而不是CurrentProject.Execute
,并且在从ADO执行时不包含DAO常量 dbFailOnError 。
或者像这样DAO ......
CurrentDb.Execute strInsert, dbFailOnError
此外,您试图将文本值插入 IDKEY 字段。假设text是该字段的正确数据类型,请在您要插入的值周围添加引号...
strInsert = "INSERT INTO NLog(IDKEY) " & _
" Values('" & Me.TxtIdKey & "')"
然后您应该看到Debug.Print
输出类似于此...
INSERT INTO NLog(IDKEY) Values('OH08801405')
如果没有围绕 OH08801405 的引号,db引擎将不会理解它应该是一个应该插入的字符串值,而是假设它是一个你没有提供值的参数
答案 1 :(得分:1)
我必须假设错误消息发生在CurrentProject.Execute strInsert, dbFailOnError
,因为您的调试实际上显示了一些内容。
您需要建立与数据库的连接并使用db.Execute strInsert, dbFailOnError
。
您声明了这样的连接:
Dim db As DAO.Database
Set db = CurrentDb
所以你应该得到类似的东西:
Dim strInsert As String
Dim db As DAO.Database
strInsert = "INSERT INTO NLog(IDKEY) " & _
" Values(" & Me.TxtIdKey & ")"
Debug.Print strInsert
Set db = CurrentDb
db.Execute strInsert, dbFailOnError
MsgBox ("Entry Added")