Conexión con base de datos actual con VBA Access 2007
En el trabajo tengo que usar gran parte del tiempo Access. Hasta ahora con el conocimiento que tenía de la aplicación y de SQL (nivel intermedio) me apañaba bastante bien, pero recientemente en mi nuevo puesto me he dado cuenta que aprender VBA me puede permitir automatizar ciertas tareas y ahorrar bastante tiempo. Me he puesto con un curso de VBA y he aprendido algunos temas básicos de sintaxis, pero cuando quiero conectarme a una base de datos tal como se indica no es posible ¿alguien me podría indicar que es lo que falla en el código? El código usado es el siguiente:
Option Compare Database
Option Explicit
Sub conecta_base_actual()
Dim miconexion As New Connection
Set miconexion = CurrentProject.Connection
Dim instruccion_sql As String
instruccion_sql = "SELECT * FROM procedimientos"
Dim mirecordset As New Recordset
mirecordset.Open instruccion_sql, miconexion
Do Until mirecordset.EOF
Debug.Print mirecordset!serie
mirecordset.MoveNext
Loop
mirecordset.Close
Set mirecordset = Nothing
miconexion.Close
Set miconexion = Nothing
End Sub
Al tratar de ejecutarlo sale un ventana emergente con el error:
Error de compilación
El uso de la palabra New no es válido
Tras investigar en Internet he encontrado que este código no es válido para Access 2007, y a pesar de que en el video del curso si que le funciona con esa versión de Access, debe ser cierto porque al guardarlo como Access 2000 si que se ejecuta. El problema es que yo necesito usar Access 2007.
También hojeando un libro he visto otro código distinto para conectarse a una base de datos:
Option Compare Database
Option Explicit
Sub conecta_base_actual()
Dim miconexion As ADODB.Connection
Dim mirecordset As ADODB.Recordset
Set miconexion = New ADODB.Connection
miconexion.Provider = "Microsoft.Jet.OLEDB.4.0"
miconexion.ConnectionString = "Data Source=" & CurrentProject.Path & "\VBA_2000.mdb"
miconexion.Open
Set mirecordset = New ADODB.Recordset
mirecordset.Open "procedimientos"
Do Until mirecordset.EOF
Debug.Print mirecordset!serie
mirecordset.MoveNext
Loop
mirecordset.Close
Set mirecordset = Nothing
miconexion.Close
Set miconexion = Nothing
End Sub
Pero tampoco este código, con diferente forma de declarar y configurar conexión y recordset funciona.
¿Alguien podría aclararme porque falla alguno de los códigos y como hacerlo con Access 2007? Por anticipado me disculpo si puede haber algun error tonto, porque soy usuario y aprendiz únicamente.