bibifish 发表于 2004-8-4 17:47:00

在VBA中如何使用ADODC控件

我在VBA的窗体上放了一个ADODC的控件,象在VB中操作一样,把数据源也连好了,可是运行程序的时候,ADODC控件变为灰度,不可用,在VBA中使用ADODC控件与在VB中有很大区别吗?请帮助解决!

bibifish 发表于 2004-8-5 17:17:00

有大侠没,快帮助小妹!

jordan 发表于 2004-10-28 14:41:00

我也碰到你一样的情况了我在vB中都不能用。谁也可以帮帮我啊。。

leeyeafu 发表于 2005-3-14 13:30:00

在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)<BR>       Dim Str As String<BR>       Str = "数据库记录:共" &amp; Adodc1.Recordset.RecordCount<BR>       Str = Str &amp; "条记录,第" &amp; Adodc1.Recordset.AbsolutePosition<BR>       Str = Str &amp; "条记录"<BR>       TextBox1.Text = Str<BR>End Sub


以下给出CmdFirst和CmdPrev两个按钮的Click事件代码,另外两个类似,不多说了。


Private Sub CmdFirst_Click()<BR>Adodc1.Recordset.MoveFirst<BR>CmdPrev.Enabled = False<BR>CmdFirst.Enabled = False<BR>CmdNext.Enabled = True<BR>CmdLast.Enabled = True<BR>End Sub


Private Sub CmdPrev_Click()<BR>Adodc1.Recordset.MovePrevious<BR>If Adodc1.Recordset.AbsolutePosition = adPosBOF Then<BR>       CmdPrev.Enabled = False<BR>       CmdFirst.Enabled = False<BR>End If<BR>CmdNext.Enabled = True<BR>CmdLast.Enabled = True<BR>End Sub


最后说句题外话,Adodc控件其实在VB中也不是很好用的东东,即使在VB中我也常常用上面的方法处理。
页: [1]
查看完整版本: 在VBA中如何使用ADODC控件