Avatar billede bjarnebit Nybegynder
08. januar 2002 - 16:22 Der er 6 kommentarer og
2 løsninger

SQL kolonne format

Jeg forsøger at hive linie beløb ud af min Oracle database til Excel via SQL. Det ser ca. ud som følgende og virker MEEENN.....

.....Åbner ODBC osv...
    Sql = \"Select ItemID, InvoiceDate, LineAmount, InvoiceId, InventTransId FROM CUSTINVOICETRANS \" & _
    \"WHERE (DATAAREAID=\'dat\') AND \" & _
    \"(InvoiceId= 989396)\"
    Set CUSTINVOICETRANS = axtest.OpenRecordset(Sql)
   
    Set currentcell = Worksheets(\"ark2\").Range(\"A1\")
    Do While Not CUSTINVOICETRANS.EOF
        Set Nextcell = currentcell.Offset(1, 0)
        Row = Format(currentcell.Row)
       
        Range(\"A\" + Row) = CUSTINVOICETRANS!ItemId
        Range(\"B\" + Row) = CUSTINVOICETRANS!LinieAmount
        Range(\"C\" + Row) = CUSTINVOICETRANS!InvoiceDate
        CUSTINVOICETRANS.MoveNext
LOOP

Landet ligger sådan at kommatal (REAL) bliver til Heltal. F.eks. bliver 11,95 til 1195 !!! Hvad gør man for at undgå dette ?
Avatar billede tjacob Juniormester
08. januar 2002 - 16:42 #1
Du kunne evt prøve at sætte følgende linie ind før hver Range kommando:

Range(\"X\" + Row).NumberFormat = \"##0.00\"

(kommer lidt an på dine talformater)

/tjacob
Avatar billede bjarnebit Nybegynder
09. januar 2002 - 07:49 #2
Ja jeg tænkte det samme, men her efter bliver 11,95 til 1195,00. Det somundre mig er hvordan f...... at tabellerne har gemt deres kolonne definitioner. For skal jeg yderligere demonstrere så bliver 100,- kr rigtigt til 100,- kr. (Se nedenstående tabel)

100,00 -> 100,00
100,10 -> 1001,00 !
100,11 -> 10011,00 !!

Men dette sker kun ved SQL. Hiver man ud via MSquery er alt OK.

Andre Bud ?
Avatar billede proaccess Nybegynder
09. januar 2002 - 08:59 #3
Du kan eventuelt lede efter en funktion til REPLACE... For at udskifte , med .

Avatar billede tjacob Juniormester
09. januar 2002 - 12:54 #4
Jeg tror at proaccess er inde på det rigtige. Jeg mener at jeg har læst et eller andet sted at SQL kører efter amerikansk syntax mht decimaler og tusindtalsseparatorer, dvs bytter om på \'.\' og \',\'
Avatar billede bjarnebit Nybegynder
09. januar 2002 - 14:47 #5
Måske vi er inde på noget af det rigtige her.. Jeg har yderligere udlæsninger i sætningen, hvor jeg laver en SUM(...) på et par felter og disse går fint igennem som kommatal (long). Jeg kan ikke ligenu gennemse REPLACE muligheden. Jeg har ikke mulighed for replace \",\" med \".\" i databasen, så det skal gøres i SQL sætningen ?!?

Tror I det måske kunne ligge i ODBC-engine ? Skulle man prøve med ADODB ?

Bit
Avatar billede bjarnebit Nybegynder
09. januar 2002 - 15:26 #6
Ja hvorfor prøver man ikke bare!?

Det virker fint med ADO istedet for ODBC ?!!

Så I har nok begge lidt fat i det rigtige mht. \".\" & \",\" blot det er ODBC tilgangen som gør forskellen.

Hvorfor dette så er tilfældet ??

Jeg vil gerne belønne jer begge med point, hvis I vil oprette et tomt svar.

Bit
Avatar billede proaccess Nybegynder
09. januar 2002 - 15:29 #7
Takker ;-)
Avatar billede tjacob Juniormester
09. januar 2002 - 19:12 #8
Også her
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
Kurser inden for grundlæggende programmering

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