You cannot create a system DSN by using the RegisterDatabase method. To create a system DSN, use the ODBC API call for SQLConfigDataSource.
Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.
The following example uses the API call for SQLConfigDataSource to create a system DSN. The example creates a data source for the
sample database Northwind.mdb when the database is located at C:\Northwind.mdb.
Copy the sample database Northwind.mdb to the root
directory of drive C.
Create a new Access database.
Create a module and type the following lines in the
Declarations section:
Option Explicit
Const ODBC_ADD_SYS_DSN = 4 'Add data source
Const ODBC_CONFIG_SYS_DSN = 5 'Configure (edit) data source
Const ODBC_REMOVE_SYS_DSN = 6 'Remove data source
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
Type the following procedure:
Function Build_SystemDSN(DSN_NAME As String, Db_Path As String)
Dim ret%, Driver$, Attributes$
Driver = "Microsoft Access Driver (*.MDB)" & Chr(0)
Attributes = "DSN=" & DSN_NAME & Chr(0)
Attributes = Attributes & "Uid=Admin" & Chr(0) & "pwd=" & Chr(0)
Attributes = Attributes & "DBQ=" & Db_Path & Chr(0)
ret = SQLConfigDataSource(0, ODBC_ADD_SYS_DSN, Driver, Attributes)
'ret is equal to 1 on success and 0 if there is an error
If ret <> 1 Then
MsgBox "DSN Creation Failed"
End If
End Function
In the Immediate window, type the following line, and then
press ENTER: