Español (spanish formal Internacional)

Fermu Website

Home
FireBoard
Bienvenido(a), Invitado(a)
Por favor Ingresa o Registrar.    Contraseña Perdida?
Re: Boton de documento word en formulario de acces (1 viendo) (1) Invitado
Ir al fondo Publicar respuesta Favorito: 2
Tema: Re: Boton de documento word en formulario de acces
#8003
fprat (Usuario)
Ocasional
Publicaciones: 30
graphgraph
Usuario Desconectado Haga clic aquí para ver el perfil de este usuario
Re: Boton de documento word en formulario de acces 6 Meses, 1 Semana antes Karma: 0  
Hola otra vez:

He comprobado que el error que comenta Lourdes sí se produce cuando la forma de insertar un campo en una plantilla es intentar sustituir texto (a lo ProInf.net), pero no se da si, como sugiere Mónica, se opta por insertar el valor del campo en la posición de un marcador. Adjunto ejemplito en el que todo parece funcionar bien de ambas formas, pero si se aplica el botón al registro con un campo muuuuuuy largo, la sustitución de texto "casca".

Siendo así las cosas... ¿tiene sentido ver si puede arreglarse de alguna forma lo de la sustitución? Pienso que quizá sí, por si queremos lo siguiente:

* Prever la necesidad de insertar un mismo campo varias veces en la plantilla (por ejemplo: la clave de un registro en encabezado y pie).

* Automatizar en el código VBA el recorrido de los campos (a lo ProInf.net, pero a poder ser sin necesidad de recurrir a una consulta "ad hoc" y el correspondiente Recordset).

Me refiero a que tener código específico para cada campo que se quiera insertar no es lo más elegante. Si creáramos un nuevo campo en el formulario y quisiéramos incluirlo en los documentos generados a partir de la plantilla, tal y como están ahora las cosas, tendríamos que:

(1) Crear el correspondiente marcador en la plantilla.

(2) Añadir a la subrutina código específico para la inserción.

Sería mejor si bastara con sólo crear el marcador (o equivalente) y el código no hubiera que modificarlo porque siempre se encargara de recorrer automáticamente la lista de campos del formulario, intentando insertar cada uno en su lugar correspondiente (o lugares correspondientes) según indicara la plantilla. Como también puede pasar que algún campo del formulario no queramos volcarlo a Word, la sustitución textual parece entonces más adecuada, pues no "casca" cuando en la plantilla no se encuentra el texto a sustituir, mientras que intentar insertar texto en un marcador inexistente sí produce un error. Por cierto, Mónica, ¿sabrías cómo preguntar en VBA si un documento tiene o no un determinado marcador? ¿Y cómo preguntar si incluye o no cierto texto? ¿Puede hacerse un FIND desde VBA y averiguar lo anterior a partir de su respuesta? Gracias.

Bueno, creo que ya lo dejo por hoy.

Un saludo a todos.

Efe
Adjuntar fichero:
Nombre del fichero: V2.zip
Tamaño del fichero: 34336
 
Reportar al moderador   Reporte guardado Reporte guardado  
  El administrador ha desactivado el acceso a escritura pública.
#8004
Mónica (Administrador)
Administrador
Publicaciones: 899
graphgraph
Usuario Desconectado Haga clic aquí para ver el perfil de este usuario
Re: Boton de documento word en formulario de acces 6 Meses, 1 Semana antes Karma: 19  
hola family jejeje!

Bien a ver Federico yo te llamare pues Fede si lo prefieres y te explico lo del tema >>

QUOTE:
Nothing


Bien yo de programacion C++ ni flores osea he visto la estructura y no tengo idea de hacer ni tan siquiera un msgbox y me gustaria aprenderlo puesto que una clase de codigo que se puede exportar fuera del entorno windows, mi problema la falta de tiempo y que estoy liada con un monton de cosas y no llego a todo lo que quiero llegar

Tengo una manera de llevar los post o consultas un tanto diferente jajajaja! no me gusta dar la solucion y au si te he visto no me acuerdo [solamente lo hago con la gente que conozco por ejemplo en el foro de fermu y en las comunidades de microsoft a veces tambien lo hago de esa manera tambien creas humanidad entre el que consulta y el que responde usea se u bis a bis :P y me gusta mucho intercambiar ideas e incluso si hace falta discutir se discute pero tecnicamente aunque sea dificil por mensajes ya que a veces se pueden mal interpretar :P pero yo al menos siempre intento que no se mal interpreten y etc...] osea suelo dar respuestas para que pregunten porque asi se aprende mucho mas y a veces se me la cabeza y me equivoco en dar respuesta eh? sobre todo cuando no se muy bien lo que preguntan o no entiendo ni mu

Bueno a lo que vamos >>

Nothing

