Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Salto página

Estas en el tema de Salto página en el foro de Visual Basic clásico en Foros del Web. Disculpad, queria preguntar como se pone en VBA 6.0 en access 2003 generando un documento de word un salto de página. Muchas gracias de antemano....
  #1 (permalink)  
Antiguo 01/09/2009, 05:35
 
Fecha de Ingreso: julio-2009
Mensajes: 14
Antigüedad: 9 años
Puntos: 0
Salto página

Disculpad, queria preguntar como se pone en VBA 6.0 en access 2003 generando un documento de word un salto de página. Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 01/09/2009, 11:19
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 12 años
Puntos: 29
Respuesta: Salto página

No tengo ni idea de trabajar con documentos Word, casi ni idea de Access y tu mensaje no lo llego a decodificar, pero, en fin, he googleado un rato y he encontrado esto en otro foro.
Igual te sirve, y viendo que nadie te contesta pues ahi lo pongo.

Pues con Microsoft Word referenciado en el proyecto
copia y pega este ejemplo, que aquí es difícil de leer:

Dim objWord As Word.Application
Set objWord = New Word.Application 'Creo el objeto word
objWord.Documents.Open "c:\hola.doc" 'Abro el documento
objWord.Visible = True 'Pongo visible a word, se verá con el documento abierto.
objWord.Selection.MoveDown wdLine, 3 'Bajo el cursor 3 lineas y se sitúa al inicio de la 4ª linea.
objWord.Selection.InsertBreak Type:=wdPageBreak 'Meto el salto de página.

Si te sirve, recuerda la próxima vez visitar primero a San Google.

Saludos by PKJ
  #3 (permalink)  
Antiguo 02/09/2009, 00:48
 
Fecha de Ingreso: julio-2009
Mensajes: 14
Antigüedad: 9 años
Puntos: 0
Respuesta: Salto página

Cita:
Iniciado por pkj Ver Mensaje
No tengo ni idea de trabajar con documentos Word, casi ni idea de Access y tu mensaje no lo llego a decodificar, pero, en fin, he googleado un rato y he encontrado esto en otro foro.
Igual te sirve, y viendo que nadie te contesta pues ahi lo pongo.

Pues con Microsoft Word referenciado en el proyecto
copia y pega este ejemplo, que aquí es difícil de leer:

Dim objWord As Word.Application
Set objWord = New Word.Application 'Creo el objeto word
objWord.Documents.Open "c:\hola.doc" 'Abro el documento
objWord.Visible = True 'Pongo visible a word, se verá con el documento abierto.
objWord.Selection.MoveDown wdLine, 3 'Bajo el cursor 3 lineas y se sitúa al inicio de la 4ª linea.
objWord.Selection.InsertBreak Type:=wdPageBreak 'Meto el salto de página.

Si te sirve, recuerda la próxima vez visitar primero a San Google.

Saludos by PKJ
Muchas gracias por la ayuda, he visitado san google, puesto que estaba hasta la ... pq ya no me salian pagina en la búsqueda que tuviesen relación decidi colocar la duda a ver si alguien conocia sobre el tema. La linea esta en concreto no me funciona:
"objWord.Selection.InsertBreak Type:=wdPageBreak 'Meto el salto de página. "
Me da un error, no entiendo porque, puesto que tengo puesta la referencia a Microsoft office 11.0 object library que es la necesaria para trabajar con los word object.
Siento que no entendieses mi pregunta. Voy a probar la linea anterior a la que he dicho anteriormente a ver si me funciona, esta linea:
"objWord.Selection.MoveDown wdLine, 3 'Bajo el cursor 3 lineas y se sitúa al inicio de la 4ª linea. "
Muchas gracias, ya te comento si funciona esta línea.
  #4 (permalink)  
Antiguo 02/09/2009, 02:16
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 12 años
Puntos: 29
Respuesta: Salto página

Posiblemente el error lo da el caracter dos puntos (:) antes del igual.

Lo ví, pero no lo quité porque al no saber sobre el tema pensé que a lo mejor lo estropeaba.

Prueba:
objWord.Selection.InsertBreak Type=wdPageBreak

o

objWord.Selection.InsertBreakType=wdPageBreak

Suerte.

PD: Estoy mirando msdn
http://msdn.microsoft.com/de-de/libr...ffice.11).aspx
y no me entero de la mitad, pero yo probaría:

objWord.Selection.InsertBreak wdPageBreak

Valor y al toro que es una moná.

PD2: Alguien de un foro dice que lo arregló con esto:

ObjWord.Selection.InsertBreak()

Y alguien le advirtió que tuviese cuidado y le aconsejo esto:

