Crear una macro de Microsoft Access que pega los resultados de una consulta en Excel se puede hacer mediante la vinculación a Access desde Excel , o mediante la aplicación de código de macro para controlar directamente desde Excel Acceso
Nota : . todo menos los últimos tres pasos se aplican a los usuarios de acceso (y Excel) 2007 . Si usted tiene una versión anterior de Access , vaya a la tercera al último paso. Cosas que necesitará
Microsoft Excel y Access
Ver Más instrucciones
1
En Access, crear una tabla de datos de ejemplo : introducir los siguientes datos en una nueva tabla :
el turista accidental , 12/1/2009 , 6,01 dólares
el turista accidental, 12/3/2009 , 7,98 dólares
hierro juan, 12 /5/2009 , 4,98 dólares
hierro juan, 12/6/2009 , $ 5.98
2 Haga doble clic en los encabezados de columna (por ejemplo, \\ " Campo1 \\ ") y vuelva a colocar cada uno de estos encabezados , en este orden:
libro, datesold , netsale
Guarde la tabla ( \\ "control - s \\ " ) con el nombre \\ " libros. \\ "
3
Crear una consulta de la tabla , y pulse la tecla \\ "Esc \\" en la "mesa \\ espectáculo " cuadro de diálogo \\. Haga clic en la ficha de la consulta y seleccione \\ " vista SQL \\ ". Escriba lo siguiente en la ventana de código : .
Libros SELECT * EN queryresults
DE libros
WHERE ( ( ( books.book ) Like ' * acc * '))
GO
Guarde la consulta ( \\ "control - s \\ ") y el nombre de \\ " vbaquery . \\ "
4
Abrir Excel y pulse \\ de la barra de herramientas " Datos > de Access \\ " icono. Seleccione la tabla \\ " queryresults \\ " de la \\ cuadro de diálogo " Seleccione \\ Table" . Haga clic en \\ " Aceptar \\ " en el cuadro de diálogo \\ " Importar datos \\ " y notar los resultados de la consulta : sólo el \\ "hierro john \\ " se muestran libros. Guarde el archivo de Excel con cualquier nombre , y ciérrelo.
5
reabrir el \\ database " libros \\ " en Access. Abra el \\ " vbaquery \\ " y \\ " revisar sus criterios : \\ " campo de leer \\ "Like " * acc * '\\ " (no escriba las comillas dobles No escriba el interior , individual. comillas. ) Vuelva a guardar la consulta.
6
Crear una nueva consulta. Escriba la siguiente instrucción SQL en la ventana \\ "SQL vista \\ " , a continuación, guarde la consulta como \\ " \\" dropqueryresults :
queryresults DROP TABLE ;
7
Ingrese el entorno de desarrollo integrado de Visual Basic ( IDE ) pulsando \\ "alt - f11 , \\ " y seleccione \\ " Insertar> módulo . \\ " Pega el siguiente código en código en blanco del nuevo módulo ventana:
runQuery Public Sub ()
eliminar los resultados de la tabla primero
On Error GoTo DO_QUERY
RunQueryForExcel ( \\ " dropqueryresults \\ ")
DO_QUERY :
RunQueryForExcel ( \\ " vbaquery \\ ")
End Sub
< br /> Public Sub RunQueryForExcel ( qName As String )
DoCmd.SetWarnings False CurrentDb.Execute qName
DoCmd.SetWarnings verdadero End Sub
Página 8
Coloque el cursor en cualquier lugar de la " runQuery \\ " \\ subrutina y pulse \\ "F5 \\ " para ejecutar la consulta. Vuelva a abrir el libro de Excel que abrió previamente y observe los datos actualizados : la macro ha sustituido a los \\ " Iron John \\ " filas con los \\ " \\ turista accidental " filas . (Access 2007 o posterior usuarios pueden parar aquí . )
9
(para usuarios de Access 2003 y versiones anteriores ) . Utilice el paso 7 para pegar el código siguiente en un nuevo módulo en el IDE de Visual Basic :
'''''' '''''' '''''' '''''' '' '''''' '''''' '''''' '''''' '''''' '
Public Sub pasteToExcel ( )
< br /> Const qName = \\ " vbaquery \\ "
db As DAO.Database
recset As DAO.Recordset
s As String Dim
; appXL As Excel.Application
ro Dim , co
'''''' '''''' '''''' '''' ' ''
Set appXL = CreateObject ( \\ " Excel.Application \\ ")
appXL.Workbooks.Add
Set db = CurrentDb < br /> Set recset = db.OpenRecordset ( qName )
s = \\ " libro \\ " y \\ " , \\ " y \\ " dateddsold \\ " y \\ " ; , \\ " y \\ " netsale \\ "& vbCr
appXL.ActiveSheet.Cells ( 1 , 1 ) = s
ro = 2
co = 1 < ; br /> s = \\
Aunque no recset.EOF
s = s y recset [ libro ] y \\ " , \\ " & ! ; ! recset [ datesold ] y \\ " , \\ " y recset [ netsale ] y vbCr
appXL.ActiveSheet.Cells (ro, co) = s
recset.MoveNext < ; br /> ro = ro + 1
s = \\
recset.Close db.Close
; appXL.ActiveWorkbook.SaveAs ( \\ "c: \\ \\ dataFromAccess.xls \\ ")
appXL.Quit
End Sub '' '''''' '''''' '''''' '''''' '''''' '''''' '''''' '''''''' '''' '
Seleccione \\ "Herramientas > Referencias \\ " y compruebe el \\ " Microsoft Excel Library Objects. \\ "
10
Volver a acceder y hacer los pasos 1 a 3. Sin embargo , para el paso 3 , pegar el código SQL en la ventana de código SQL: .
Libros SELECT * FROM libros
Donde ( ( (libros . book) Like ' * acc * ')) ;
11
Volver al IDE de Visual Basic . Coloque el cursor dentro de la \\ " pasteToExcel \\ " la función y pulse \\ "F5 \\ " para ejecutar la función. Abra el archivo de Excel \\ "c: \\ \\ dataFromAccess.xls \\ " . Para ver los resultados