Imaginaros que teneis una caja de zapatos llena de objetos que necesitais en un momento determinado y vais a todos lados con la caja de zapatos, llegais a un sitio con la caja de zapatos y alguien os da un objeto para que lo pongais dentro de la caja y os preguntais? como lo meto dentro si esta llena? pues bueno como dentro de ella tiene objetos que ya no los necesito ahora mismo ya que ya han cumplido su mision pues los saco [libero la caja de peso ademas de adquirir espacio libre que me permitira llevar la caja mas agilmente a todos lados]

mas o menos para que se entienda


Pues ahora le van a regalar a mi sobrina para la comunión la [Wii] y ya tengo ganas ajajaj de verla para que jugemos , soy una viciada de los videojuegos, tengo la play station 2 y ahora estoy con un juego impresionante amos hacia años que no veia un acabado tan profesional en un video juego en cuanto a imagen, sonido, estrategia de juego , puzles para pensar tipo juegos de plataformas , guardado del juego usea se impresionante juego >> God or War 2

os dejo el enlace en youtube y eso que no se ve nitidamente en el video que han subido en youtube pero en realida es una pasada ya voy por el rio pantanoso jejejjejee! ay dios yo y mis videojuegos
http://es.youtube.com/watch?v=gwaUIShOM54

Bueno Andres mirate tambien la ayuda de vba en Access que viene muy completa a parte del enlace ofrecido por Fede yo aprendi muchisimo con la ayuda y sigo aprendiendo amos

y Lourdes me alegro de verte solete os dejo que me tengo que marchar a trabajar y ahora me mirare tu ultimo post Fede y a la noche comento y me miro el archivo de descarga que has subido

Ta lue !!
 
Reportar al moderador   Reporte guardado Reporte guardado  
 
Última modificación: 12-05-2008 18:06:00 Por Mónica.
  El administrador ha desactivado el acceso a escritura pública.
#8007
fprat (Usuario)
Ocasional
Publicaciones: 30
graphgraph
Usuario Desconectado Haga clic aquí para ver el perfil de este usuario
Re: Boton de documento word en formulario de acces 6 Meses, 1 Semana antes Karma: 0  
Hola, Andrés, navegando por ahí me he encontrado con un enlace que quizá pueda resultarte interesante: http://www.mvp-access.com/foro.

Dentro de esa página, donde hay muchos foros, he visto lo siguiente:

QUOTE:
Curso de Access y VBA (1 Ver)
Curso de programación VBA de Access escrito y creado por Eduardo Olaz


No tengo ni idea de cómo será el contenido, pero el título promete, ¿no?

Ya nos contarás si echas un vistazo...

Un saludo.

Fede
 
Reportar al moderador   Reporte guardado Reporte guardado  
 
Última modificación: 12-05-2008 23:55:58 Por fprat.
  El administrador ha desactivado el acceso a escritura pública.
#8027
Mónica (Administrador)
Administrador
Publicaciones: 899
graphgraph
Usuario Desconectado Haga clic aquí para ver el perfil de este usuario
Re: Boton de documento word en formulario de acces 6 Meses, 1 Semana antes Karma: 19  
Mu buenas

hoy estoy agotada asi que os saludo

Bien Fede lo del tema del reemplazo en office ya en general esta limitado a 255 caracteres amos que [hasta donde se] va a ser imposible realizar un reemplazo asi tal cual codificacion utilizada en word para reemplazar textos >> Desde cualquier aplicacion de office puedes probarlo desde la misma interfaz [Ctrl + B o Ctrl + F] que ya al querer remplazar mas caracteres de los admitidos salta error


OJO >> cuando hablamos de reemplazar existen otros metodos o truquillos para realizarlo >>

uno puede ser los marcadores y sus referencias cruzadas otro crear una seleccion y limpieza de texto buscado y luego aplicar su reemplazo OJO sin Utilizar [replace] etc....


Bueno me voy a terminar de ayudar por la comunidad de microsoft y a dormir pronto

ya me contareis ...

besicos
 
Reportar al moderador   Reporte guardado Reporte guardado  
  El administrador ha desactivado el acceso a escritura pública.
#8033
fprat (Usuario)
Ocasional
Publicaciones: 30
graphgraph
Usuario Desconectado Haga clic aquí para ver el perfil de este usuario
Re: Boton de documento word en formulario de acces 6 Meses, 1 Semana antes Karma: 0  
Hola, gente, he aquí mi contribución por lo que a "truquillos para saltarse el límite de 255 en el Replace de un Find&Replace" se refiere:

Código:

