none
Problema con Application.FileSearch.Execute y Microsoft Office 2003 RRS feed

  • Pregunta

  • Hola,

    Tengo una aplicación hecha en Microsoft Office 2002 (xp) y funciona bien en Microsoft 2003 pero cuando la he pasado me deja de funcionar sierto código. Os lo pongo.

       Set fs = Application.FileSearch
       With fs
          .LookIn = "C:\"
          .FileName = "mid2.pnp"
          If .Execute > 0 Then
             Application.CloseCurrentDatabase
          End If
       End With
       
       Set fs = Application.FileSearch
       With fs
          .NewSearch
          .LookIn = "C:\"
          .FileName = "mid2.pnp"
          If .Execute < 1 Then
             CrearNuevaTabla
          End If
       End With

    El caso que este código funciona perfectamente en la versión 2002 y sin problemas pero en la versión 2003 cuando llega a la segunda busqueda del archivo mid2.pnp pues .Execute devuelve 0 cuando yo espero 1 pues existe ese archivo y espero 1 porque se refiere a que existe 1 archivo igual al solicitado.

    Por favor me ayudan o me dan una alternativa posible este problema. Gracias.


    Heimdal

    miércoles, 17 de octubre de 2012 14:21

Respuestas

  • La solución ha sido algo compleja. Como estoy en una oficina con una red y varios Microsoft Office he investigado la versión en la cual funciona el objeto FileSearch con la versión he buscado en los archivos de Microsoft y páginas externas y junto en lo último he obtenido un HotFix que resuelve el problema.

    El problema era un daño en la instalación de Microsoft Office 2003. Dato a saber:

      • Microsoft Office 2003 es original aun así no se instalo bien aunque en ningún momento informó de ningún fallo en la instalación.
      • Todo a ocurrido en una instalación limpia de Microsoft Windows XP así como con software totalmente legal.
      • Microsoft Office 2003 en su cd original no tenia ningún service pack.
      • Fue instalado a travez de un cd compartido en la red.

      Orden de instalación para la feliz reparación:

      1. Instalamos Office 2003 el cual ya sabemos que instala con daños ocultos.
      2. Instalamos Service Pack 3
      3. Instalamos un parche para corrección ortográfica que existe. Obtenemos la versión siguiente "Microsoft Office Access 2003 (11.8166.8172) SP3" en comparación con una versión que funciona la cual tendrá la siguiente versión: "Microsoft Office Access 2003 (11.8321.8341) SP3"
      4. Por último instalamos el HotFix de la siguiente página: HotFix que repara las instalaciones con daños de Microsoft Office 2003

    Espero que le sirva mis horas de trabajo a alguien, llevo varios días con el problema. Y por favor si les gusto denme un VOTO POSITIVO.

    Gracias...


    Heimdal

    • Marcado como respuesta appmobiles.tk miércoles, 17 de octubre de 2012 19:14
    miércoles, 17 de octubre de 2012 19:14
  • Otra solución esta vez por código la da Microsoft Community en este enlace para mi de oro para mi caso: Y lo resuelve Peter Schleif

    Os pongo el código que el pone debe ser readaptado por ejemplo a una function que retorne un boolean indicando que existe el archivo.

     Peter Schleif replied on
    
    
    You could use this replacement:
    Sub Test2007()
        Dim i As Long
        Dim filename As String
    
        filename = Dir("C:\MyDocuments\File*.xls")
    
        If filename = "" Then
            MsgBox "The Workbook does not exist"
        Else
            While filename <> ""
                MsgBox filename
                filename = Dir
            Wend
        End If
    End Sub
    
    Peter

    Espero que de una forma o de otra se os solucione el problema y por favor no olviden el VOTO POSITIVO, Gracias.


    Heimdal

    • Marcado como respuesta appmobiles.tk jueves, 18 de octubre de 2012 9:15
    jueves, 18 de octubre de 2012 9:15

Todas las respuestas

  • La solución ha sido algo compleja. Como estoy en una oficina con una red y varios Microsoft Office he investigado la versión en la cual funciona el objeto FileSearch con la versión he buscado en los archivos de Microsoft y páginas externas y junto en lo último he obtenido un HotFix que resuelve el problema.

    El problema era un daño en la instalación de Microsoft Office 2003. Dato a saber:

      • Microsoft Office 2003 es original aun así no se instalo bien aunque en ningún momento informó de ningún fallo en la instalación.
      • Todo a ocurrido en una instalación limpia de Microsoft Windows XP así como con software totalmente legal.
      • Microsoft Office 2003 en su cd original no tenia ningún service pack.
      • Fue instalado a travez de un cd compartido en la red.

      Orden de instalación para la feliz reparación:

      1. Instalamos Office 2003 el cual ya sabemos que instala con daños ocultos.
      2. Instalamos Service Pack 3
      3. Instalamos un parche para corrección ortográfica que existe. Obtenemos la versión siguiente "Microsoft Office Access 2003 (11.8166.8172) SP3" en comparación con una versión que funciona la cual tendrá la siguiente versión: "Microsoft Office Access 2003 (11.8321.8341) SP3"
      4. Por último instalamos el HotFix de la siguiente página: HotFix que repara las instalaciones con daños de Microsoft Office 2003

    Espero que le sirva mis horas de trabajo a alguien, llevo varios días con el problema. Y por favor si les gusto denme un VOTO POSITIVO.

    Gracias...


    Heimdal

    • Marcado como respuesta appmobiles.tk miércoles, 17 de octubre de 2012 19:14
    miércoles, 17 de octubre de 2012 19:14
  • Otra solución esta vez por código la da Microsoft Community en este enlace para mi de oro para mi caso: Y lo resuelve Peter Schleif

    Os pongo el código que el pone debe ser readaptado por ejemplo a una function que retorne un boolean indicando que existe el archivo.

     Peter Schleif replied on
    
    
    You could use this replacement:
    Sub Test2007()
        Dim i As Long
        Dim filename As String
    
        filename = Dir("C:\MyDocuments\File*.xls")
    
        If filename = "" Then
            MsgBox "The Workbook does not exist"
        Else
            While filename <> ""
                MsgBox filename
                filename = Dir
            Wend
        End If
    End Sub
    
    Peter

    Espero que de una forma o de otra se os solucione el problema y por favor no olviden el VOTO POSITIVO, Gracias.


    Heimdal

    • Marcado como respuesta appmobiles.tk jueves, 18 de octubre de 2012 9:15
    jueves, 18 de octubre de 2012 9:15