Avatar billede tommyrasmussen Nybegynder
12. april 2005 - 15:14 Der er 14 kommentarer og
1 løsning

vedr. eksport til - og åben excel med resultat

Jeg har en tabel der indeholder blandt andet dato og klokkeslet(f.eks. 16.56 og 06-04-2005) samt nogle decimaltal (f.eks. 25,2).
Når jeg bruger denne funktion til at eksportere til - og åbne excel med data mister jeg dato og klokkeslet samt decimalen på tallet. Det vil sige at jeg får nogle data der ser helt forkerte ud.

Kan man ændre eksporten så den får sådanne ting med ud ?

Dim xls As New Excel.Application
    DoCmd.TransferSpreadsheet acExport, 8, "Uddata", "C:\data", True, ""
    xls.Visible = True
    xls.Workbooks.Open FileName:="C:\data"
Avatar billede mugs Novice
12. april 2005 - 16:59 #1
Jeg bruger denne der beholder decimaler og formatterer Excel som dato.
kræver reference til DAO og Excel:

Dim Obvar As Object, wkb As Object, Rst As Recordset ' Variabelerklæringer
Dim i As Integer, Felt1 As Integer, Felt2 As Integer, Tek As String
On Error GoTo Errorhandler
DoCmd.SetWarnings False
DoCmd.OpenQuery "tilføjtemp"
Me.Refresh
Set Rst = DBEngine.Workspaces(0).Databases(0).OpenRecordset("temp", dbOpenTable)
Set Obvar = CreateObject("excel.application")
Obvar.Visible = True
Set wkb = Obvar.Workbooks.Add
wkb.Worksheets("Ark1").Cells(1, 1).Value = "Felt 2"
wkb.Worksheets("Ark1").Cells(1, 2).Value = "Felt 1"
wkb.Worksheets("Ark1").Cells(1, 3).Value = "Dato"
For i = 2 To Rst.RecordCount + 1
wkb.Worksheets("Ark1").Cells(i, 1).Value = Str$(Rst.Fields![Felt2])
wkb.Worksheets("Ark1").Cells(i, 2).Value = Str$(Rst.Fields![Felt1])
wkb.Worksheets("Ark1").Cells(i, 3).Value = Str$(Rst.Fields![dato])
Rst.MoveNext
Next
Tek = "=Sum(R[" + Str$(-Rst.RecordCount) + "]C:R[-1]C)"
wkb.Worksheets("Ark1").Cells(Rst.RecordCount + 2, 2).Value = Tek
wkb.Worksheets("Ark1").UsedRange.Columns.AutoFit
Set Obvar = Nothing
DoCmd.OpenQuery "slettemp"
DoCmd.SetWarnings True
Errorhandler:
If Err.Number = 94 Then
Resume Next
End If
Avatar billede tommyrasmussen Nybegynder
12. april 2005 - 18:04 #2
Ok, prøver den lige i aften.
Så ser jeg lige om den kræver noget tilretning for at kunne bruges til min
tabel.
Avatar billede mugs Novice
12. april 2005 - 18:20 #3
Den kræver tilretning for så vidt angår tabelnavne og feltnavne. Hvis du lægger din e-mail, kan jeg sende dig eksemplet.
Avatar billede tommyrasmussen Nybegynder
12. april 2005 - 19:39 #4
Jo tak, den er tommyr@mail.dk
Avatar billede mugs Novice
12. april 2005 - 19:43 #5
Sendt.
Avatar billede tommyrasmussen Nybegynder
12. april 2005 - 20:30 #6
Nu virker den, men jeg er ikke sikker på jeg helt kan forstå princippet.
Det virker som om at den ikke tager kommatal med.
Desuden tror jeg ikke jeg forstår selve princippet med temp tabellen. Vil det sige at jeg SKAL have lagt data fra min oprindelige tabel over i denne temp tabel inden jeg kører koden. I det eksempel du mailede til mig, er din temp tabel tom, og det er den også når eksporten er kørt.

Jeg skal vist lige have en generel forklaring. Undskyld, men er rimelig grøn i det her.
Avatar billede mugs Novice
12. april 2005 - 20:34 #7
Her tager den decimal tal med. Du behøver ikke temp tabellen, så vidt jeg husker er det moget en anden bruger bad om. Giv mig lige lidt tid, så strikker jeg en forklaring sammen.

Til øvrige brugere: Jeg har modtaget en mail fra spørgeren, om at denne ikke kunne få det til at fungere grundet manglende reference. Jeg har svaret hvordan der oprettes en reference til Excel.
Avatar billede mugs Novice
12. april 2005 - 21:22 #8
Denne kode er sendt i en testdb:

DoCmd.TransferSpreadsheet acExport, 8, "Tabel1", "C:\Test", True, ""
Dim xls As New Excel.Application
xls.Visible = True
xls.Workbooks.Open Filename:="C:\Test"

Og den beholder decimaltal og formatterer datoer som datoer. Hvad er dine felttyper i Access?
Avatar billede tommyrasmussen Nybegynder
12. april 2005 - 21:46 #9
Jeg kan godt se at det burde virke fint. Hvis jeg overfører eksemplet til min database kommer kommatal med og dato virker også fint. MEN jeg har et felt med klokkeslet. Feltets type er "dato og klokkeslet" og den bliver ikke konverteret rigtigt. (klokkeslet er i format ??:??:??).
Hvorfor går det galt der ?
Avatar billede mugs Novice
12. april 2005 - 21:53 #10
Plask - Der fik du mig.

Jeg har afprøvet det og du har ret - data overføres som  f.eks 01-01-1900. går du ind i formatterinf i Excel og formatterer som klokkeslet ændrer den dog formatet til klokkeslet. Hvorfor har jeg ikke noget bud på.

Har andre brugere et bud?
Avatar billede tommyrasmussen Nybegynder
12. april 2005 - 22:01 #11
ØV, jeg havde håbet du havde det rigtige svar, for jeg skulle gerne have det hele op at køre til i morgen tidlig, men sådan er det vel altid ikke ?
Avatar billede tommyrasmussen Nybegynder
12. april 2005 - 22:03 #12
I det første eksempel du kom med, går du ind og formaterer nogle excel felter i forbindelse med overførslen. Kan man ikke lave et eller andet humbug, så man formaterer kolonnen i excel samtidigt med overførslen ?
Avatar billede mugs Novice
12. april 2005 - 22:11 #13
Det er jo netop det jeg gør i det første eksempel. Jeg har sendt et nyt eksempel, hvor der eksporteres både en dato og et klokkeslet og cellerne i Excel formatteres som sådan.
Avatar billede tommyrasmussen Nybegynder
12. april 2005 - 22:26 #14
Tak for indsatsen, men jeg synes den springer decimalerne over denne gang.
Jeg prøver altså ikke bevidst på at være bøvlet, men jeg skulle gerne have trukket noget brugbart ud af det hele.
Jeg har givet dig point som tak for indsatsen indtil videre.
Avatar billede mugs Novice
13. april 2005 - 05:41 #15
Det er min fejl. Ret felttypen i tabel "temp" til dobbelt reelt tal, så også ccess viser decimaler.

Jeg opfatter dig bestemt ikke som bøvlet. Hvis det ikke fungerer, skal du arbejde videre med problemet. Her fungerer det fint.
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