Skapa ett Microsoft Access- makro som klistrar en frågans resultat till Excel kan göras genom att länka till Access från Excel , eller genom att tillämpa makro -kod för att direkt styra Excel från Tillgång
Anm : . alla utom de tre sista stegen gäller för användare av Access ( och Excel ) 2007 . Om du har en tidigare version av Access , vidare till tredje till sista steget . Saker du behöver
Microsoft Excel och Access
Visa fler instruktioner
1
I Access , skapar en tabell med exempeldata : ange följande data i en ny tabell :
den tillfällige turisten , 12/1/2009 , $ 6,01
den tillfällige turisten , 12/3/2009 , $ 7,98
järn john , 12 /5/2009 , $ 4,98
järn john , 12/6/2009 , $ 5,98
2
Dubbelklicka på kolumnrubrikerna (t.ex. \\ " Fält1 \\ " ) och byt vardera med dessa rubriker , i denna ordning :
bok , datesold , Netsale
Spara tabellen ( \\ " kontroll - s \\ " ) med namnet \\ " böcker . \\ " Addera 3
Skapa en fråga från bordet , och tryck på \\ " Esc \\ " nyckel i \\ " Visa tabell \\ " i dialogrutan . Högerklicka på frågans fliken och välj \\ " SQL-vyn \\ . " Skriv följande i koden fönstret : .
SELECT böcker * INTO queryresults
FRÅN böcker
WHERE ( ( ( books.book ) Gilla ' * acc * ' ) )
GO
Spara frågan ( \\ " kontroll - s \\ " ) och kalla den \\ " vbaquery . \\ "
4
Öppna Excel och tryck verktygsfälts \\ " Data > Från Åtkomst \\ " -ikonen . Välj \\ " queryresults \\ " bord i \\ " Select Table \\ " i dialogrutan . Klicka på \\ " OK \\ " på \\ " Importera Data \\ " i dialogrutan och märker frågans resultat : bara \\ " järnet John \\ " är böcker visas . Spara Excel-filen med valfritt namn och stäng det .
5
nytt göra det \\ " böckerna \\ " databas i Access . Öppna \\ " vbaquery \\ " och revidera sina \\ " Kriterier : \\ "-fältet för att läsa \\ " Gilla " * acc * ' \\ " ( skriv inte citationstecken du skriver inre , singel . citat . ) Spara om frågan .
6
Skapa en ny fråga . Skriv följande SQL-uttryck i \\ " SQL-vyn \\ " fönstret , sedan spara frågan som \\ " dropqueryresults \\":
queryresults DROP TABLE ;
7
Ange Visual Basic integrerad utvecklingsmiljö ( IDE ) genom att trycka på \\ " alt - f11 , \\ " och välj sedan \\ " Infoga > modul . \\ " Klistra in följande kod i den nya modulen är tom kod fönster :
Public Sub runquery ( )
' raderar resultattabellen första
On Error GoTo DO_QUERY
RunQueryForExcel ( \\ " dropqueryresults \\ " )
DO_QUERY :
RunQueryForExcel ( \\ " vbaquery \\ " )
End Sub
Public Sub RunQueryForExcel ( QName As String )
DoCmd.SetWarnings False
CurrentDb.Execute qname
DoCmd.SetWarnings Sant
End Sub
8
Placera markören någonstans i \\ " runquery \\ " subrutin och tryck \\ " F5 \\ " för att köra frågan . Öppna Excel -arbetsbok du tidigare öppnat och märker de uppdaterade data : makrot har ersatt den \\ " järn john \\ " rader med \\ " Accidental Tourist \\ " rader . ( Access 2007 eller senare användarna kan sluta här . )
9
( För användare av Access 2003 och tidigare ) . Använd steg 7 för att klistra in följande kod i en ny modul i Visual Basic IDE :
'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
Public Sub pasteToExcel ( )
Const qname = \\ " vbaquery \\ "
Dim db Som DAO.Database
Dim recset Som DAO.Recordset
Dim s As String
, Dim appXL Som Excel.Application
Dim ro , co
'' '' '' '' '' '' '' '' '' '' '' ' ''
Set appXL = CreateObject ( \\ " Excel.Application \\ " )
appXL.Workbooks.Add
Set db = CurrentDb
Set recset = db.OpenRecordset ( QName )
s = \\ "bok \\ " & \\ " , \\ " & \\ " dateddsold \\ " & \\ " , , \\ " & \\ " Netsale \\ " & vbCr
appXL.ActiveSheet.Cells ( 1 , 1 ) = s
ro = 2
co = 1 < ; br /> s = \\ " \\ "
Gör Medan Inte recset.EOF
s = s & recset [ boken ] & \\ " , \\ " & ! ; ! recset [ datesold ] & \\ " , \\ " & recset [ Netsale ] & vbCr
appXL.ActiveSheet.Cells ( ro , co ) = s
recset.MoveNext < ; br /> ro = ro + 1
s = \\ " \\ "
Loop
recset.Close
db.Close
; appXL.ActiveWorkbook.SaveAs ( \\ " c : \\ \\ dataFromAccess.xls \\ " )
appXL.Quit
End Sub
'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
Välj \\ " Verktyg> Referenser \\ " och kolla \\ " Microsoft Excel Objects Library . \\ "
10
Återgå till Access och göra steg 1 till 3. Men för steg 3 , klistra in den här SQL- kod i SQL-koden fönstret : .
SELECT böcker *
från böcker
Var ( ( ( böcker . book ) Gilla ' * acc * ' ) ) ;
11
tillbaka till Visual Basic IDE . Placera markören i \\ " pasteToExcel \\ " funktionen och tryck på \\ " F5 \\ " för att köra funktionen . Öppna Excel- filen \\ " c : \\ \\ dataFromAccess.xls \\ " . Att se resultaten Addera