Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion GroupsFormsForms ProgrammingQueriesModules / DAO / VBAReports / PrintingMacrosDatabase DesignSecurityConversionImporting / LinkingSQL Server / ADPMultiuser / NetworkingReplicationSetup / ConfigurationDeveloper ToolkitsActiveX ControlsNew UsersGeneral 1General 2
Access DirectoryToolsTutorialsUser Groups
Related Topics
SQL ServerOther DB ProductsMS OfficeMore Topics ...

MS Access Forum / Importing / Linking / September 2005

Tip: Looking for answers? Try searching our database.

Pass-Thorugh/select data source?

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
rocky - 15 Sep 2005 19:11 GMT
I have a backend database. I use a pass-through query to retrive the data
from the backend. The problem that I have is that is asks for me to select
the data source every time the queries are excuted. Is there a way around
this?
Joe Fallon - 20 Sep 2005 02:24 GMT
Use code to define the connect string and include dbAttachSavePWD.

e.g. I use this code to link tables but similar code works with SPT queries.

 Set tdfAccess = dbs.CreateTableDef(rs![LinkTablename], dbAttachSavePWD)
 tdfAccess.Connect = dbsODBC.Connect
---------------------------------------------------------------------------------

I use this procedure to re-create links to SQL Server.
====================================================
For Jet re-linking code see:
http://www.mvps.org/access/tables/tbl0009.htm
====================================================
(This eliminates the need to re-name all the tables to strip out dbo_ and it
allows you to point to different versions of the same database easily.)
There is a local Access table (tblODBCTables) that contains the table names
I want to link to on the Server.
Note: the source table name needs the dbo. prefix which is in the code. The
linked table name usualy omits this. .

Public Sub LinkSQLServerTables(strDSN As String, strDatabase)
On Error GoTo Err_LinkSQLServerTables

Dim dbs As Database, rs As Recordset, tdfAccess As TableDef
Dim dbsODBC As Database, strConnect As String

If strDSN = "" Then
 MsgBox "You must supply a DSN in order to link tables."
 Exit Sub
Else
 strConnect = "ODBC;DSN=" & strDSN & ";UID=User;PWD=password;DATABASE=" &
strDatabase & ";"
End If

SysCmd acSysCmdSetStatus, "Connecting to SQL Server..."

Call DeleteODBCTableNames

Set dbs = CurrentDb
Set rs = dbs.OpenRecordset("tblODBCTables")
Set dbsODBC = OpenDatabase("", False, False, strConnect)

Do While Not rs.EOF
 Set tdfAccess = dbs.CreateTableDef(rs![LinkTablename], dbAttachSavePWD)
 tdfAccess.Connect = dbsODBC.Connect
 tdfAccess.SourceTableName = dbsODBC.TableDefs("dbo." &
rs![LinkTablename]).Name
 dbs.TableDefs.Append tdfAccess
 rs.MoveNext
Loop

rs.Close
Set rs = Nothing
Set dbsODBC = Nothing
Set dbs = Nothing

Exit_LinkSQLServerTables:
   SysCmd acSysCmdClearStatus
   Exit Sub

Err_LinkSQLServerTables:
   MsgBox ("Error # " & Str(Err.Number) & " was generated by " & Err.Source
& Chr(13) & Err.Description)
   Resume Exit_LinkSQLServerTables

End Sub

'This procedure deletes all linked ODBC table names in an mdb.
Public Sub DeleteODBCTableNames()
On Error GoTo Err_DeleteODBCTableNames

   Dim dbs As Database, tdf As TableDef, I As Integer
   Set dbs = CurrentDb
   For I = dbs.TableDefs.Count - 1 To 0 Step -1
     Set tdf = dbs.TableDefs(I)
     If (tdf.Attributes And dbAttachedODBC) Then
       dbs.TableDefs.Delete (tdf.Name)
     End If
   Next I

   dbs.Close
   Set dbs = Nothing

Exit_DeleteODBCTableNames:
   Exit Sub

Err_DeleteODBCTableNames:
   MsgBox ("Error # " & Str(Err.Number) & " was generated by " & Err.Source
& Chr(13) & Err.Description)
   Resume Exit_DeleteODBCTableNames

End Sub

Signature

Joe Fallon
Access MVP

>I have a backend database. I use a pass-through query to retrive the data
> from the backend. The problem that I have is that is asks for me to select
> the data source every time the queries are excuted. Is there a way around
> this?
rocky - 20 Sep 2005 12:35 GMT
Thanks Joe I will give this a try!! Thanks again!

> Use code to define the connect string and include dbAttachSavePWD.
>
[quoted text clipped - 93 lines]
> > the data source every time the queries are excuted. Is there a way around
> > this?
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.