none
Rellenar plantilla de word con datos de SQLServer RRS feed

  • Pregunta

  • Hola saludos a todos,

    Estoy desarrollando una aplicación que rellene marcadores en un documento de Word. Los datos los tomo de una consulta de SQL. Al abrir la plantilla de word y tratar de rellenar los marcadores aparece el mensaje "el elemento del conjunto solicitado no existe".

    Este es el código que tengo

    Private interno As String
        Private certificacion As String
        Private cedula As String
        Private tcLetras As String

    Public Function generarDemandaPersonaFísica()
            Try
                Dim oWord As Word.Application
                Dim oDoc As Word.Document
                Dim comando As SqlCommand
                Dim consulta As String = "select * from masterDemandados where ASIGNACION = @asignacion"
                comando = New SqlCommand(consulta, conectar)
                comando.Parameters.AddWithValue("@asignacion", generaWord.TextBox1.Text)

                Dim registros As SqlDataReader

                registros = comando.ExecuteReader()

                Do While registros.Read()
                    interno = registros("INTERNO")
                    certificacion = registros("CERTIFICACION")
                    demandado = registros("DEMANDADO")
                    cedula = registros("CEDULA")
                    direccion = registros("DIRECCION")
                    tcLetras = registros("TC_LETRAS")

                    oWord = CreateObject("Word.Application")
                    oWord.Visible = True
                    oDoc = oWord.Documents.Add("C:\plantillas\ASESORES JURIDICO EMPRESARIALES S.docx")

                    oDoc.Bookmarks.Item("internoWord").Range.Text = interno
                    oDoc.Bookmarks.Item("certificacionWord").Range.Text = certificacion
                    oDoc.Bookmarks.Item("cedulaWord").Range.Text = cedula
                    oDoc.Bookmarks.Item("tcLetrasWord").Range.Text = tcLetras
                Loop
                registros.Close()

    El problema es cuando quiero llenar los campos de cedula y tcLetras.

    De antemano cualquier ayuda o sugerencia se agradece.

    Saludos,

    Arnold

    • Cambiado Enrique M. Montejo miércoles, 8 de enero de 2014 8:52 Programación con Microsoft Word
    lunes, 6 de enero de 2014 16:24

Todas las respuestas

  • Me gustaria que nos aclares algunas cosas.

    1. La consulta que haces (...Where Asignacion = @asignacion" Devuelve más de un registro? Porque si es así, dentro del bucles se abrirán tantas instancias de Word y del documento como registros haya, creo que esa parte del codigo debería ir fuera del bucle.

    2- Si el error te da en las lineas:

    cedula = registro("CEDULA")

    tcLetras = registro("TC_LETRAS")

    Es porque la tabla "masterDemandados" no tiene columnas con esos nobres(CEDULA - TC-LETRAS) quizás los escribiste mal o pertenezcan a otra tabla.

    jueves, 9 de enero de 2014 3:37