Set querds = db.OpenRecordset("QueryTable1")
For i = 0 To querds.RecordCount - 1
Me.Print querds.Fields("班名").Value, querds.Fields("班主任").Value
querds.MoveNext
Next i
Private Sub cmdCompute_Click()
Dim rds As Recordset
Dim i As Long, querds As Recordset
Dim qdf As QueryDef
Set rds = db.OpenRecordset("表1")
'打印所有内容
For i = 0 To rds.RecordCount - 1
Me.Print rds("班名").Value, rds("班主任").Value, rds("出勤率").Value
rds.MoveNext
Next i
'查询
If db.QueryDefs.Count = 0 Then
Set qdf = db.CreateQueryDef("QueryTable1")
Else
Set qdf = db.QueryDefs("QueryTable1")
End If
Me.Print
qdf.SQL = "SELECT * FROM 表1 where 次数>15"
Set querds = qdf.OpenRecordset
'为何这里不MoveLast再MoveFirst,就无法得到正确的结果呢?有除了这样,有其他解决方法吗?
querds.MoveLast
querds.MoveFirst
For i = 0 To querds.RecordCount - 1
Me.Print querds.Fields("班名").Value, querds.Fields("次数").Value
querds.MoveNext
Next i
Me.Print
'上面就可以,但是如果要用SQL执行UPDATE,应该怎么办?
qdf.SQL = "UPDATE 表1 SET 次数=100 WHERE 次数 >15"
querds.MoveLast
querds.MoveFirst
For i = 0 To querds.RecordCount - 1
Me.Print querds.Fields("班名").Value, querds2.Fields("次数").Value
querds.MoveNext
Next i
End Sub
Private Sub Form_Load()
Set db = DBEngine.OpenDatabase(App.Path & "\testdb\db3.mdb")
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
db.Close
Set db = Nothing
End Sub