顯示具有 ADO 標籤的文章。 顯示所有文章
顯示具有 ADO 標籤的文章。 顯示所有文章

2013年11月12日 星期二

2012年4月3日 星期二

[ADOX]印出查詢中的SQL指令


Sub test()
    Dim objConn As Object, objCat As Object, Prc As Object, i As Long
   
    Set objConn = CreateObject("adodb.connection")
    Set objCat = CreateObject("adox.catalog")
   
    With objConn
        .connectionstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=myPath\泛myAccess.mdb"
        .Open
        If .State <> 1 Then Exit Sub
    End With
    On Error GoTo errHandle
    With objCat
        .activeconnection = objConn
        i = 1
        For Each Prc In objCat.procedures
            Cells(i, 1).Value = Prc.Name
            Cells(i, 2).Value = Prc.Command.CommandText
            i = i + 1
        Next
    End With
    objConn.Close
    Exit Sub
errHandle:
    objConn.Close
   
End Sub

[ADOX]查詢資料庫中資料表之名稱

要查詢或定義資料庫的內部結構(例如:欄位、主鍵、table name、view name等),就要用ADOX物件。
要使用ADOX之前,要先用ADO建立連結,之後才能使用ADOX物件。

Dim objConn as object, objCat as object, objTbl as object

set objConn=createobjcet("ADODB.connection")
set objCat=createobjcet("ADOX.catalog")
set objTbl=createobjcet("ADOX.table")

with objConn
.connectionstring="Provider="Microsoft.Jet.OLEDB.4.0; data source=mypath/myAccessFile.mdb"
.open
end with

with objCat
.activeconnection=objconn
for each objTbl in objCat.tables
debug.print objTbl.name
next
end with

2012年3月3日 星期六

Access VBA儲存查詢

Microsoft的Access不支援Create View的SQL指令,因此每寫完一段Query(查詢)之後,就要用GUI(圖形使用者介面)把Query存起來。
對我這個講究自動化的人(其實就是懶),這種作法不是很方便。

幸好,就Access而言,SQL不行還有VBA可以用,以下的程式碼是利用ADOX把Query存起來。

Sub CreateQuery()
    
    Dim cat As New ADOX.Catalog
    Dim cd As New ADODB.Command
    Dim sSQL As String
    
    cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
       "Data Source=C:\mydb.mdb;"
    
    sSQL = "SELECT * FROM Newtable"
    
    cd.CommandText = sSQL
    
    cat.Views.Append "Newquery", cd

End Sub

2010年12月24日 星期五

[VBA][ADO]如何設定資料庫聯結(Connection)

在ADO中常常需要設定資料庫聯結,以便存取、修改資料庫的資料。
但是,每次都要打很多文字來設定Connection屬性,有點麻煩。

最近才知道可以利用UDL檔預先設定好這些屬性。先記在這裡,以免忘記。
建立及設定UDL檔的方式:
http://msdn.microsoft.com/zh-tw/library/aa301691(v=VS.71).aspx
在ADO中引用UDL檔的方式:
http://msdn.microsoft.com/zh-tw/library/aa301678(v=VS.71).aspx