Avatar billede mlhave Nybegynder
13. november 2003 - 13:47 Der er 18 kommentarer og
1 løsning

Formateringsproblemer ved eksport fra Access til Excel

Jeg har med udgangspunkt i en af mugs databaser fået overført en masse data til Excel, men der er et datoproblem jeg simpelthen ikke kan styre.

Når datoerne overføres bliver ikke alle datoer opfattet som datoer, og dem der ikke gør er datoer hvor de første cifre er større end 12.

fx.
24. jul 03 overføres til 24-07-2003 men ikke i dato format.
12. aug. 03 overføres til 08-12-2003 og i datoformat????
01. jul. 03 overføres til 07-01-2003 og i datoformat????

Koden jeg bruge følger her:

Private Sub cmdPressevaerdi_Click()

Dim Obvar As Object
Dim wkb As Object
Dim Rst As DAO.Recordset
Dim i As Integer
Dim Felt1 As Integer
Dim Felt2 As Integer
Dim Tek As String

On Error GoTo Errorhandler

DoCmd.SetWarnings False

DoCmd.OpenQuery "qryTilfoj_Data_ViewPressevaerdi"

Me.Refresh

Set Rst = DBEngine.Workspaces(0).Databases(0).OpenRecordset("ViewPressevaerdi", dbOpenTable)

Set Obvar = CreateObject("excel.application")

Set wkb = Obvar.Workbooks.Add

wkb.Worksheets("Ark1").Cells(1, 1).Value = "Dato"
wkb.Worksheets("Ark1").Cells(1, 2).Value = "Kunde"
wkb.Worksheets("Ark1").Cells(1, 3).Value = "Konkurrent"

For i = 2 To Rst.RecordCount + 1
    wkb.Worksheets("Ark1").Cells(i, 1).Value = Format(Rst.Fields![Dato])
    wkb.Worksheets("Ark1").Cells(i, 2).Value = Format(Rst.Fields![Kundenavn])
    wkb.Worksheets("Ark1").Cells(i, 3).Value = Format(Rst.Fields![Konkurrentnavn])
    Rst.MoveNext
Next

'Gør Excel synlig
Obvar.Visible = True

'Objektvariablen frigives
Set Obvar = Nothing

DoCmd.SetWarnings True

Errorhandler:
If Err.Number = 94 Then
Resume Next
End If

End Sub
Avatar billede mlhave Nybegynder
13. november 2003 - 13:57 #1
Ja, jeg har haft det spørgsmål oppe før og lukket det fordi jeg ville bruge MS Query fra Excel, men den er for ustabil...http://www.eksperten.dk/spm/426992

Håber én eller anden kan kommer op med noget genialt - jeg kan vel ikke være den eneste der flytter data til Excel? :o)
Avatar billede kabbak Professor
13. november 2003 - 14:09 #2
har du prøvet denne. ?
wkb.Worksheets("Ark1").Cells(i, 1).Value = Format(Rst.Fields![Dato],"dd-mm-yy")
Avatar billede mlhave Nybegynder
13. november 2003 - 14:18 #3
Jeps, dog med yyyy.
Jeg har som sagt haft spørgsmålet oppe før:
http://www.eksperten.dk/spm/426465
Avatar billede mlhave Nybegynder
13. november 2003 - 14:23 #4
Jeg har også prøvet:
wkb.Worksheets("Ark1").Cells(i, 1).Value = str$(Rst.Fields![Dato])
Avatar billede kabbak Professor
13. november 2003 - 14:26 #5
ikke testet, men prøv.

For i = 2 To Rst.RecordCount + 1
Idato = Day(Rst.Fields![dato]) & "-" & Month(Rst.Fields![dato]) & "-" & Year(Rst.Fields![dato])
    wkb.Worksheets("Ark1").Cells(i, 1).Value = Idato
    wkb.Worksheets("Ark1").Cells(i, 2).Value = Format(Rst.Fields![Kundenavn])
    wkb.Worksheets("Ark1").Cells(i, 3).Value = Format(Rst.Fields![Konkurrentnavn])
    Rst.MoveNext
Next
Avatar billede mlhave Nybegynder
13. november 2003 - 14:44 #6
Skal Idato være en Integer?
Avatar billede kabbak Professor
13. november 2003 - 14:44 #7
nej, variant
Avatar billede kabbak Professor
13. november 2003 - 14:46 #8
nej nok snarer date
Avatar billede mlhave Nybegynder
13. november 2003 - 18:17 #9
Næææ det virker heller ikke :o(
Avatar billede terry Ekspert
13. november 2003 - 18:42 #10
what data type are you using for your date in Access?
Avatar billede kabbak Professor
13. november 2003 - 20:24 #11
wkb.Worksheets("Ark1").Cells(i, 1).Value = val(Rst.Fields![Dato])
i regnearket sætter du så kolonne A til datoformat bagefter
Avatar billede nih Novice
13. november 2003 - 20:30 #12
wkb.Worksheets("Ark1").Cells(i, 1).Value = Rst.Fields![Dato]

Virker hos mig

Niels
Avatar billede nih Novice
13. november 2003 - 20:31 #13
Hvis din kollone i Excel viser et stort tal skal du ændre formattet i Excel IKKE i Access
Avatar billede mlhave Nybegynder
13. november 2003 - 20:51 #14
I Access bruger jeg formatet Mellemlang Datoformat.
Avatar billede mlhave Nybegynder
13. november 2003 - 21:01 #15
>nih, den simpleste løsning er ofte den bedste :-)

med din løsning 20:30:32 virkede, jeg skal blot ændre formatet i excel til dato, så har jeg de rigtige datoer.

Jeg lader lige spørgsmålet hænge til i morgen, for at se om nogen kan komme med en løsning der samtidig sikre at det er datoer der bliver vist i Excel efter overførslen.
Avatar billede nih Novice
13. november 2003 - 21:05 #16
wkb.Worksheets("Ark1").Cells(i, 1).NumberFormat = "dd-mm-yy"
wkb.Worksheets("Ark1").Cells(i, 1).Value = Rst.Fields![Dato]

Prøv noget ala det her
Avatar billede mlhave Nybegynder
13. november 2003 - 22:29 #17
Den virker perfekt! :o)
Læg et svar så kaster jeg med point ;o)
Avatar billede nih Novice
14. november 2003 - 10:22 #18
svar
Avatar billede mlhave Nybegynder
14. november 2003 - 11:10 #19
Uddybende ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester