vba或VB写一个从access中读取数据到excel中,数据格式如下

ACCESS表名叫point,里面有2个字段,一个是POINTID,一个是PVVALUE,POINTID里面我假设要查一个叫AP1_1_EP所对应的PVVALUE的值,然后输出到我已经建好模的excel的一个叫“SOUCRE”的sheet的A2里,当然,对应“AP1_1_EP”这样的点有很多,只要帮我写一个就好,其他我自己写进去,对应EXCEL里就是A5/A7这样排下去。VBA或VB都行,如果VB最好有可以设置自动运行这个程序的时间段,比如一个小时,一天,VB程序可以一直运行在 电脑上。因怕人乱回答,我分只在回答好后附加!搞好至少50分!

sub 读取数据()
Dim mydata As String, SQL As String
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset '对变量进行定义,标准格式
mydata = 'mydata为数据库的地址,包括地址和文件名,例如C:\XXXXX数据库.accdb
Set cnn = New ADODB.Connection '建立cnn,为excel与数据库access的链接
With cnn '打开链接cnn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.Open mydata
End With
SQL= "select PVVALUE from point where POINTID = AP1_1_EP"
'这是查询条件,查询PVVALUE的值,在POINT表里,当POINTID=AP1_1_EP时

Set rs = cnn.Execute(SQL)
sheets("SOUCRE").cells(1,2)=rs.fields(0).value ’rs.fields(0).value就是查询的结果
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
end sub

使用以上功能,得在VBA上方的工具栏中,“工具—引用”选项,引用“Microsoft ActiveX Data Objects 2.5 Library”追问

你能写多个么,这样再多我就自己加就好了,,,比如还有AP1_2_EP.......AP2_1_EP等

追答

你的意思是一下子查询很多个?还是每次只查询一个?

追问

里面有很多像AP1_1_EP的变量的,我要都弄出来

追答

那我建议你做一个函数。AP1_1_EP等等的数值,写入EXCEL的表格中,自动读取一个POINTID值,返回一个PVVALUE值,之后再下一个POINTID……自动的。考虑一下

温馨提示:答案为网友推荐,仅供参考
相似回答