• Lunes 23 de Diciembre de 2024, 04:30

Autor Tema:  Copiar Campo De Access En Word Desde Vb  (Leído 1651 veces)

pantita

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Copiar Campo De Access En Word Desde Vb
« en: Martes 27 de Julio de 2004, 23:20 »
0
:( 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

  • Miembro MUY activo
  • ***
  • Mensajes: 134
    • Ver Perfil
    • http://win32cpp.cjb.net
Re: Copiar Campo De Access En Word Desde Vb
« Respuesta #1 en: Miércoles 28 de Julio de 2004, 05:30 »
0
Hola viejo;

Te envio el siguiente código, el resultado los saco de una grilla pero es lo mismo:

Código: Text
  1.  
  2. Private Sub Command3_Click()
  3.     Dim wrdApp As Word.Application
  4.     Set wrdApp = New Word.Application
  5.     m1 = "EMPRESA" & vbTab & vbTab & ":" & vbTab & "MADECOR LTDA." & vbCrLf & vbCrLf
  6.     mg = "TABLA DE LISTADOS" & vbCrLf & "Tabla nº 1. Niveles / Estado Mercaderia" & vbCrLf & vbCrLf
  7.     With msflex
  8.         For D = 1 To .Rows - 1
  9.             '.Col = 0 .Row = d
  10.             dm = .TextMatrix(D, 0)
  11.             '.Col = 1 .Row = d
  12.             em = .TextMatrix(D, 1)
  13.             aesc = dm & vbTab & vbTab & em
  14.             If .Row = 1 Then
  15.                 pesc = aesc
  16.             End If
  17.             If .Row > 1 Then
  18.                 pesc = pesc & vbCrLf & aesc
  19.             End If
  20.             men = "Nivel" & vbTab & vbTab & "Estado" & vbCrLf & pesc & vbCrLf & vbCrLf
  21.         Next D
  22.     End With
  23.     With msflex1
  24.         For c = 1 To .Rows - 1
  25.             'For t = 0 To .Cols - 1
  26.             '.Col = 0 .Row = c
  27.             dm1 = .TextMatrix(c, 0)
  28.             '.Col = 1 .Row = c
  29.             em1 = .TextMatrix(c, 1)
  30.             aesc1 = dm1 & vbTab & vbTab & em1
  31.             If .Row = 1 Then
  32.                 pesc1 = aesc1
  33.             End If
  34.             If .Row > 1 Then
  35.                 pesc1 = pesc1 & vbCrLf & aesc1
  36.             End If
  37.             men1 = "Nivel" & vbTab & vbTab & "Estado" & vbCrLf & pesc1
  38.             'Next t
  39.         Next c
  40.     End With
  41.     mg1 = "TABLA DE LISTADOS ANEXOS" & vbCrLf & vbCrLf & "Tabla nº 2. Niveles / Estado Mercaderia" & vbCrLf & vbCrLf
  42.     With wrdApp
  43.         .Visible = True
  44.         .Documents.Add
  45.         .ActiveDocument.Content.Font.Size = 12
  46.         .ActiveDocument.Content.Font.Name = "Verdana"
  47.         '.ActiveDocument.Content.Font.Bold = True
  48.         .ActiveDocument.Content.Text = m1 & mg & men & mg1 & men1 '"Resulto"
  49.         If optVista.Value = True Then
  50.             .ActiveDocument.PrintPreview
  51.         End If
  52.     End With
  53. End Sub
  54.  
  55.  

Si quieres buscar una consulta individual colocas:

Código: Text
  1.  
  2.         Option Explicit
  3.          Dim db As Database
  4.          Dim rs As Recordset
  5.          Dim ac As String
  6.  
  7.         ac = .txtUsoCarpe & "\" & .lblArchivo
  8.         Set db = OpenDatabase(ac)
  9.         Set rs = db.OpenRecordset("Select Sum(Cuenta) From COBRO_CLIENTE")
  10.         men = rs.Fields(0) 'Esto lo colocas en el codigo de más abajo.
  11.  
  12.  

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
  1.  
  2.     With wrdApp
  3.         .Visible = True
  4.         .Documents.Add
  5.         .ActiveDocument.Content.Font.Size = 12
  6.         .ActiveDocument.Content.Font.Name = "Verdana"
  7.         '.ActiveDocument.Content.Font.Bold = True
  8.         .ActiveDocument.Content.Text = men  'Aqui insertas la consulta
  9.  
  10.         If optVista.Value = True Then
  11.             .ActiveDocument.PrintPreview    'Esta opción antes de imprimir en modo
  12.         End If                                           'Vista Preliminar
  13.     End With
  14.  
  15.  

Debes finalizar:

Código: Text
  1.  
  2. Private Sub Form_Unload(Cancel As Integer)
  3.     Set wrdApp = Nothing
  4. End Sub
  5.  
  6.  

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

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Copiar Campo De Access En Word Desde Vb
« Respuesta #2 en: Lunes 2 de Agosto de 2004, 23:23 »
0
:) gracias por la ayuda la voy a probar cuanto antes :comp:

Wilfredo