将行从访问表复制到Excel

时间:2016-07-18 11:20:13

标签: excel vba excel-vba ms-access

我有以下代码

Private Sub CommandButton1_Click()
    Dim cn As Object
    Dim rs As Object
    Dim strSql As String
    Dim strConnection As String
    Set cn = CreateObject("ADODB.Connection")
    strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
        "Data Source=C:\ActionList.accdb"
    strSql = "SELECT * FROM Actionlist;"
    cn.Open strConnection
    Set rs = cn.Execute(strSql)
    rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing
End Sub

我的目的是将某个表中的所有行复制到Excel表格中。我觉得这很容易在互联网上,但我似乎无法找到它。我希望行从A2开始,因为我已经使用Excel的内置函数将访问表添加到我的工作表中。我想手动执行此操作,以添加某些过滤器。

2 个答案:

答案 0 :(得分:0)

你需要,拥有什么,还有

for f= 0 to rs.fields.count-1
    range("a1").offset(0,f).value=rs.fields(f).name
next f

range("a2").copyfromrecordset rs

答案 1 :(得分:0)

切换CopyFromRecordset(),以便Private Sub CommandButton1_Click() Dim Dbs As DAO.Dtabase Dim rs As DAO.Recordset Dim strSql As String Set Dbs = OpenDatabase(C:\ActionList.accdb") strSql = "SELECT * FROM Actionlist;" Set rs = Dbs.OpenRecordset(strSql) 'Add Head lines: for i= 0 to rs.fields.count-1 range("a1").offset(0,i).value=rs.fields(i).name next f 'Add Data: range("a2").CopyFromRecordset rs 'Colse resources: rs.Close Set rs = Nothing Dbs.Close Set Dbs= Nothing End Sub 起作用:

/({example [a-z, A-Z]{3}})/g