• Viernes 19 de Abril de 2024, 18:19

Autor Tema:  pasar variable a comando Shell  (Leído 2935 veces)

Goliat2000

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
pasar variable a comando Shell
« en: Miércoles 21 de Septiembre de 2011, 20:56 »
0
Hola a todos; quiero pediros ayuda para una línea de código VBA que no acierto a conseguir. Tengo un formulario de consulta de libros, cuyo identificador es IdLibro; a su vez, en formato word, tengo unos escritos sobre comentarios a los libros. Cada word se identifica con el mismo numero de Idlibro; es decir, IdLibro= 12 , pues el escrito de ese libro se llama 12.doc. En el formulario de Access tengo puesto un botón de comando que al hacer click, quiero que me abra el texsto de word que corresponda en ése  momento al IdLibro que tenga el formulario. Ejecuto la siguiente línea de código:

     X = Me.IdLibro
    Call Shell("C:\Microsoft Office\OFFICE11\WINWORD.exe C:\LecturasLibros\'" & X & ".doc")
 
y no me funciona a medias; el codigo me abre el word, pero no  me abre el texto de word que debe abrir; la verdad,  no se como podria pasarle la variable X teniendo en cuenta que, dicha variable X debe recoger el identificador de libro. Además, también me da un error en "X=Me.IdLibro" de que no coinciden los tipos.

Por favor, ¿alguien podría ayudarme e indicarme como sería el código correcto?

Gracias anticipadas y un saludo a todos

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re:pasar variable a comando Shell
« Respuesta #1 en: Jueves 22 de Septiembre de 2011, 21:27 »
0
Hay un error en, un apostrofe

Citar
Call Shell("C:\Microsoft Office\OFFICE11\WINWORD.exe C:\LecturasLibros\'" & X & ".doc")

Y creo que seria mejor utiliza un método como este en lugar de shell (que seria mejor ShellExecute)  :
Código: Visual Basic
  1. Function AbrirArchivo(RutaDoc As String) As Boolean
  2. On Error GoTo xError
  3.     Dim Word As Object
  4.     Set Word = CreateObject("Word.Application")
  5.         Word.Visible = True
  6.         Word.Documents.Open (RutaDoc)
  7.     Set Word = Nothing
  8.     AbrirArchivo = True
  9. xError:
  10.     If Err.Number > 0 Then
  11.        AbrirArchivo = False
  12.     End If
  13. End Function
  14.  

Uso:
Código: Visual Basic
  1. X = Me.IdLibro
  2. If AbrirArchivo("C:\LecturasLibros\" & X & ".doc") Then
  3.    MsgBox "No fue posible abrir el archivo", vbCritical
  4. End If

Saludos
« última modificación: Jueves 22 de Septiembre de 2011, 21:35 por F_Tanori »
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================