Const maxToReplace As Integer = 255 ... Dim lenPending As Long Dim labelToBeReplaced, nextStr, pendingStr As String Dim maxLeftByLabel As Integer ... With appWord.Selection.Find labelToBeReplaced = "<<Texto>>" maxLeftByLabel = maxToReplace - Len(labelToBeReplaced) .Text = labelToBeReplaced pendingStr = Me.texto.Value & "" 'para prevenir nulos lenPending = Len(pendingStr) While lenPending > 0 If lenPending > maxToReplace Then nextStr = Left(pendingStr, maxLeftByLabel) & labelToBeReplaced lenPending = lenPending - maxLeftByLabel pendingStr = Right(pendingStr, lenPending) Else nextStr = pendingStr lenPending = 0 pendingStr = "" End If .Replacement.Text = nextStr Call .Execute(Replace:=Word.WdReplace.wdReplaceAll) Wend End With
Idea básica: si el valor del campo que quiero poner en la plantilla ocupa más que el máximo (255), corto el valor del campo en trozos y los voy poniendo poco a poco (para eso el bucle WHILE). ¿De qué longitud han de ser esos trozos? Pues de un poco menos de 255, porque en cada iteración del bucle que no sea la última querré insertar: 1. Un trozo del valor del campo. 2. Una marca que me indique dónde insertar el trozo siguiente. Para ilustrar la idea, suponed que el límite, en vez de 255, es 10, que el valor del campo A es "desoxirribonucleico" y que en la plantilla tengo "ácido <<A>>". Tras la primera iteración (en la que sustituiríamos "<<A>>" por la cadena "desox<<A>>" de 10 caracteres), la situación sería ésta:
QUOTE:
ácido desox<<A>>
Tras la segunda, ésta:
QUOTE:
ácido desoxirrib<<A>>
Y, entonces, sólo quedarían 9 caracteres por insertar (menos del límite de 10) en la tercera iteración, cuyo resultado sería éste:
QUOTE:
ácido desoxirribonucleico
Andrés, Lourdes, preguntad lo que no entendáis, OK? Respecto a las otras formas de saltarse el límite que apunta Mónica, la de los marcadores es la que ya utilizó ella, mientras que lo de "selección", "limpieza" y "reemplazo" debe de ser similar a esto, que no acabo de entender: http://support.microsoft.com/kb/163192/en-us/ Supongo que será cosa de irse a la ayuda para ver qué significa exactamente cada una de las instrucciones del ejemplo y cuáles son aplicables a nuestro caso del volcado de Access a Word... Ya diréis. Un saludo. Fede
Adjuntar fichero:
Nombre del fichero: V3.zip
Tamaño del fichero: 34441
 
Reportar al moderador   Reporte guardado Reporte guardado  
 
Última modificación: 14-05-2008 23:00:33 Por fprat.
  El administrador ha desactivado el acceso a escritura pública.
#8034
fprat (Usuario)
Ocasional
Publicaciones: 30
graphgraph
Usuario Desconectado Haga clic aquí para ver el perfil de este usuario
Re: Boton de documento word en formulario de acces 6 Meses, 1 Semana antes Karma: 0  
Por seguir comentando las diferentes soluciones al problema:

1. Observad que la aproximación con "Find&Replace" (en adelante, F&R) permite que en la plantilla haya más de una marca o etiqueta de inserción para el mismo campo. ¿Sería esto posible con marcadores? No me parece.

2. Para el caso del campo largo con varios párrafos (registro 4 en el ejemplo del paquete "V3.zip" de mi mensaje anterior), me salen formatos de párrafo diferentes insertando con marcadores o con F&R. ¿Alguna idea?

3. El objetivo último sería que la subrutina recorriera automáticamente, mediante un nuevo bucle, los campos del formulario. (En otro hilo planteé la cuestion de si esto era posible sin necesidad de llevar a cabo una consulta y construir un Recordset. Mónica, ¿tienes alguna idea al respecto? ¿Algún sitio donde pudiera buscar la respuesta?) En este caso, queda feo que, si de un campo largo del formulario no hay marcas en la plantilla, el código se quede perdiendo el tiempo en "bucles troceadores" innecesarios. ¿Sabéis cómo preguntar desde VBA a un documento Word si contiene cierta subcadena (la marca) o no lo hace?

Quedo a la espera de vuestras opiniones y sugerencias.

Fede

PS: Y también me podéis comentar cómo hacéis para respirar en las pruebas de natación del juego de las Olimpiadas de la Wii: ¿hay que dejar de bracear? ¿La pulsación ha de ser breve o mantenida? Yo es que soy más de deportes que de matar bichos
 
Reportar al moderador   Reporte guardado Reporte guardado  
 
Última modificación: 14-05-2008 23:27:10 Por fprat.
  El administrador ha desactivado el acceso a escritura pública.
Ir al inicio Publicar respuesta
Potenciado por FireBoardObtener las últimas entradas directamente a su escritorio
Web www.fermu.com

Autentifícate



Gente Online

Tenemos 230 invitados conectado
Joomla Templates by JoomlaShack