Velden worden anders getoond bij download naar Excel

Status
Niet open voor verdere reacties.

BRon77

Gebruiker
Lid geworden
20 nov 2007
Berichten
5
Wie kan mij helpen?
In een formulier heb ik een knop gebouwd die ervoor zorgt dat een rapport wordt gedownload naar Excel. Dit rapport bevat alle gegevens naar een Query.

Nu zijn er verschillen tussen de query en de Excel sheet

In Excel wordt het veld als volgt afgedrukt -378920 terwijl in de query het volgende staat:
862-7-19. Maar er worden ook heel veel velden hetzelfde afgedrukt.

De code die ik gebruik voor de download is:
DoCmd.OutputTo acReport, stDocName, acFormatXLS, "D:\test.xls", True

Hoe kan dit? en hoe kan ik het verhelpen?
 
Wie kan mij helpen?
In een formulier heb ik een knop gebouwd die ervoor zorgt dat een rapport wordt gedownload naar Excel. Dit rapport bevat alle gegevens naar een Query.

Nu zijn er verschillen tussen de query en de Excel sheet

In Excel wordt het veld als volgt afgedrukt -378920 terwijl in de query het volgende staat:
862-7-19. Maar er worden ook heel veel velden hetzelfde afgedrukt.

De code die ik gebruik voor de download is:
DoCmd.OutputTo acReport, stDocName, acFormatXLS, "D:\test.xls", True

Hoe kan dit? en hoe kan ik het verhelpen?
Dat is inderdaad vreemd. want iedereen kan uitrekenen dat 862-7-19 = 836!

Je rapport is gebasseerd op een query. Waarom exporteer je die niet?
 
Goed idee!
Direct gedaan! en dat gaat goed. Ik vraag me alleen af of ik direct de layout van de Excel nog wat kan bijwerken. Nu zie ik bijvoorbeeld dat de kolommen niet goed uitgelijnd zijn.
Heb jij een idee?
 
Met de volgende commando's kan je vanuit access excel layout aanpassen.
Code:
        wsExcel.Columns.AutoFit
        wsExcel.Columns(4).ColumnWidth = 2
        wsExcel.Columns("B:F").NumberFormat = "#,##0"
 
Thanks voor info!!
Maar dit is net even te kort info voor mij.

Ik heb nu de volgende code:
DoCmd.OutputTo acReport, stDocName, acFormatXLS, "D:\test.xls", True

Hoe voeg ik: wsExcel.Columns.AutoFit zodat de kolommen in excel test.xls uitgelijnd zijn?
 
Ja ik zie het sorry. Here comes:
Code:
Public Sub AdjustExcel(strfilename as string)

    Dim appExcel  As Excel.Application
    Dim wbExcel   As Workbook
    Dim wsExcel   As Worksheet
        
    Set appExcel = New Excel.Application
    With appExcel
        .Visible = blnVisible
        Set wbExcel = .Workbooks.Open(strFilename)
        Set wsExcel = wbExcel.Worksheets(1) 'kan ook 0 zijn.
    End With

    wsExcel.Columns.AutoFit
    wsExcel.Columns(4).ColumnWidth = 2
    wsExcel.Columns("B:F").NumberFormat = "#,##0"

'Sluiten van alle objecten...
    set wsexcel=nothing e.t.c.

End Sub
wel even debuggen maar dat zal wel lukken.

Enjoy!
 
Hmmm...
Ik bevind met toch nog denk ik op onbekend terrein.

VBA loopt direct vast op de eerste regel (Dim appExcel As Excel.application)
Er wordt gemeld; Compileerfout: Een door de gebruiker gedefinieerde gegevenstype is niet gedefinieerd.

What to do??
 
Snik... Ik voel me met de vraag dommer worden.
Hoe moet ik die reference plaatsen?

optie 1
Public Sub AdjustExcel("D:\upload\test.xls")

optie 2
Dim appExcel As D:\upload\test.xls

optie 3
???

Ik heb geen idee! Help!!
 
Objecten

Het kan ook zonder referentie met behulp van objecten:

Dim appExcel as Object, wbExcel as Object, wsExcel as Object
Set appExcel = CreateObject("Excel.Application")

en dan kan de code verder hetzelfde blijven, misschien op de constante blnVisible na (heb ik hier -1 van gemaakt):
With appExcel
.Visible = -1
Set wbExcel = .Workbooks.Open(strFilename)
Set wsExcel = wbExcel.Worksheets(1) 'kan ook 0 zijn.
End With

wsExcel.Columns.AutoFit
wsExcel.Columns(4).ColumnWidth = 2
wsExcel.Columns("B:F").NumberFormat = "#,##0"
 
Laatst bewerkt:
zoals sesam voorstelt kan je het doen, je kan ook in je code window mentitem tools|reference kiezen. Zoek naar "Microsoft Excel 11 object library"
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan