sobota, 25 grudnia 2010

Nowość w CreateWorkspace wprowadzona od wersji Access 2007


CreateWorkspace Method [Access 2007 Developer Reference]: "ODBCDirect workspaces are not supported in Microsoft Office Access 2007. Setting the type argument to dbUseODBC will result in a run-time error. Use ADO if you want to access external data sources without using the Microsoft Access database engine."


Oznacza to ni mniej ni więcej to że nie da się wykonać następującego kodu:

Sub dbOpenDynamicX()

Dim wrkMain As Workspace
Dim conMain As Connection
Dim qdfTemp As QueryDef
Dim rstTemp As Recordset
Dim strSQL As String
Dim intLoop As Integer

' Create ODBC workspace and open connection to
' SQL Server database.
Set wrkMain = CreateWorkspace("ODBCWorkspace", _
"admin", "", dbUseODBC)

' Note: The DSN referenced below must be configured to 
'       use Microsoft Windows NT Authentication Mode to 
'       authorize user access to the Microsoft SQL Server.    
Set conMain = wrkMain.OpenConnection("Publishers", _
dbDriverNoPrompt, False, _
"ODBC;DATABASE=pubs;DSN=Publishers")

' Open dynamic-type recordset.
Set rstTemp = _
conMain.OpenRecordset("authors", _
dbOpenDynamic)

With rstTemp
Debug.Print "Dynamic-type recordset: " & .Name

' Enumerate records.
Do While Not .EOF
Debug.Print "    " & !au_lname & ", " & _
!au_fname
.MoveNext
Loop

.Close
End With

conMain.Close
wrkMain.Close

End Sub 

Skutkuje to tym że nie możemy stworzyć obiektu wrkMain służącego nam podczas otwierania połączania.
Jaki z tego płynie wniosek: piszmy od razu w ADO jeżeli zamierzamy korzystać z zewnętrznej bazy danych w naszym projekcie Accessowym.

Brak komentarzy:

Prześlij komentarz