在没有 .movelast 的情况下,我会遇到这个 .recordcount() 的问题吗?
Am i going to go have issues with this .recordcount() without .movelast?
我的 VBA 代码似乎工作正常,或者,我还没有发现问题...
当我在 recordcount = 0
中使用 rs.movelast
时,我确实遇到了问题。所以我注释掉了 rs.movelast
并且我的代码工作正常。
但是,我知道在使用 recordcount()
时,最好执行 .movelast
,因为 recordcount
只计算已访问的内容。
我的代码:
Set rs = db.OpenRecordset(varSQL0, dbOpenDynaset)
' rs.MoveLast
Debug.Print rs.RecordCount
If rs.RecordCount = 0 Then
'----create new-----
Set rs1 = CurrentDb.OpenRecordset(Name:="Supplier_Dnotes", Type:=RecordsetTypeEnum.dbOpenDynaset)
With rs1
.AddNew
![Supplier_Dnote_Ref] = varDnoteRef
![Supplier_Dnote_date] = Forms!delivery_Note_Ex.Supplier_Dnote_date
![Created_By] = gLoggedIn
![Created_Date] = Date
.Update
End With
rs1.Close
Set rs1 = Nothing
Else
.....
如果我排除 .movelast
,我的 recordcount
会有问题吗?
是否有其他方法可以尝试避免这个潜在问题?
我应该补充一点,我已经为 supplier_dnote_ref
编制了索引,因此如果出现问题,则不应添加新记录,因为它已经存在。此外,现在我已经为我的 table 编制了索引,我认为 recordcount()
不应超过 1。
当你想使用 RecordCount 时,你应该做一个 MoveLast。
但是正如你所说,如果你没有任何记录,那就是一个问题。
但你不必找出正确的计数,只要有记录即可。另一种方法是将 If-then-else "RecordCount = 0" 改为
If Not (rs.EOF And rs.BOF) then
' the record count is > 0
'Code...
Else
' the record count is 0
'Code...
End If
BOF的意思是:记录前
EOF表示:在记录之后
这意味着 => EOF 和 BOF:没有记录
您不应使用 movelast 添加记录。可能只是徒劳地增加了一些操作时间。
我的 VBA 代码似乎工作正常,或者,我还没有发现问题...
当我在 recordcount = 0
中使用 rs.movelast
时,我确实遇到了问题。所以我注释掉了 rs.movelast
并且我的代码工作正常。
但是,我知道在使用 recordcount()
时,最好执行 .movelast
,因为 recordcount
只计算已访问的内容。
我的代码:
Set rs = db.OpenRecordset(varSQL0, dbOpenDynaset)
' rs.MoveLast
Debug.Print rs.RecordCount
If rs.RecordCount = 0 Then
'----create new-----
Set rs1 = CurrentDb.OpenRecordset(Name:="Supplier_Dnotes", Type:=RecordsetTypeEnum.dbOpenDynaset)
With rs1
.AddNew
![Supplier_Dnote_Ref] = varDnoteRef
![Supplier_Dnote_date] = Forms!delivery_Note_Ex.Supplier_Dnote_date
![Created_By] = gLoggedIn
![Created_Date] = Date
.Update
End With
rs1.Close
Set rs1 = Nothing
Else
.....
如果我排除 .movelast
,我的 recordcount
会有问题吗?
是否有其他方法可以尝试避免这个潜在问题?
我应该补充一点,我已经为 supplier_dnote_ref
编制了索引,因此如果出现问题,则不应添加新记录,因为它已经存在。此外,现在我已经为我的 table 编制了索引,我认为 recordcount()
不应超过 1。
当你想使用 RecordCount 时,你应该做一个 MoveLast。 但是正如你所说,如果你没有任何记录,那就是一个问题。
但你不必找出正确的计数,只要有记录即可。另一种方法是将 If-then-else "RecordCount = 0" 改为
If Not (rs.EOF And rs.BOF) then
' the record count is > 0
'Code...
Else
' the record count is 0
'Code...
End If
BOF的意思是:记录前
EOF表示:在记录之后
这意味着 => EOF 和 BOF:没有记录
您不应使用 movelast 添加记录。可能只是徒劳地增加了一些操作时间。