Hej! Hur gör du nu och vilka utseendekrav finns på excelfilen? Ska Excelfilen ha snygg layout eller bara innehålla en viss information? Ska den vara formaterad på ett visst sätt är det svårare, det blir aldrig helt bra att exportera rapporter... Om användaren har Excel installerat kanske man kan skapa en mall och fylla den med data? Om man inte bryr sig om layout kan man exportera resultatet av en fråga direkt till excel, tror funktionen heter TransferSpreadsheet eller nått liknande. Nu gör jag så att jag visar rapporten och sen klickar jag på spara i Excelformat men det är inte alls vackert, knappt så bra att man kan spara det bara för datans skull. Hej Lisa! Hej Jan! ett sätt är att spara macro i mall excel filen och använda: Hej Lisa! Hej Jan!Access rapport sparad som Excelfil
Jag sitter här och drar i mina stackars lockar över en rapport som jag ska exportera till Excelfil. Företaget vi ska skicka rapporten till vill nämligen definitivt ha den i det formatet.
Rapporten i Access ser bra ut och precis som jag vill men...
när jag sparar den som Excel försvinner rubriker och en och en annan kolumn.
Inte vackert helt enkelt!
Är det någon som har kommit på något sätt att göra detta? Kruxet är att användaren har datatummen mitt i handen så det måste ske automatiskt.
//LisaSv: Access rapport sparad som Excelfil
Sv: Access rapport sparad som Excelfil
/JohanSv:Access rapport sparad som Excelfil
Egentligen vill jag att det ska bli snyggt och se ut precis som den "gamla" manuella veckorapporten men i nuläget nöjer jag mig med att sidhuvudet och all data följer med.
Jag funderade och testade lite för om jag sparar rapporten i doc format istället så följer allt med (förrutom att för lång text förskjuter kollumnerna i sidled. Frågan är isåfall, kanske man kan exportera från Word till Excel och behålla sidhuvudet.
Det mest konstiga är att alla mina textrutor i sidhuvudet har vettiga namn och det är ju det som ska visas om man exporterar datan har jag läst någonstans men man kan ju inte alltid få som man vill.
//LisaSv: Access rapport sparad som Excelfil
Förutsättningen för nedanstående är förstås att man jobbar med vb-script. TransferSpreadsheet som Johan D. nämnde ger kanske ett resultat du är nöjd med utan att krångla till det ytterligare. Annars...
Jag har haft samma krav på ett visst utseende på excelrapporten och efter visst knåpande så hittade jag möjligheten att formatera excelfilen inifrån Access. Det är ju en fråga om hur mkt jobb du vill lägga ner. Det fina med det här arbetssättet är ju att du då kan finlira riktigt för att få det exakt som du vill ha det, under förutsättning att rubriker och annat du vill justera är statisk information som inte förändras från varje rapport.
Hur jag gjorde?
Jo, jag öppnade den skapade excelfilen (den som jag inte är nöjd med utseendet på) och startade inspelning av makro och när jag var klar med mina formateringar så tog jag med mig den skapade VB-koden in i Access och körde den därifrån.
Om det är intressant för dig så kan jag ta fram nåt exempel. Det var lite trickigt innan jag hittade hur jag adresserade excelinstansen från Access men sedan var det tämligen enkelt att hämta hem lite olika makron skapade i Excel och köra dom inifrån Access.
//JanISv:Access rapport sparad som Excelfil
Nu har jag äntligen tagit tag i excelformatet och spelat in macro, däremot skulle jag behöva din hjälp med att förklara hur jag ska köra dem från Access, och eftersom du så snällt erbjöd mig ett exempel blir jag mycket glad över det just nu.
//LisaSv: Access rapport sparad som Excelfil
MyExcelApplication.Run "Bok1!Makro1"
Rekomnderas INTE då vi väl vill hålla excel filer macrofria..
Annars e det ganska enkelt att spala in macro, sen lägger man bara till
MyExcelApplication. ( eller vad du kallat ditt skapade object till excel)
innan alla anrop till excel object i din kod
tex Macro= Range("A1").select från annan stans MyExcelApplication.Range("A1").select
(här bör tilläggas att man bör referara till vilkent sheet MyExcelApplication.sheets(1).Range("A1").select)
När man hållt på ett tag med att auotomatisera excel går detta som en dans blir som copu/paste.
I alla avseende rekomndear jag starkt att om möjligt auotomatisera Excel när man skall göra nått i office då det helt klart har den stabilaste (helt oventenskaplig personlig åsikt) object + att det inne håller massa färdiga fina object att jobba med....
OBS Macro inspelararen har en ful ovan att att spela in det du gör inte det du vill göra (nedrans datorer)
tex att ändra bakgrunds färg på cell A1 när vi gör det grafiskt måste vi först välja vilken cell vi vill jobba med
Range("A1").Select
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Ovan skall förkortas till
With Range("A1").Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ColorIndex = 3
End With
eller om vi vet att cellen inte har nått annat mönster (tex en ny fil)
With Range("A1").Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ColorIndex = 3
End With
eller varför inte det vi ville:
Range("A1").Interior.ColorIndex = 3
Vill man iteriera genom celler kan man ange Cells(RowIndex,ColumnIndex)
Mvh// Henrik Wendel
"Ny på VB.net, räv på excel fråga om det e nått...."Sv: Access rapport sparad som Excelfil
Det tog ett tag innan jag uppmärksammade att du ville ha hjälp. Kanske du redan har löst det genom Henriks inlägg. Här följer iallafall ett enkelt exempel som du kan brodera ut efter eget önskemål.
Private Sub SkräddarsyExcelfil_Click()
Dim xlApp As Object
Dim Sheet As Object
Dim SökvägochDokument As String
Dim Rubriken As String
'Här skapar du din Excelfil
DoCmd.TransferSpreadsheet acExport, , "MinTabellEllerFråga", "C:\minfil"
Rubriken = "Detta är en rubrik!"
Set xlApp = CreateObject("Excel.Application")
SökvägochDokument = "C:\minfil.xls"
Set Sheet = xlApp.workbooks.Open(SökvägochDokument).Sheets(1)
'Lägg till en rubrik
xlApp.ActiveSheet.Cells(5, 5).Value = Rubriken
'Här har jag kopierat in makrot som jag skapade i Excel och
'lagt till xlApp framför varje kommando och precis som Henrik
'beskriver så följer en massa "extra" med i macrot som jag raderat
xlApp.Range("E5").Select
'Bestäm font och storlek
With xlApp.Selection.Font
.Name = "Arial"
.Size = 16
End With
'Lägg på fetstil
xlApp.Selection.Font.Bold = True
'Justera kolumnbredd så att rubriken ryms i en kolumn
xlApp.Columns("E:E").EntireColumn.AutoFit
'Det är jätteviktigt att du stänger efter dig så att du slipper att ha
'en massa instanser av Excel liggande i internminnet
xlApp.Activeworkbook.Save
xlApp.Activeworkbook.Close
xlApp.Application.Quit
Set xlApp = Nothing
End Sub
En bra sak som jag upptäckte av en händelse är att om du kör om TransferSpreadsheet flera gånger och pekar på samma excelfil så läggs datat upp i en ny flik för varje körning vilket ju kan vara nyttigt att känna till.
Lycka till!
//JanISv:Access rapport sparad som Excelfil
Jag ska gräva mer i det imorgon annars kommer jag definitivt behöva göra om allt imorgon ändå. Tusen tack för hjälpen, jag skriver mer om hur det går när jag vet ;)
//Lisa