norsemanGrey Skrevet 19. oktober 2009 Del Skrevet 19. oktober 2009 Heisann Jeg forsøker å bruke ADODB til å hente ut verdier fra en Excel "database". En kolonne har numeriske verdier. Men når jeg forsøker å hente de ut vha. koden under får jeg følgende feilmelding: Line 224 : Type mismatch: 'CInt' (-2146828275) vintSort(vintIndex) = CInt(objADORecordset("Sort") & "") + (1000 * vintIndex) Det fungerer fint helt til det kommer en rad uten tall, dvs en tom celle. Hvordan kan jeg ungå at dette skjer? Lenke til kommentar
kaffenils Skrevet 19. oktober 2009 Del Skrevet 19. oktober 2009 Høres ut som om en verdi i raden er for stor for Int datatypen i VBA. Int er 2 byte, bruk Long i stedet. Det vil si at du skal bruke funksjon CLng i stedet for CInt. Lenke til kommentar
norsemanGrey Skrevet 21. oktober 2009 Forfatter Del Skrevet 21. oktober 2009 Høres ut som om en verdi i raden er for stor for Int datatypen i VBA. Int er 2 byte, bruk Long i stedet. Det vil si at du skal bruke funksjon CLng i stedet for CInt. Takk for svar. Jeg skal forsøke det. Men tallene er mellom 0 og 100 så egentlig skulle jeg vel ikke trenge CLng. Lenke til kommentar
kaffenils Skrevet 21. oktober 2009 Del Skrevet 21. oktober 2009 Nå leste jeg hele posten din. Også der hvor det står at problemet oppstår når cellen er tom. Hvilken verdi skal du bruke når cellen har "" eller NULL verdi? La meg anta at du vil bytte ut med 0. Da kan du skrive slik: dim sort as long . . . sort= iif(len(nz(objADORecordset("Sort"),""))=0,0,cint(objADORecordset("Sort"))) vintSort(vintIndex) = sort + (1000 * vintIndex) Hva er forresten poenget med & "" Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå