【发布时间】:2014-03-13 13:14:38
【问题描述】:
我正在使用 DAO recorsets,基本思想是用给定参数指示的记录多次填充一个表(限制)。
它似乎可以工作,但是当我想再次使用该表单时,它突然抛出 3022 错误。当我看到表值时,它们都没有重复。我从该表中删除所有记录并刷新表和表单。在我刷新表单之前,该表不会显示任何值。显示的唯一值是我尝试保存在数据库中的最后一个值。
这里有一点代码:
Private Sub add_element(loops_number As Double)
i = 1
While (i < CDbl(loops_number))
function
i = i + 1
Wend
End Sub
这显然工作得很好。
Private Sub populate()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim last As DAO.Recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("Element", dbOpenTable)
Set last = rst.Clone
With rst
.AddNew
If (last.RecordCount <= 0) Then
'here I pass input form values to recordset fields ,because its the first row
last.Close
.Update
.Close
Else
last.MoveLast
!Pk = Custom_pk 'Custom_pk is obtained with a function --- not relevant
'here I pass remain values from last record to a new one --- because records has the same attributes
last.Close
.Update
.Close
End If
Set rst = Nothing
Set ultimo = Nothing
End With
End Sub
就像函数完成工作后最后一条记录值保持“活动”一样。我不明白为什么会这样。
元素 pk 是字母数字,例如:“A1”,然后我构建一个函数将A与1分开,将+1添加到数字并再次连接值,所以结果是“A2”
【问题讨论】:
标签: ms-access dao populate recordset