Para crear un dsn....en tiempo de ejecución....
Código:
'API PARA CREAR DSN DE SISTEMA
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
Private Const ODBC_ADD_SYS_DSN As Long = 4 ' Se creará un DSN de sistema
Private Const vbAPINull As Long = 0& ' Puntero NULL
Sub crearDSN()
Dim dl As Long ' Valor devuelto por la función API
Dim sAttributes As String ' Aributos
Dim sDriver As String ' Nombre del controlador
Dim sDescription As String ' Descripción del DSN
Dim sDsnName As String ' Nombre del DSN
On Error GoTo errorDSN
' Establecemos los atributos necesarios
sDsnName = "usuarios"
sDescription = "DSN de sistema para controlar los permisos de los usuarios"
sDriver = "MySQL ODBC 3.51 Driver"
' Los pares de cadenas acabarán en valor Null
sAttributes = "DSN=" & sDsnName & Chr(0)
sAttributes = sAttributes & "Server=localhost" & Chr$(0)
sAttributes = sAttributes & "User=root" & Chr$(0)
sAttributes = sAttributes & "Description=" & sDescription & Chr(0)
sAttributes = sAttributes & "Database=mysql" & Chr(0)
' Si deseamos utilizar la autenticación de Windows NT, deberemos de
' especificarlo en la cadena de atributos
sAttributes = sAttributes & "Trusted_Connection=True" & Chr(0)
' Creamos el nuevo origen de datos de usuario especificado.
' Si deseamos que aparezca el cuadro de diálogo, tendremos que
' especificar la propiedad «hWnd» del formulario donde se realiza
' la llamada a la función API.
dl = SQLConfigDataSource(vbAPINull, ODBC_ADD_SYS_DSN, sDriver, sAttributes)
If dl Then
'Se ha creado bien
Else
MsgBox "Ha ocurrido un error mientras se creaba el DSN de Sistema para MySQL. Posiblemente necesite tener permisos de Aministrador en su máquina." & vbCrLf & "Consulte con el Aministrador de su equipo", vbCritical, "Error"
End
End If
Exit Sub
'ERROR
errorDSN:
MsgBox "Ha ocurrido un error mientras se creaba el DSN de Sistema para MySQL. Posiblemente necesite tener permisos de Aministrador en su máquina." & vbCrLf & "Consulte con el Aministrador de su equipo", vbCritical, "Error"
End
End Sub
el ejemplo es para MySQL. Tendrás que cambiar el control ODBC por el de SQL Server y los nombres de la base de datos, usuario, etc...
salu2
pd. En tiempo de diseño también se puede, igual que con Access, pero en lugar del motor Microsoft Jet... tendrás que utilizar el de SQL Server.