Saludos a todos.
Estoy intentando desde vba para access establecer una conexión a una carpeta compartida de un servidor Linux. Brujuleando por la red he encontrado algo que funciona parcialmente. Os pongo el código:
Option Compare Database
Function Establecer_Conexion()
Dim NomeLocal As String
Dim NomeRed As String
Dim usuario As Variant
Dim Password As Variant
NomeLocal = "" 'Mapeamos sin asignar letra. Si quixeramos poder?amos por por ex. Z:
NomeRed = "\\servidor\carpeta"
usuario = "prueba"
Password = "1234"
If Mapear_Unidad_De_Red(NomeLocal, NomeRed, usuario, Password) Then
Aviso = MsgBox("CONEXION A SERVIDOR CORRECTA", vbOKCancel, "ATENCI?N")
Else
Aviso = MsgBox("ERROR DE CONEXION A SERVIDOR", vbOKCancel, "ERROR")
End If
End Function
Function Mapear_Unidad_De_Red(LocalName As String, RemoteName As String, Optional UserName As Variant, Optional Password As Variant) As Boolean
'MANEJADOR DE ERRORES PARA LA FUNCI?N
On Error GoTo ErrFunction
Dim obj_Wsh As WshNetwork
On Local Error Resume Next
'NUEVO OBJETO WshNetwork
Set obj_Wsh = New WshNetwork
'VERIFICAR LOS PARAMETROS DE USUARIO Y CONTRASE?A
If Not (IsMissing(UserName) And _
IsMissing(Password)) And _
txtUsuario <> vbNullString And _
txtPassword <> vbNullString Then
obj_Wsh.MapNetworkDrive LocalName, RemoteName, , UserName, Password
Else
obj_Wsh.MapNetworkDrive LocalName, RemoteName
End If
Select Case Err.Number
Case 0 'NO HUBO ERROR
Mapear_Unidad_De_Red = True
'ELIMINA LA REFERENCIA
Set obj_Wsh = Nothing
Exit Function
Case -2147024829
MsgBox " El recurso de red no existe ", vbCritical
Case -2147024811
MsgBox " El recurso de red ya est? mapeado ", vbCritical
Case -2147022646
MsgBox " error: Verifique si el nombre de " & "la unidad es correcto ", vbCritical
Case Else
'MsgBox "Nombre de usuario o password incorrecto", vbCritical
End Select
Mapear_Unidad_De_Red = False
'ELIMINA LA REFERENCIA
Set obj_Wsh = Nothing
Exit Function
ErrFunction:
MsgBox Err.Description
'ELIMINA LA REFERENCIA
Set obj_Wsh = Nothing
End Function
El problema que me plantea, es que si pongo las credenciales manualmente a través de Windows, luego puedo conectarme y me valida, pero si intento hacerlo desde la rutina, no me valida las credenciales. Alguna sugerencia?
Mil gracias y un saludo:
Manolo.