【发布时间】:2018-05-28 08:51:20
【问题描述】:
我遇到了以下问题,我无法通过。 我正在尝试循环创建记录集。想法是在数据库中添加一些与用户表单中用户选择的日期范围相关的条目。当用户只选择一个日期代码工作正常但当用户选择日期范围时,它在第二次循环传递时因上述运行时错误而崩溃 - 无效对象或没有值。 这是我的代码(实际上是其中的一部分,为了显示问题而进行了一些简化):
Dim sql, sql2 As String
Dim x, daty As Integer
Dim dbs As DAO.Database
Set dbs = CurrentDb
Dim qdf As DAO.QueryDef
Dim rs As DAO.Recordset
For x = 0 To 3 '''replaced user selected date ranges with 3 to simplify code
sql = "INSERT INTO tDzialaniaRejestracja (IdSzkolenia, TerminRozpoczecia) VALUES (" & Me.IdSzkolenia & ", '" & Format((Me.DataRozpoczecia + x), "dd.mm.yyyy") & "')"
With dbs
Set qdf = dbs.CreateQueryDef("", sql) '''here i get runtine error 3420 on second loop pass
qdf.Execute dbFailOnError
sql2 = "SELECT @@IDENTITY"
Set rs = .OpenRecordset(sql2, dbOpenDynaset)
lastID = rs.Fields(0)
rs.Close
dbs.Close
End With
Me.IdDzialania = lastID
Me.ProwadzacyFirmaZewn.Value = 23
Set qdf = Nothing
Set rs = Nothing
Next x
非常感谢任何提示。 非常感谢您。
问候
【问题讨论】:
-
在错误信息前写上
Debug.Print sql。你得到了什么? -
并尝试打开
dbs,在第一个循环后您将关闭它。或者根本不关闭它。 -
非常感谢,让数据库保持打开状态就可以了。