A file DSN is nothing but a text file that contains all the parameters for an ODBC connection. To prove this, just go to the default directory that holds all File DSNs (this is the \Program Files\Common Files\ODBC\Data Sources directory on Windows's boot drive) and load any .dsn file into a text editor such as Notepad. For example, this is the typical contents of such a file:
[ODBC]
DRIVER=SQL Server
UID=sa
DATABASE=pubs
WSID=P2
APP=Visual Basic
SERVER=(local)
Description=Pubs in local SQL Server
That said, it's pretty easy to manually write a Visual Basic procedure that creates a File DSN. For example, the following routine creates a connection to any database on the local SQL Server, using the provided username and password:
' create a File DSN that points to a SQL Server database
'
' if ServerName is omitted, it connects to the local SQL Server
Sub CreateSQLServerDSN(ByVal DSNFile As String, ByVal DatabaseName As String, _
ByVal UserName As String, ByVal Password As String, _
Optional ByVal ServerName As String, Optional ByVal Description As String)
Dim fnum As Integer
Dim isOpen As Boolean
On Error GoTo ErrorHandler
fnum = FreeFile
Open DSNFile For Output As #fnum
isOpen = True
Print #fnum, "[ODBC]"
Print #fnum, "DRIVER=SQL Server"
Print #fnum, "UID=" & UserName
Print #fnum, "DATABASE=" & DatabaseName
Print #fnum, "SERVER=" & IIf(ServerName = "", "(local)", ServerName)
If Not IsMissing(Description) Then
Print #fnum, "DESCRIPTION=" & Description
End If
Close #fnum
Exit Sub
ErrorHandler:
If isOpen Then Close #fnum
Err.Raise Err.Number, , Err.Description
End Sub