Detectar la memoria USB en la unidad E:\

Resuelto
Lenouveauapprenti Mensajes publicados 306 Fecha de registro   Estado Miembro Última intervención   -  
Lenouveauapprenti Mensajes publicados 306 Fecha de registro   Estado Miembro Última intervención   -
Hola

Nota: Entorno de trabajo VB6 con Access 2007

Busco un comando que me avise si la unidad E:\ está vacía (no está conectada a una memoria USB)

Gracias por tu ayuda

6 respuestas

  1. Lenouveauapprenti Mensajes publicados 306 Fecha de registro   Estado Miembro Última intervención   2
     
    Hola,

    Gracias por el enlace, sinceramente no logro entender bien cómo debería utilizar este método de DriveExists.

    He intentado con el código a continuación sin éxito.

     Dim oFileSysObj If oFileSysObj.driveexists("E") = False Then MsgBox "Por favor, inserte una memoria USB" Exit Sub End If 


    Gracias por cualquier ayuda.
    0
    1. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588
       
      "sin resultado": ¿qué observas? nada pasa, ¿ningún mensaje de error?
      normalmente, se hace así:
      Dim oFileSysObj as Scripting.FileSystemObject set oFileSysObj = new Scripting.FileSystemObject If oFileSysObj.driveexists("E") = False Then MsgBox "Por favor inserte una memoria USB" Exit Sub End If
      0
    2. pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   2 773
       
      Hola,

      Aparentemente, no has leído bien el enlace de yg_be.
      O lo has hecho de manera superficial...

      Para los lectores con un medio extraíble, el método DriveExists devuelve True incluso si no hay ningún medio presente.
      Utiliza la propiedad IsReady del objeto Drive para determinar si un lector está listo.


      Sub ensayo() Dim fs As Object, driv As Object Set fs = CreateObject("Scripting.FileSystemObject") 'creación de un objeto FileSystemObject On Error Resume Next Set driv = fs.GetDrive(fs.GetDriveName("E:")) 'creación de un objeto Drive al que se le asigna el lector E: On Error GoTo 0 If Not driv Is Nothing Then 'Si el lector E: existe If driv.IsReady Then 'si está listo (medio insertado) MsgBox "Genial, hay una memoria USB en el lector E:" Else 'si no está listo (sin medio insertado) MsgBox "Por favor inserta una memoria USB" End If Else 'si el lector E: no existe... MsgBox "El lector E: no existe" End If End Sub


      No puedo probar este código, no tengo un lector E:...
      0
  2. Lenouveauapprenti Mensajes publicados 306 Fecha de registro   Estado Miembro Última intervención   2
     
    Al contrario, lo he leído, solo que en esta función de creación de objeto
    (CreateObject("Scripting.FileSystemObject")
    la aplicación me enviaba un mensaje relacionado con ActiveX
    Además, para serte sincero, no lo he asimilado bien.

    Voy a intentar tu propuesta y te diré el resultado.

    Gracias a ti, a yg_be y a todos.
    0
  3. Lenouveauapprenti Mensajes publicados 306 Fecha de registro   Estado Miembro Última intervención   2
     
    Votre code funciona a la perfección, al cual he añadido algunas líneas para mis necesidades, pero he fallado una vez más.
    La idea una vez que se detecta la unidad USB es verificar si la ruta de la base de datos existe.
    Por favor, corrija lo que he añadido.

     Dim fs As Object, driv As Object 'primera declaración añadida Dim Doss As String Doss = "E:\InstAppSLiquidations\AppSLiquidations\BDLiquidations.mdb" Set fs = CreateObject("Scripting.FileSystemObject") 'creación de un objeto FileSystemObject On Error Resume Next Set driv = fs.GetDrive(fs.GetDriveName("E:")) 'creación de un objeto Drive al que se asigna el lector E: On Error GoTo 0 If Not driv Is Nothing Then 'Si el lector E: existe If driv.IsReady Then 'si está listo (médium insertado) ' segunda adición: Asignación de una ruta hacia la BD If fs.FileExists(Doss) Then 'Verificación de la existencia de la ruta MsgBox "Ruta encontrada" Call CheminCopies 'Ruta para copiar los registros faltantes Exit Sub Else MsgBox "Ruta no encontrada" Exit Sub End If 'MsgBox "Cool, hay una clave en el lector E:" Else 'si no está listo (sin medio insertado) MsgBox "Por favor, inserte una unidad USB" End If Else 'si el lector E: no existe... MsgBox "El lector E: no existe" End If 
    0
  4. Lenouveauapprenti Mensajes publicados 306 Fecha de registro   Estado Miembro Última intervención   2
     
    Gracias por el enlace, francamente no he podido aplicar lo que he leído, por falta de comprensión.
    He intentado lo siguiente sin resultado, aunque lo intenté antes de usar el método: driv.GetAbsolutePathName

     'Asignar un camino a la BD driv.FolderExists ("E:\InstMezAppSLiquidations\MezAppSLiquidations\BDLiquidations.mdb") If driv.FolderExists = Doss Then 'Verificación de la existencia del camino MsgBox "Camino encontrado" Call CheminCopies 'Camino para copiar los registros faltantes Exit Sub Else MsgBox "Camino no encontrado" Exit Sub End If 'MsgBox "Genial, hay una llave en la unidad E:" Else 'si no está lista (sin medio insertado) MsgBox "Por favor, inserte una memoria USB" End If 
    0
    1. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588
       
      "sans resultado": ¿ningún mensaje de error?
      más bien así:
      if fs.FolderExists("E:\InstAppSLiquidations\AppSLiquidations") then
      0
  5. Lenouveauapprenti Mensajes publicados 306 Fecha de registro   Estado Miembro Última intervención   2
     
    Gracias por todo.
    Con mis sinceros agradecimientos.
    0