VBA执行SQL语句有一个固定的套路。
    哪怕你连VBA代码一句都看不懂也没关系,只要知道在哪里写入SQL语句就可以了。
    代码如下:

    1. Sub DoSql_Execute()
    2. Dim cnn As Object, rst As Object
    3. Dim Mypath As String, Str_cnn As String, Sql As String
    4. Dim i As Long
    5. Set cnn = CreateObject("adodb.connection")
    6. Mypath = ThisWorkbook.FullName
    7. If Application.Version < 12 Then
    8. Str_cnn = "Provider=Microsoft.jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & Mypath
    9. Else
    10. Str_cnn = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & Mypath
    11. End If
    12. cnn.Open Str_cnn
    13. Sql = "SELECT * FROM [学生表$]" '//请在此处写入你的SQL代码
    14. Set rst = cnn.Execute(Sql)
    15. Cells.ClearContents
    16. For i = 0 To rst.Fields.Count - 1
    17. Cells(1, i + 1) = rst.Fields(i).Name
    18. Next
    19. Range("a2").CopyFromRecordset rst '
    20. cnn.Close
    21. Set cnn = Nothing
    22. End Sub