|    
			
				30/12/2002, 12:46
			
			
			  | 
  |   |  |  |  Fecha de Ingreso: marzo-2002 
						Mensajes: 449
					 Antigüedad: 23 años, 7 meses Puntos: 0 |  | 
  |  Para editar una plantilla se debe marcar lo que se va a modificar como marcadores de word.En el siguiente ejemplo el vector DatoVariable contiene los datos que se van a remplazar y son objetidos apartir de una base de datos un otro medio.
 
 *********************************
 Private Sub ImprimirCarta_Click()
 Dim DatoVariable(1 To 3) As String, fNombre As String
 Dim x As Integer          'variable auxiliar
 Dim marcadores As Integer ' número de marcadores en el documento
 
 Label3.Visible = True 'visualizar etiqueta "Generando cartas..."
 Screen.MousePointer = vbHourglass 'reloj de arena
 'Obtener la fecha
 DatoVariable(3) = Format(Now, "d-mmmm-yyyy")
 'Nombre del documento
 fNombre = InputBox("Nombre del documento:", , "carta.doc")
 If fNombre = "" Then GoTo Salir
 marcadores = InputBox("Nro. de marcadores en el documento:", , 1)
 If marcadores <= 0 Then GoTo Salir
 'Iniciar una copia de Word
 Set DocWord = CreateObject("Word.Basic")
 
 'Acceder a los registros de la base de datos
 While Not Adodc1.Recordset.EOF
 'Si algún campo fuera Null el programa causaría un error
 If Not IsNull(Adodc1.Recordset.Fields("Nombre")) Then
 DatoVariable(1) = Adodc1.Recordset.Fields("Nombre")
 Else
 DatoVariable(1) = " "
 End If
 If Not IsNull(Adodc1.Recordset.Fields("Dirección")) Then
 DatoVariable(2) = Adodc1.Recordset.Fields("Dirección")
 Else
 DatoVariable(2) = " "
 End If
 'Llamar al procedimiento que escribe la carta
 Documento DatoVariable(), marcadores, fNombre
 Adodc1.Recordset.MoveNext
 DoEvents 'ejecutar mensajes de otras aplicaciones
 Wend
 Adodc1.Recordset.MoveFirst
 Salir:
 Label3.Visible = False 'ocultar la etiqueta "Generando cartas..."
 Form1.SetFocus 'volver al formulario antes del MsgBox
 Screen.MousePointer = vbDefault 'restaurar ratón
 End Sub
 
 *****************************************
 El procedimiento que hace el remplazo el Documento y recibe como parametro el vector, el numero de marcadores en el documento y el nombre del archivo.
 
 Private Sub Documento(DatoVar() As String, marc As Integer, fNom As String)
 Dim x As Integer    'variable auxiliar
 
 'Abrir el documento fNom que suponemos en el directorio de app
 DocWord.ArchivoAbrir App.Path & "\" & fNom, 0, 1
 'Insertar los datos variables en el documento
 For x = 1 To marc
 'Los marcadores se han nombrado M01 y M02
 DocWord.EdiciónMarcador "M" & Format(x, "00"), 0, 0, 0, 1
 DocWord.Insertar DatoVar(x)
 Next x
 DocWord.ArchivoImprimirPredeter 'lanzar la tarea de impresión
 DoEvents 'ejecutar mensajes de otras aplicaciones
 DocWord.ArchivoCerrar 2 'cerrar el documento sin guardarlo
 End Sub
 
 **********************************************
 
 y al salir para guardarlo
 
 Private Sub Salir_Click()
 On Error Resume Next 'por ya estuviera cerrado el documento
 DocWord.ArchivoCerrar 0 'pregunta al usuario si desea guardarlo
 If Not (DocWord Is Nothing) Then Set DocWord = Nothing
 End
 End Sub
     |