04. maj 2005 - 14:52Der 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.
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
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.
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.
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! :)
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.