vba或VB写一个从access中读取数据到excel中,数据格式如下
ACCESS表名叫point,里面有2个字段,一个是POINTID,一个是PVVALUE,POINTID里面我假设要查一个叫AP1_1_EP所对应的PVVALUE的值,然...
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分!
展开
1个回答
展开全部
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”
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等
追答
你的意思是一下子查询很多个?还是每次只查询一个?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询