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