Avatar billede the_party_dog Nybegynder
04. maj 2005 - 14:52 Der er 4 kommentarer og
1 løsning

DTS, activeX, vbs og fejl: Type mismatch

Hej Alle!

Jeg sidder med et større problem, jeg har en excel fil som bliver genereret hver uge, som indeholder en masse data fra en SAP database. Den vil jeg gerne have læst ind via en DTS pakke, så jeg kan få fyldt den tabel vi nu skal bruge.

Først kan den normale excel connection i MSSQL 2000 ikke åbne excel filen, så jeg åbner den som en cvs fil. Så nu kommer det spændende:

Mange af mine kolonner i tabellen er af float type, og alle felter i excel filen er bare text. Jeg har prøvet at lave en normal Column copy, men det mislykkes. Så har jeg prøvet at lave et ActiveX script, som trimmede den ene kolonne, for at fjerne mellemum(whitespaces). Den prøvede jeg at lave en CDbl, og CCur, men får hele tiden "Type Mismatch: 'CDbl'" & "Type Mismatch: 'CDCur'"

ActiveX script:

Function Main()
    DTSDestination("PriceCur") = CDbl( Trim( DTSSource("Col012") ) )
    Main = DTSTransformStat_OK
End Function


Jeg kan slet ikke gennemskue det, er der nogen som har en idé? Har prøvet at søge på MSDN og Google, og har set eksempel som prøver på at gøre det samme som jeg vil, men jeg kan ikke få det til at virke.
Avatar billede ldanielsen Nybegynder
04. maj 2005 - 15:36 #1
Prøv først at replace . med ingenting, og derefter replace , med .

Så vil 1.500,45 blive til 1500.45

Function Main()
    DTSDestination("PriceCur") = CDbl(Replace(Replace(Trim(DTSSource("Col012")), ".", ""), ",", "."))
    Main = DTSTransformStat_OK
End Function
Avatar billede the_party_dog Nybegynder
09. maj 2005 - 07:45 #2
Det vil jeg prøve. Men jeg fandt fejlen. Folkenen som har lavet udtrækket til excel filen, har lagt *ind foran nogle af tallene. Det er fordi prisen på varen ikke er den normale, så tænkte de at en * ville vise det. Smart tænkt, bare ikke til et felt hvor der kun skal stå tal.

Men du får tak, vil du have 30 points?
Avatar billede ldanielsen Nybegynder
09. maj 2005 - 10:53 #3
jo tak.
Må jeg have lov at fraråde at du sætter computeren til at læse filer som er udfyldt "i hånden"?  Ellers skal der i hvert fald laves et indtastnings program der gør at fejl ikke kan opstå, for mennesker laver fejl, uanset hvor godt du instruerer dem.
Avatar billede the_party_dog Nybegynder
09. maj 2005 - 11:05 #4
Hehe... Det er ikke indtastet i hånden, det er indtastet til igennem vores indkøbs system. Excel filen er sammenkædning mellem information om tingen vi køber, og dem vi køber det af. Så det er maskin indtastet, men det med stjernen er åbenbart noget alle andre, end mig ved noget om :)

Hav en dejlig dag, og det blev sgu til 60 points! :)
Avatar billede ldanielsen Nybegynder
09. maj 2005 - 11:38 #5
I lige måde
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
Computerworld tilbyder specialiserede kurser i database-management

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