Programación General > Visual Basic 6.0 e inferiores
Copiar Campo De Access En Word Desde Vb
(1/1)
pantita:
:( mediante el programa de vb ingreso los datos de persona "x", estos datos son
almacenados en la base de datos de access. ahora con todos estos datos creo un acta la cual necesito imprimir, dicha acta la almaceno (guardo) en un nuevo campo del regristro de la persona "x" en la base de datos. ahora, se como abrir el word desde mi programa de vb, lo que no he podido hacer y no se como hacerlo, es copiar este campo del regristro de la persona "x" (o cualquier otro campo) de la base de datos de access en el documento nuevo de word (deseo tener abierto el word para poder modificar el acta y guardarla). Es decir, deseo saber como copiar un campo de access en un documento de word(.doc) desde el programa de vb. porfa si me ayuden les estare eternamente agradecidos. :D
Wilfredo[/size]
nostromo:
Hola viejo;
Te envio el siguiente código, el resultado los saco de una grilla pero es lo mismo:
--- Código: Text --- Private Sub Command3_Click() Dim wrdApp As Word.Application Set wrdApp = New Word.Application m1 = "EMPRESA" & vbTab & vbTab & ":" & vbTab & "MADECOR LTDA." & vbCrLf & vbCrLf mg = "TABLA DE LISTADOS" & vbCrLf & "Tabla nº 1. Niveles / Estado Mercaderia" & vbCrLf & vbCrLf With msflex For D = 1 To .Rows - 1 '.Col = 0 .Row = d dm = .TextMatrix(D, 0) '.Col = 1 .Row = d em = .TextMatrix(D, 1) aesc = dm & vbTab & vbTab & em If .Row = 1 Then pesc = aesc End If If .Row > 1 Then pesc = pesc & vbCrLf & aesc End If men = "Nivel" & vbTab & vbTab & "Estado" & vbCrLf & pesc & vbCrLf & vbCrLf Next D End With With msflex1 For c = 1 To .Rows - 1 'For t = 0 To .Cols - 1 '.Col = 0 .Row = c dm1 = .TextMatrix(c, 0) '.Col = 1 .Row = c em1 = .TextMatrix(c, 1) aesc1 = dm1 & vbTab & vbTab & em1 If .Row = 1 Then pesc1 = aesc1 End If If .Row > 1 Then pesc1 = pesc1 & vbCrLf & aesc1 End If men1 = "Nivel" & vbTab & vbTab & "Estado" & vbCrLf & pesc1 'Next t Next c End With mg1 = "TABLA DE LISTADOS ANEXOS" & vbCrLf & vbCrLf & "Tabla nº 2. Niveles / Estado Mercaderia" & vbCrLf & vbCrLf With wrdApp .Visible = True .Documents.Add .ActiveDocument.Content.Font.Size = 12 .ActiveDocument.Content.Font.Name = "Verdana" '.ActiveDocument.Content.Font.Bold = True .ActiveDocument.Content.Text = m1 & mg & men & mg1 & men1 '"Resulto" If optVista.Value = True Then .ActiveDocument.PrintPreview End If End WithEnd Sub
Si quieres buscar una consulta individual colocas:
--- Código: Text --- Option Explicit Dim db As Database Dim rs As Recordset Dim ac As String ac = .txtUsoCarpe & "\" & .lblArchivo Set db = OpenDatabase(ac) Set rs = db.OpenRecordset("Select Sum(Cuenta) From COBRO_CLIENTE") men = rs.Fields(0) 'Esto lo colocas en el codigo de más abajo.
Los msflexgrid deben estar conectado a sus respectivos data (1 y 2), pero en la siguiente línea debes colocar lo que quieres:
--- Código: Text --- With wrdApp .Visible = True .Documents.Add .ActiveDocument.Content.Font.Size = 12 .ActiveDocument.Content.Font.Name = "Verdana" '.ActiveDocument.Content.Font.Bold = True .ActiveDocument.Content.Text = men 'Aqui insertas la consulta If optVista.Value = True Then .ActiveDocument.PrintPreview 'Esta opción antes de imprimir en modo End If 'Vista Preliminar End With
Debes finalizar:
--- Código: Text --- Private Sub Form_Unload(Cancel As Integer) Set wrdApp = NothingEnd Sub
En Proyectos / Referencias / Microsoft 3.51 Object Library
Proyectos / Referencias / Microsoft Word 8.0 Object Library
; en todo caso el Word permanece visible hasta que lo cierres y guardes los cambios.
Nos vemos.
pantita:
:) gracias por la ayuda la voy a probar cuanto antes :comp:
Wilfredo
Navegación
Ir a la versión completa