Jump to content

Macros excel – vba 67.- extraer registros de access con sql - select


José_Santos

Recommended Posts

A primera vista no lo he podido ver, trata de probar función por función a ver cual es la que te da el error. Prueba primero con la de la conexión a la BD.

Saludos.

Dim conexionbasedatos As Object

Public Function conectarbasedatos()
'Crea el objeto que se utiliza para acceder a la base de datos
Set conexionbasedatos = CreateObject("adodb.connection")
Dim caminofichero As String
'Lugar donde está almacenada la BBDD, en este caso "ACCESS"
caminofichero = "C:\Users\Invitado\Documents\Curso Macros\ejemplobdvba.accdb"
Dim Parametros_conexion As String
Parametros_conexion = "provider=microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & caminofichero & ";" & _
"Jet OLEDB:Engine Type=5;" & _
"persist security info=false;"
'Se conecta a la BBDD
conexionbasedatos.Open Parametros_conexion
'https://msdn.microsoft.com/en-us/library/ms676564(v=vs.85).aspx
'https://msdn.microsoft.com/en-us/library/ee252442(v=bts.10).aspx
'Client-Side Cursor
conexionbasedatos.cursorlocation = 3
' Call closedatabase
End Function
[/CODE]

Link to comment
Share on other sites

  • 4 months later...

Buenas tardes @José_Santos,

Estoy siguiendo tus videos porque me interesa bastante éste tema y no controlo ciertas cosas. Estoy haciendo pruebas con un access y un excel. El fichero access tiene 9 campos pero de forma automática me ha agregado un campo Id en la tabla.

El problema que tengo es que si intento extraer diez campos me dice que el décimo campo del recordset no existe. Pero si extraigo nueve campos, el primero de ellos es el Id de la tabla en lugar del campo Fecha, que es el que tengo cómo primer campo.

¿Podrías decirme a qué se debe ese comportamiento?

Utilizo la versión 2016. Tengo que probarlo en el trabajo, con 2007 por si el comportamiento es diferente, pero me ha resultado extraño.

No se si me explico bien, lo siento.

Gracias.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



  • Crear macros Excel

  • Posts

    • @John Jairo V @Gerson Pineda Gracias a los 2 por la respuesta, cada día me sorprendo más de lo poco que se de excel, la verdad. Aunque sigo sin entender el comportamiento erratico de mi "formula" 😭   gracias 
    • Te adjunto un método que te permitirá redimensionar a unas coordenadas prestablecidas de la ventana de Excel y a partir de estas se va redimensionar el formulario También podrás trabajar en otras ventanas de Excel   Saludos! Redimensiona formulario de acuerdo ventana Excel_GP.xlsm
    • Hola Antoni, sigue con la misma velocidad, el libro de por si esta oculto, yo no estoy escribiendo en él, sólo estoy leyendo datos, por lo que ScreenUpdating no hace la diferencia
    • Después de crear la instancia a Excel: XL.Application.ScreenUpdating =False
    • Hola estoy cargando una hoja Excel a una grilla de VB6 y creo que el método que estoy empleando es lento, creo recordar que hay otros métodos mas rápidos, yo utilizo dos for X, y for Y recorriendo celda por celda y obtengo su valor (esto en 790 filas con 21 columnas me esta demorando 1 minuto), pero creo que había una forma de obtener un array de las celda lo cual es mas rápido mi código actual Private Sub Form_Load() Dim LastRow As Long Dim i As Integer Dim XL As Object, xlSpread As Object Const xlLastCell = 11 Dim Row As Long, Col As Long Set XL = CreateObject("Excel.Application") XL.Workbooks.Open FileName:=App.Path & "\L1.xlsx", ReadOnly:=False Set xlSpread = XL.Application LastRow = xlSpread.ActiveCell.SpecialCells(xlLastCell).Row With ucGridPlus1 .Redraw = False .ColsCount = 21 .RowsCount = LastRow - 6 + 1 'Encabesados For i = 0 To 20 .ColumText(i) = xlSpread.Cells(5, i + 1).Value Next i = 0 'Celdas/Tabla For Row = 6 To LastRow For Col = 0 To 20 .CellValue(i, Col) = xlSpread.Cells(Row, Col + 1).Value Next i = i + 1 'Debug.Print Row Next .Redraw = True End With XL.Application.DisplayAlerts = False XL.ActiveWorkbook.Close False 'Dont save changes (if any) XL.Quit Set XL = Nothing End Sub  
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy