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

    • Muchas gracias a los dos. Ambas respuestas me han servido, pero por sencillez he optado por la de JSDJSD. No obstante, como comenté anteriormente, tengo que tener siempre activa una impresora (de tickets) entonces si le doy a la macro, al crearse el PDF lo hace en el formato de esa impresora. Por tanto, pensé en el inicio de ejecutar la macro poner:  Application.ActivePrinter = "Microsoft Print to PDF" Y una vez finalizada la macro, cambiar a la impresora de Tickets, pero me da error. ¿Hay alguna forma de conseguir esto que comento? Gracias.
    • Ya puedes descargar un Test de Excel, hecho con el cálculo iterativo de las fórmulas de Excel.¡Mentira!¡No lo vas a poder descargar!He incrustado el test en mi blog, y sólo vas a poder realizar el test en modo online, desde un navegador Web o con una tableta o un móvil Android o Mac.   Enlace aquí:https://pedrowave.blogspot.com/2021/10/test-de-excel-con-calculo-iterativo.html     Ventajas de tener el Test de Excel en la nube: No contiene macros VBA ni Office Script. Se actualiza automáticamente al ser un Excel en la Web. Siempre verás la versión más actualizada del Test. Todos los usuarios harán el Test en las mismas condiciones. Se puede hacer el Test en la nube, incluso sin tener Excel instalado. Puedes hacer comentarios al Test en la nube. Puedo actualizar el Test cuando quiera para añadir más preguntas. Puedo modificar su comportamiento, mejorar su uso y/o corregir errores. Puedo proteger mucho mejor mis derechos de autor, para que no se pueda copiar mi idea de este Test de Excel. Gracias anticipadas por seguirme, por tus reacciones y por tus comentarios.
    • Prueba esto:   Sub guarda_pdf()     ruta = ActiveWorkbook.Path & "\salida3.pdf"     ActiveSheet.PageSetup.PrintArea = "$A$2:$P$42"     Application.PrintCommunication = False     With ActiveSheet.PageSetup         .LeftHeader = ""         .CenterHeader = ""         .RightHeader = ""         .LeftFooter = ""         .CenterFooter = ""         .RightFooter = ""         .LeftMargin = Application.InchesToPoints(0)         .RightMargin = Application.InchesToPoints(0)         .TopMargin = Application.InchesToPoints(0)         .BottomMargin = Application.InchesToPoints(0)         .HeaderMargin = Application.InchesToPoints(0)         .FooterMargin = Application.InchesToPoints(0)         .PrintHeadings = False         .PrintGridlines = False         .PrintComments = xlPrintNoComments         .CenterHorizontally = True         .CenterVertically = True         .Orientation = xlLandscape         .Draft = False         .PaperSize = xlPaperLetter         .FirstPageNumber = xlAutomatic         .Order = xlDownThenOver         .BlackAndWhite = False         .Zoom = False         .FitToPagesWide = 1         .FitToPagesTall = 1         .PrintErrors = xlPrintErrorsDisplayed         .OddAndEvenPagesHeaderFooter = False         .DifferentFirstPageHeaderFooter = False         .ScaleWithDocHeaderFooter = True         .AlignMarginsHeaderFooter = True         .EvenPage.LeftHeader.Text = ""         .EvenPage.CenterHeader.Text = ""         .EvenPage.RightHeader.Text = ""         .EvenPage.LeftFooter.Text = ""         .EvenPage.CenterFooter.Text = ""         .EvenPage.RightFooter.Text = ""         .FirstPage.LeftHeader.Text = ""         .FirstPage.CenterHeader.Text = ""         .FirstPage.RightHeader.Text = ""         .FirstPage.LeftFooter.Text = ""         .FirstPage.CenterFooter.Text = ""         .FirstPage.RightFooter.Text = ""     End With     Application.PrintCommunication = True          ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _         ruta, Quality:=xlQualityStandard, _         IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _         False End Sub  
    • Aquí adjunto un excel de prueba.  Lo que me gustaría es guardar las tablas (en la prueba están vacías) en una única hoja horizontal en PDF.  La opción de imprimir que comenta Exceler C no me sirve, ya que tengo que tener una impresora activa todo el rato y no puedo cambiarla por la de Microsoft Print To PDF. Gracias. Prueba.xlsm
  • Recently Browsing

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Privacy Policy