Hola Claudio,la verdad es que lo resolví de una manera, pero estoy buscando algo parecido a lo de Dradi7, pero lamentablemente cuando traté de implementar su código en mi editor de codigo de vb.net, había muchos errores sintánticos y no supe como resolverlos o traspasarlos a una forma legible por el vb.net, a todo esto estoy con vb.net 2005 y sqlserver2000.
Bueno de la forma que lo hice pregunto si la bd se encuentra en la carpeta predeterminada del sqlserver, así:
If File.Exists("C:\Archivos de programa\Microsoft SQL Server\MSSQL\Data\" & Txtbasedatos.Text & "") = True Then
conexionBD = New OdbcConnection("Driver={SQL Server};Server=" & Txtservidor.Text & ";Database=" & Txtbasedatos.Text & ";uid=" & Txtusuario.Text & ";pwd=" & Txtcontrasena.Text & ";connect timeout=" & Txttimeout.Text & "")
'si existe la bd me conecto a ella
Try
conexionBD.Open()
MsgBox("Conectado correctamente")
Catch ex As Exception ' SqlException
MsgBox("Error en la conexión")
MsgBox(ex.Message)
Finally
If (conexionBD.State = ConnectionState.Open) Then
conexionBD.Close()
End If
End Try
Else
If MessageBox.Show("¡NO existe la base de datos " & Txtbasedatos.Text & "!" & vbCrLf & _
"¿Desea crearla?", "No existe base de datos", _
MessageBoxButtons.YesNo) = DialogResult.Yes Then
Call Crea_BDSQL() 'si no existe pregunto al usuario si desea crearla y ahí llamo a una función que la crea
Else
Exit Sub
End If
End If
El problema es que esto resulta solo si el archivo de la bd está en la carpeta del sql y no en cualquier otra del pc, para eso debería cambiar esta sentencia
If File.Exists("C:\Archivos de programa\Microsoft SQL Server\MSSQL\Data\" & Txtbasedatos.Text & "") = True Then ...
por algo como esto
Dim SQL As String = "IF EXISTS (SELECT * FROM master..sysdatabases WHERE Name = " & Txtbasedatos.Text & " )"
y hasta ahí llego, estoy tratando de ver como se hace, porque supongo que EXISTS es una función
Bueno eso sería todo, espero que te ayude en algo y que ambos lo podamos resolver, saludos.