** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Visual Basic Clásico (VB3...VB6)
  Mensajes nuevos Mensajes nuevos RSS - Pegar datos de Access a Excel mediante GetString
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoPegar datos de Access a Excel mediante GetString

 Responder Responder
Autor
Mensaje
Medardo Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 03/Marzo/2005
Localización: Cuba
Estado: Sin conexión
Puntos: 1987
Enlace directo a este mensaje Tema: Pegar datos de Access a Excel mediante GetString
    Enviado: 10/Noviembre/2015 a las 17:08

Hola

En varias ocasiones he logrado pegar datos en Word, con algo como esto:

AppInfExcel.InsertAfter Text:=GStr

 

Pero ahora necesito pegar estos datos de un recordset de una consulta, directamente en Excel, desde Visual Basic, y no acabo de encontrar la manera de hacerlo. Hasta ahora lo que tengo es esto:

 

rstInf.Open strSQL, cnn, adOpenStatic, adLockOptimistic

 Dim GStr As String

GStr = rstInf.GetString(adClipString, , , , vbNullString)

 Set AppInfExcel = CreateObject("Excel.Application")

 AppInfExcel.Application.Visible = True

 Set xlsLib = AppInfExcel.Workbooks.Add

 Lo que me falta es la instrucción para pegar los datos que están en GStr.

 ¿Alguien tiene alguna idea?

 Gracias

Saludos
Desde La Habana, Cuba
Medardo
Arriba
Medardo Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 03/Marzo/2005
Localización: Cuba
Estado: Sin conexión
Puntos: 1987
Enlace directo a este mensaje Enviado: 10/Noviembre/2015 a las 20:18

Hola

He encontrado una solución, no exactamente como lo quería, pero en la práctica, el resultado es el mismo.

 

'rstInf es el recordset, strSQL es la variable que contiene la consulta, cnn es la variable que contiene la conexión

    rstInf.Open strSQL, cnn, adOpenStatic, adLockOptimistic

  

Dim AppInfExcel As Object

    Set AppInfExcel = CreateObject("Excel.Application")

   

    AppInfExcel.Application.Visible = True

   

xlsLib As Object

    Set xlsLib = AppInfExcel.Workbooks.Add

  

    'seleccionar la hoja de cálculo

    AppInfExcel.Worksheets("Hoja1").Select

 

'pegar los campos

    Dim ItemField As Integer

    Dim NombresCampos As String

    Dim iCont As Integer

    iCont = 0

    For ItemField = 0 To rstInf.Fields.Count -

        NombresCampos = rstInf.Fields(ItemField).Name  'muestra los nombres de los campos de la tabla

        iCont = iCont + 1

        AppInfExcel.Worksheets("Hoja1").Cells(1, iCont) = NombresCampos

    Next ItemField

 

    'seleccionar la celda donde se empezará a copiar el Recordset

    AppInfExcel.Worksheets("Hoja1").Range("A2").Select

 

    'pegar el Recordset

    AppInfExcel.ActiveCell.CopyFromRecordset rstInf

 

De esta forma, al igual que con GetString, imprimimos todos los registros al mismo tiempo, sin necesidad de un bucle. No obstante a esta solución, me gustaría saber sobre la opción del GetString. Si alguien tiene alguna idea, bienvenido, de lo contrario, ya el problema está resuelto.

Gracias

Saludos
Desde La Habana, Cuba
Medardo
Arriba
Medardo Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 03/Marzo/2005
Localización: Cuba
Estado: Sin conexión
Puntos: 1987
Enlace directo a este mensaje Enviado: 05/Febrero/2016 a las 17:08
Este hilo puede cerrarse. Gracias.
Saludos
Desde La Habana, Cuba
Medardo
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable