在VBA中确实不能使用Adodc控件,但可以用TextBox控件和按钮来模拟一个Adodc控件,就象这样:
然后将Adodc控件的Visible属性设置为False,四个按钮的Caption属性分别为|<、<<、>>、>|,为以后叙述方便,假设它们的名称分别为CmdFirst,CmdPrev,CmdNext,CmdLast。在窗体初始化代码中添加:
Adodc1.Refresh
以确保Adodc正常工作。添加Adodc控件的MoveComplete事件,当记录指针移动时修改TextBox控件内容:
Private Sub Adodc1_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) Dim Str As String Str = "数据库记录:共" & Adodc1.Recordset.RecordCount Str = Str & "条记录,第" & Adodc1.Recordset.AbsolutePosition Str = Str & "条记录" TextBox1.Text = Str End Sub
以下给出CmdFirst和CmdPrev两个按钮的Click事件代码,另外两个类似,不多说了。
Private Sub CmdFirst_Click() Adodc1.Recordset.MoveFirst CmdPrev.Enabled = False CmdFirst.Enabled = False CmdNext.Enabled = True CmdLast.Enabled = True End Sub
Private Sub CmdPrev_Click() Adodc1.Recordset.MovePrevious If Adodc1.Recordset.AbsolutePosition = adPosBOF Then CmdPrev.Enabled = False CmdFirst.Enabled = False End If CmdNext.Enabled = True CmdLast.Enabled = True End Sub
最后说句题外话,Adodc控件其实在VB中也不是很好用的东东,即使在VB中我也常常用上面的方法处理。