Microsoft Access has the capability to create and update DSN's, using the
DBEngine object. Here is some sample code that creates/updates two DSN's:
Sub RegisterDB
Dim s As String
On Error GoTo err_rdb
'
s = "Database=AcmeArizona" & vbCr & _
"OemToAnsi=No" & vbCr & _
"Server=ACAZ-W2K-SQL1" & vbCr & _
"Trusted_Connection=Yes"
DBEngine.RegisterDatabase "SalesAZ", _
"SQL Server", True, s
'
s = "Database=AS400" & vbCr & _
"OemToAnsi=No" & vbCr & _
"Server=ACAZ-NTAPP1" & vbCr & _
"Trusted_Connection=Yes"
DBEngine.RegisterDatabase "Sales400", _
"SQL Server", True, s
exit_rdb:
Exit Sub
'
err_rdb:
MsgBox Err.Description, vbCritical, _
"Error # " & Err.Number
Resume exit_rdb
'
End Sub
The arguments for RegisterDatabase are:
name of DSN,
name of ODBC provider,
whether to persist security info,
connection string