Hola:
Estoy migrando una aplicación hecha en VB6 de Access 2000 a SQL Server
2005 Express, y me encuentro con varias dudas / problemas:
1.- De la base de datos anterior en Access 2000 vinculaba varias tablas
a otra base de datos también en Access 2000 en otra ubicación y actualizaba
estos vinculos por si la base de datos principal había cambiado de ubicación
con el siguiente código (ahora adaptado a SQL Server 2005 Express):
Public Function actualizaVinculosWeb() As Boolean
On Error GoTo ErrVin
actualizaVinculosWeb = False
With cnnActual
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.path & "\Web\Web.mdb"
.Open
End With
' Abro el catálogo
Set Cat = New ADOX.Catalog
Cat.ActiveConnection = cnnActual
If Not vinculaTabla("Productos") Then Exit Function
If Not vinculaTabla("Servicios") Then Exit Function
If Not vinculaTabla("Web_Contadores") Then Exit Function
If Not vinculaTabla("Web_Imagenes") Then Exit Function
If Not vinculaTabla("Web_Textos") Then Exit Function
actualizaVinculosWeb = True
ErrVin:
cnnActual.Close
End Function
Private Function vinculaTabla(NomTabla As String) As Boolean
On Error GoTo ErrTbl
vinculaTabla = False
Cat.Tables.Item(NomTabla).Properties("Jet OLEDB:Link Provider String") =
"Provider=SQLNCLI.1;Integrated Security=SSPI; " & _
"Data
Source=(local)\SQLEXPRESS; " & _
"AttachDbFilename=" & App.path
& "\Datos\Principal.mdf; " & _
"Persist Security Info=False;
"
Cat.Tables.Item(NomTabla).Properties("Jet OLEDB:Remote Table Name") =
NomTabla
vinculaTabla = True
ErrTbl:
End Function
Este código (adaptado tal cual a SQL Server 2005 Express) me devuelve el
error "No se pudo encontrar el archivo ISAM instalable.", lo he intentado
sin la propiedad AttachDbFilename, ubicando la base de datos en el
directorio de datos por defecto de SQL 2005, pero el resultado es el mismo
(el resto de la aplicación funciona perfectamente en ambos casos), ¿Alguien
sabe si es posible realizar esto? o ¿Tiene algún error la cadena de
conexión?.
2.- Mi otra pregunta es... ¿Como detecto si el sistema tiene instalado
.NET Framework 2.0 y SQL Server 2005 Express con un instalador de VB6
convencional (hecho con Wise 9.0? Supongo que tendré que buscar una
ubicación en concreto.
Un saludo y gracias por adelantado.
Leer las respuestas