在vba中如何使用adodc控件
www.dimcax.com
在vba中如何使用adodc控件
我在vba的窗体上放了一个adodc的控件,象在vb中操作一样,把数据源也连好了,可是运行程序的时候,adodc控件变为灰度,不可用,在vba中使用adodc控件与在vb中有很大区别吗?请帮助解决!
有大侠没,快帮助小妹!
我也碰到你一样的情况了我在vb中都不能用。谁也可以帮帮我啊。。
我爱cad。我爱篮球。
在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中我也常常用上面的方法处理。