Cuidado con el metodo [InsertBreak] ya que inserta saltos de pagina [ que no
es lo mismo que un cambio de pagina ] y si tienes seleccionaldo algo del
documento te lo reemplazara para corregir eso tendrias que hacer uso
tambien del metodo [ collapse ]

por ejemplo >>

with objword.selection
..Collapse (wdCollapseEnd)
..insertbreak
end with

Espero que con todo esto ya no tengas problemas. Yo ya lo dejo.

Saludos by PKJ.

Última edición por pkj; 02/09/2009 a las 03:09
  #5 (permalink)  
Antiguo 02/09/2009, 03:11
 
Fecha de Ingreso: julio-2009
Mensajes: 14
Antigüedad: 9 años
Puntos: 0
Respuesta: Salto página

Cita:
Iniciado por pkj Ver Mensaje
Posiblemente el error lo da el caracter dos puntos (:) antes del igual.

Lo ví, pero no lo quité porque al no saber sobre el tema pensé que a lo mejor lo estropeaba.

Prueba:
objWord.Selection.InsertBreak Type=wdPageBreak

o

objWord.Selection.InsertBreakType=wdPageBreak


Suerte.
No creo que sea el caracter (:) porque en la misma aplicación tengo esta sentencia puesta:
.Selection.TypeText Text:=" 1. Escrito numero 1"
Y me funciona perfectamente, he probado la sentencia que venia sobre el salto de linea y me da error tb por error al pasar el parámetro error 4120 ..., es un coñazo. Estoy emulando esto mismo escribiendo líneas en blanco sin nada ... pero es muy chapucero y tedioso.
Te pongo parte de mi código:

Código:
 Dim objWord As Object 
 Set oConexion = CurrentProject.Connection
 Dim MyRS As ADODB.Recordset  
 With oConexion
            .Close
            ' Se cambia la cadena de conexión
            .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sNombreBd & ";"
            .Open
 End With
 Set objWord = CreateObject("Word.Application")
 objWord.Visible = False
 Screen.MousePointer = vbHourglass
 With objWord
            .Documents.Add
            ' configuramos la página
            .ActiveDocument.PageSetup.LeftMargin = 70
            .ActiveDocument.PageSetup.RightMargin = 70
            .ActiveDocument.PageSetup.TopMargin = 30
            .Selection.Font.Name = "Tahoma"
            .Selection.Font.Size = 16
            Set MyRS = New ADODB.Recordset
            MyRS.Open "sentencia que ataca bd", oConexion, adOpenKeyset, adLockOptimistic
             .Selection.TypeParagraph
            ' Esta es la sentencia de llamada a la tabla
            Call .application.ActiveDocument.Tables.Add(objWord.ActiveWindow.Selection.Range, 2, 1)
            .ActiveDocument.Tables(1).Cell(1, 1).Select
            .ActiveDocument.Tables(1).Cell(1, 1).WordWrap = True
            .ActiveDocument.Tables(1).Cell(2, 1) = sTitulo
 End With
A través de recordset ataco a una base de datos para sacarle datos e introducirlos en el documento de word y llamao a la función de crear una tabla que es call.
Introduzco un texto despues de llamar a la tabla pero me escribe en la primera celda no entiendo porque.
Luego intento crear otra tabla llamando de nuevo al call pero me trabaja con la tabla anterior que habia introducido antes.
jejeje, disculpa si no me explico muy bien pero tampoco soy muy conocedor del tema. gracias
  #6 (permalink)  
Antiguo 02/09/2009, 03:16
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 12 años
Puntos: 29
Respuesta: Salto página

Lo siento, estabamos escribiendo a la vez. Mira lo que he editado y espero que saques algo en limpio. Yo lo dejo por que tengo otras tareas.

Suerte.
  #7 (permalink)  
Antiguo 02/09/2009, 03:21
 
Fecha de Ingreso: julio-2009
Mensajes: 14
Antigüedad: 9 años
Puntos: 0
Respuesta: Salto página

Cita:
Iniciado por pkj Ver Mensaje
Lo siento, estabamos escribiendo a la vez. Mira lo que he editado y espero que saques algo en limpio. Yo lo dejo por que tengo otras tareas.

Suerte.
Muchas gracias pkj, y que te sea leve en las otras tareas.

Por si alguien busca en google y encuentra esto, yo he conseguido arreglar lo del salto de pagina de la siguiente forma.
Dentro del bloque with donde trabajo con el documento de word se ponen estas sentencias
' Esta se supone que selecciona todo el código y te pone en la última línea donde hayas escrito
.Selection.Collapse (wdCollapseEnd)
' Con esta sentencia se supone que te hace el salto de línea
.Selection.insertbreak

Última edición por DurinVii; 02/09/2009 a las 03:31
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:44.