VBA Access SQL SELECT Query仅返回一条记录

时间:2012-08-12 05:01:05

标签: sql access-vba ms-access-2010

我正在使用Access 2010中的VBA,我有一个奇怪的问题。我正在尝试从表中提取记录,但我的SELECT查询只返回一条记录。

表中有三条记录,但记录集只获得第一条记录。

这是我的代码。

Dim cc As String 
Dim DB As Database 
Dim rst As recordset 
Dim sqlstr As String 
Dim e As Integer 

cc = CmbClass.Text
If cc = "" Then Exit Sub 

sqlstr = "SELECT * FROM Students" 'WHERE CCode ='" & cc & "'"

Set DB = CurrentDb 
Set rst = DB.OpenRecordset(sqlstr) 
'Debug.Print rst.Fields(0)
e = rst.RecordCount 
Debug.Print e 
If e = 0 Then Exit Sub

e的值连续为1,而不是3.正如您所看到的,我最初有一个更复杂的SQL字符串,但我在尝试进行故障排除时将其剪切为最基本的,但问题仍然存在。有谁知道为什么会这样?

谢谢,

担。

2 个答案:

答案 0 :(得分:4)

从内存中你需要发出rst.MoveLast才能可靠地获得这样的记录数:

sqlstr = "SELECT * FROM Students" 'WHERE CCode ='" & cc & "'"

Set DB = CurrentDb 
Set rst = DB.OpenRecordset(sqlstr) 
rst.MoveLast
e = rst.RecordCount 

此外,您可能需要考虑使用SELECT COUNT(*) FROM Students并读取记录集中的值,而不是通过记录来获取计数。使用此查询应该更有效。

答案 1 :(得分:3)

另一种方法是DCount

e = DCount("*","Students","CCode ='" & cc & "'")

在您真正需要

之前,不要使用记录集