jwcolby
jwcolby at colbyconsulting.com
Wed Jul 18 12:35:56 CDT 2007
Hmm...
John W. Colby
Colby Consulting
www.ColbyConsulting.com
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Dettman
Sent: Wednesday, July 18, 2007 1:27 PM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] DSNs
<<I build a new database for each order, thus the reason for editing the
DSN>>
Well scratch that one then.
<<In a text editor I assume?>>
No, with code. I've pasted in the VB6 code I use below. Will work fine
in Access. This code uses a table however to get the DSN specifics. You'd
need to modify it a bit to pull in the database name. However, from what
you've said, I would go DSN less.
<<I didn't state it, but these are for linking tables out of the SQL Server
database. >>
Basically a DSN is nothing more then a holding place for connection info.
You can supply that info right in the .Connect property and skip the DSN.
See this MSDN article:
http://msdn2.microsoft.com/en-us/library/bb188204.aspx
and look for "Setting Connection Properties"
There are loads of examples of doing this on the web.
A good site for getting connection strings is:
http://www.connectionstrings.com/
Jim.
============================================================================
==
Option Explicit ' Require variables to be declared before being
used.
Private Const ODBC_ADD_SYS_DSN = 4 'Add data source
Private Const ODBC_CONFIG_SYS_DSN = 5 'Configure (edit) data source
Private Const ODBC_REMOVE_SYS_DSN = 6 'Remove data source
Private Const vbAPINull = 0&
Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" (ByVal _
hwndParent As Long, ByVal fRequest As Long, ByVal _
lpszDriver As String, ByVal lpszAttributes As String) As Long
Function CreateDSNs(strDatabaseName As String) As Integer
' Using tblDSNs, Create/refresh required DSN entires for a database.
Dim ws As DAO.Workspace
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strDriver As String
Dim strAttributes As String
Dim strDatabase As String
Dim strDSN As String
Dim intEntryCount As Integer
Dim intNumberofDSNs As Integer
Dim varRet As Variant
'Dim pb As New Form_frm_ProgBar
On Error goto CreateDSNs_Err
Set ws = DBEngine.CreateWorkspace("", "Admin", "")
Set db = ws.OpenDatabase("P:\xxx\SetClientEnv\SetClientEnv.MDB")
Set rs = db.OpenRecordset("tblDSNs")
intNumberofDSNs = rs.RecordCount
intEntryCount = 0
'pb.SetMessage "Creating/refreshing DSN Entries"
With rs
While Not .EOF
' Check if this entry applies to this database.
If UCase(rs("DatabaseName")) = UCase(strDatabaseName) Then
' Register method can't create system DSNs
' only user ones.
'DBEngine.RegisterDatabase rs("DSN"), _
' "SQL Server", _
' True, _
' "Description= Traverse - " & strDatabase & _
' Chr(13) & "Server=" & rs("Server") & _
' Chr(13) & "Database=" & strDatabase & _
' Chr(13) & "Network=DBMSSOCN" & _
' Chr(13) & "Trusted_Connection=Yes"
strDriver = "SQL Server" & Chr(0)
strAttributes = "DSN=" & rs("DSN") & Chr(0)
strAttributes = strAttributes & "Description= Traverse - " &
rs("Database") & Chr(0)
strAttributes = strAttributes & "Server=" & rs("Server") &
Chr(0)
strAttributes = strAttributes & "Database=" & rs("Database") &
Chr(0)
strAttributes = strAttributes & "Network=DBMSSOCN" & Chr(0)
strAttributes = strAttributes & "Trusted_Connection=Yes" &
Chr(0)
varRet = SQLConfigDataSource(vbAPINull, ODBC_ADD_SYS_DSN,
strDriver, strAttributes)
If varRet <> 1 Then
MsgBox "DSN Creation Failed"
GoTo CreateDSNs_Err
End If
End If
intEntryCount = intEntryCount + 1
'pb.SetBarPercent (intEntryCount / intNumberofDSNs) * 100
rs.MoveNext
Wend
End With
CreateDSNs = True
CreateDSNs_End:
On Error Resume Next
If Not rs Is Nothing Then
rs.Close
Set rs = Nothing
End If
If Not db Is Nothing Then
db.Close
Set db = Nothing
End If
If Not ws Is Nothing Then
ws.Close
Set ws = Nothing
End If
Exit Function
CreateDSNs_Err:
CreateDSNs = False
GoTo CreateDSNs_End
End Function
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby
Sent: Wednesday, July 18, 2007 12:50 PM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] DSNs
>1. Have multiple DSN's defined and switch the .Connect property to
>point to
the correct one.
I build a new database for each order, thus the reason for editing the DSN
>2. Redefine a single DSN.
In a text editor I assume?
>3. Provide all the connection information in the .Connect property and
>go
DSN less.
I didn't state it, but these are for linking tables out of the SQL Server
database.
John W. Colby
Colby Consulting
www.ColbyConsulting.com
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Dettman
Sent: Wednesday, July 18, 2007 12:42 PM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] DSNs
John,
1. Have multiple DSN's defined and switch the .Connect property to point to
the correct one.
2. Redefine a single DSN.
3. Provide all the connection information in the .Connect property and go
DSN less.
Jim.
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby
Sent: Wednesday, July 18, 2007 10:24 AM
To: 'Access Developers discussion and problem solving'
Subject: [AccessD] DSNs
I am working with Access as the FE to processing orders where I need to
export to a fixed width file because Access stores the format, which is
convenient until I come up to speed on how to do something similar in SQL
Server. The issue is that the DSN is specific to a database name. How can
I edit that to point to a different database?
John W. Colby
Colby Consulting
www.ColbyConsulting.com
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com