Asociar un Documento de Word en Access por dos campos

Necesito hacer un botón de comando en un Formulario de MS Access que:
1- Abra un documento de WORD nuevo y que quede automáticamente asociado a
dos campos de un formulario, por ejemplo CAMPO1 = NombreUsuario y CAMPO2 = NumeroDeRegistro
2-Otro botón que abra el documento que se guardo en el punto 1...
CONCLUSIÓN: Que Access me abra el Documento de Word correspondiente al CAMPO1 y al CAMPO2

1 respuesta

Respuesta
1
Primeramente gracias por contactar y utilizaremos algunos métodos sugeridos por microsoft para realizar lo que pretendes. Crearás una tabla que llamarás Tabla_documentos con los campos que me pusiste más arriba (NombreUsuario y NumeroDeRegistro, y una tercera que se llamará Ruta). Crea tu formulario, que le podemos llamar EjemploWordAccess, crea un módulo standard y coloca el siguiente código:
Function DocumentoNuevo()
        Dim WordObj As Object
        Set WordObj = CreateObject("Word.Basic")
        WordObj. Filenew
        ' Crea un nuevo documento de word y muestra.
        WordObj. AppShow
        ' Selecciona todo el documento y lo formatea a negrita (depende de lo que quieras hacer para formatearlo).
        WordObj. EditSelectAll
        WordObj. Bold 1
        ' Finalmente, graba y cierra el documento.
        WordObj. FileSave
        WordObj. FileClose (1)
        WordObj. Appclose
        Set WordObj = Nothing
 End Function
Crea un boton en tu formulario y coloca la llamada en el evento 'Al hacer click'
'------------------
Dim Usuario as String
Dim Registro as string
Usuario = Forms! Usuarios! TxtUsuario 'toma usuario de un form usuario oculto al iniciar sesión
Registro = Dcount('NumeroRegistro','Tabla_documentos') 'cuenta para numerar registros
me.NombreUsuario = Usuario 'asigna a los campos respectivos
me.NumeroDeRegistro = Registro & ".doc"
Call Documento().
Aquí puedes agregar algunas cosas como 'origen del registro' de tu formulario la tabla que creamos (Tabla_documentos' y entonces al hacer cada click va crear tu documento de word y guardar con los registros respectivos en tu tabla, pero vos podes definir ya eso con tu usuario y el numero de registro haciendo un DCount('campo','tabla', criterio) y escribiendo este en la tabla. Ten en cuenta que cuando abres el form sea en modo ADDNEW.
En cuanto al punto dos, debes guardar el archivo con el mismo nombre que asigna tu bd teniendo en cuenta la ruta que tendrá por 'valor predeterminado' tus archivos. Puedes utilizar lo siguiente para obtener algo más preciso para guardar el documento:
CurrentProject.path & "\ArchivosDOC\" & Registro & ".doc"
Luego insertas una nueva función en el modulo creado anteriormente con el siguiente código modificado:
Function DocumentoAbrir()
        Dim WordObj As Object
        Set WordObj = CreateObject("Word.Basic")
        WordObj.FileOpen CurrentProject.path & "\ArchivosDOC\" & Registro & ".doc"
        WordObj. AppShow
        WordObj. EditSelectAll
        WordObj. Bold 1
        WordObj. FileSave
        WordObj. FileClose (1)
        WordObj. Appclose
        Set WordObj = Nothing
End Function
Llama con CALL a la función y ya podrás ejecutar.
Si me envías tu correo podré facilitarte mejor lo que pides.
Hola diegofvillar! Muchísimas gracias por tu respuesta!
Te comento que soy MUY NOVATO en esto de access y si bien entiendo lo que me explicás en algún punto me siento algo perdido; como por ejemplo en qué parte coloco la ruta de la carpeta donde se guardarán los ".doc" y algunas cosillas más...
Si me podes enviar un ejemplo funcional estaría muy agradecido, Si no, veré como me hago entender para poder ir concretando lo que necesito.
Mi e-mail es [email protected]
Desde ya, muy agradecido.
Saludos!
Dreamermx.-
Te envíe a tu correo el ejemplo que comenté. Si editas el código, están comentadas las líneas sobre qué hace cada paso.
Diego, si me ha llegado el ejemplo y a primera vista me pareció excelente!, no pude adaptarlo a lo que necesito exactamente, esta tarde lo miro bien, pero mi falta de experiencia me va en contra... Te comento como lo necesitaría:
1- Tanto el NombreUsuario como el NumeroRegistro y un ID los toma de una tabla con datos, llamada MedidasAdoptadas ...
La idea es que: Al presionar el botón, tome esos 3 valores de esa tabla para crear el Documento y obviamente también para abrirlo ... Dependiendo en que registro del Form esta situado Obviamente...
2- El formato del nombre del documento de word, tendría que contener esos 3 valores:
Por ejemplo: "Guillermo_NR-01_ID01.doc"
... presione enviar sin darme cuenta...
Gracias y espero haberme expresado bien en lo que requiero
Vayamos por parte:
"1- Tanto el NombreUsuario como el NumeroRegistro y un ID los toma de una tabla con datos, llamada MedidasAdoptadas ...
La idea es que: Al presionar el botón, tome esos 3 valores de esa tabla para crear el Documento y obviamente también para abrirlo ... Dependiendo en que registro del Form está situado Obviamente..."

Si cuentas con usuarios definidos en tu sistema sería mucho más fácil porque mediante el usuario o su login, podríamos buscar los demás datos como NumeroRegistro e ID con la función DLookUP('datoabuscar','tabla','criterios'). Si no cuentas con usuarios, entonces tendremos que 'idearnos' la manera de como hacerlo de la siguiente manera:
a. Crea cuadros combinados en tu formulario (3) que hagan consulta sobre la tabla 'MedidasAdoptadas', uno solo para el Usuario (llamado comboUsuario), otro solo para el Registro (comboReg) y otro para el ID (comboID) (para que sea más fácil para ti para ir concatenando).
b. Guarda los cambios, y ejecutas el depurador, y agrega estas lineas:
Me.Ruta_Archivo = CurrentProject.Path & "\DOCs\" & Me.comboUsuario & "_" & Me.comboReg &  "_" & Me.comboID & ".doc"
c. Depuras nuevamente, guardas y luego ejecutas en tu formulario.
"2- El formato del nombre del documento de Word, tendría que contener esos 3 valores:
Por ejemplo: "Guillermo_NR-01_ID01.doc""

Una vez que hayas hecho el punto anterior, ya te saldrá con ese nombre de documento lo que precisas.
En cuanto a las 'marcas' de código que te aparecen en el depurador según tu mail, presiona 'CTRL+Mayus+F9' para borrar todos los puntos de interrupción (por ahí no ha sido borrado totalmente).
Diego, realmente EXCELENTE tu explicación y todo el material que me has enviado, te lo agradezco muchísimo! Me ha sido de gran utilidad!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas