Hola. Tengo el siguiente problemilla: Tengo un documento de word con marcadores. Me gustaría conectar los datos de un select que hago por vba a esos marcadores. ¿Cómo lo hago? Gracias.
3 Respuestas
Respuesta de rafasan
1
1
rafasan, Bueno, no soy experto ni mucho menos, he desarrollado algunas...
Puedes utilizar el asistente de word para combinar correspondencia o desde access exportar a word con el siguiente código: Sub fromAccessToWordTable() Dim myWDApp As Word.Application Dim myRange As Word.Range, myTable As Word.Table Dim acell As Word.Cell, emailCol As Integer Dim rst1 As New Recordset, irow As Integer 'Abre la tabla con los nuevos contactos With rst1 .ActiveConnection = CurrentProject.Connection .Open "oe4pab", , adOpenKeyset, adLockOptimistic, adCmdTable End With 'Crea un ejemplar de una aplicación Word y activa 'la animación "trabajando" del Asistente. AssistantWorkingOn Set myWDApp = CreateObject("Word.Application") 'Añade un documento a la aplicación y una tabla al documento. 'Especifica el número de filas igual a una más que el de la tabla 'de direcciones de correo electrónico de Access. myWDApp.Documents.Add Set myRange = myWDApp.ActiveDocument.Range(0, 0) myWDApp.ActiveDocument.Tables.Add Range:=myRange, _ NumRows:=rst1.RecordCount + 1, NumColumns:=3 'Inserta las cabeceras de las columnas para la tabla With myWDApp.ActiveDocument.Tables(1).Rows(1) .Cells(1).Range.Text = rst1.Fields(0).Name .Cells(2).Range.Text = rst1.Fields(1).Name .Cells(3).Range.Text = rst1.Fields(2).Name End With 'Inserta el nombre, los apellidos y el correo electrónico de la tabla Access. 'Inserta la información de contacto desde la segunda hasta la última fila. For irow = 2 To myWDApp.ActiveDocument.Tables(1).Rows.Count emailCol = 0 For Each acell In _ myWDApp.ActiveDocument.Tables(1).Rows(irow).Cells acell.Range.Text = IIf(IsNull(rst1.Fields(emailCol)), _ "", rst1.Fields(emailCol)) emailCol = emailCol + 1 Next acell rst1.MoveNext Next irow 'Da formato a la tabla para que se ajuste al contenido, activa la animación inactiva y 'hace visible Word para que el usuario pueda ver la tabla de Word. myWDApp.ActiveDocument.Tables(1).AutoFitBehavior wdAutoFitContent AssistantIdleOn myWDApp.Visible = True End Sub Sub runMLabels() Dim myWDApp As Word.Application 'Abre la conexión con Word y lo hace visible. Set myWDApp = CreateObject("Word.Application") myWDApp.Application.Visible = True 'Ejecuta el procedimiento de etiquetas para el correo. myWDApp.Application.Run "printPreviewLabels" End Sub Sub runFormLetters() Dim myWDApp As Word.Application 'Abre la conexión con Word y lo hace visible. Set myWDApp = CreateObject("Word.Application") myWDApp.Application.Visible = True 'Ejecuta el procedimiento del formulario de cartas. myWDApp.Application.Run "printPreviewLetters" End Sub Espero que te funcione, cualquier duda estoy a tus ordenes
- Anónimoahora mismo
Respuesta de lantach
1
1
lantach, He desarrollado Bases de Datos en MS Access y Visual para...
Realmente nunca he trabajado con este tipo de vínculos. Lamento no poder ayudarte.
- Anónimoahora mismo
Respuesta de nanidivino
1
1
nanidivino, Tco. superior en Sistemas de Gestion Docente de cursos F.P.O....