La Web del Programador: Comunidad de Programadores
 
    Pregunta:  33224 - RECURSOS COMPARTIDOS CON PASSWORD
Autor:  Marco A. zamudio
Hola a todos,

Tengo una base de datos en una pc, la cual está en red y la tengo en una carpeta compartida con un password, mi pregunta es, como puedo accesar (desde Vb) hacia la base de datos sin que me diga que no hay conexion con la base de datos, por la falta del password.

>Gracias!

  Respuesta:  Vladimir Tapia
yo tenia el mismo problema y lo resolvi creando una unidad de red y una ves que terminaba borraba la unidad de red!!! esto lo ice con el comando de net

hay te va un ejemplo de como acerlo!!!
net use z: dircompleto Password /user:Usuario

en visual basic ejecute el comando con la instuccion shell de la siquiente forma

Private Const INFINITE = &HFFFF
Private Const SYNCHRONIZE = &H100000
Private Declare Sub WaitForSingleObject Lib "kernel32.dll" _
(ByVal hHandle As Long, ByVal dwMilliseconds As Long)

Private Declare Function OpenProcess Lib "kernel32.dll" _
(ByVal dwDA As Long, ByVal bIH As Integer, ByVal dwPID As Long) As Long

Private Declare Sub CloseHandle Lib "kernel32.dll" (ByVal hObject As Long)

Dim process_id As Long
Dim process_handle As Long
process_id = Shell("c:\windows\system32\command.com /c net use z: " & strServer1 & " " & strPassword1 & " /user:" & strUsuario1)

esto que sigue es para que el programa no continue asta que se aya terminado de ejecutar la instruccion anterior

process_handle = OpenProcess(SYNCHRONIZE, 0, process_id)
If process_handle <> 0 Then
WaitForSingleObject process_handle, INFINITE
CloseHandle process_handle
End If

y para borrar la unidad de red es de la siguiente forma

process_id = Shell("c:\windows\system32\command.com /c net use z: /delete /yes")
process_handle = OpenProcess(SYNCHRONIZE, 0, process_id)
If process_handle <> 0 Then
WaitForSingleObject process_handle, INFINITE
CloseHandle process_handle
End If

espero que te sirva de algo!!!