Avatar billede kfbirch Nybegynder
19. januar 2009 - 12:00 Der er 9 kommentarer og
1 løsning

Problemer med datatyperne ved sammenkædning fra Excel data

Hej eksperter

Fra vores bogføringssystem får jeg en fil med beholdningsdata i Excel 2003 format. Filen bliver gemt på vores drev. Excelfilen indeholder navngivne områder. Jeg forsøger at sammenkæde et af regnearkets områder til Access 2007, så jeg kan lave forespørgsler på indholdet. Problemet er, at selvom data i regnearket er formateret som tal, bliver datatypen i Access (for nogle af kolonnerne) til tekst, så jeg ikke kan lave forespørgsler med beregninger på f.eks. vores nominel beholdning. Andre kolonner beholder sin formatering. Excel filens navngivne område jeg vil sammenkæde har kolonneoverskrifter i alle kolonner og en tekst i alle rækker i første kolonne. Inde i området er der en del blanke felter fordi bogføringssystemet har flere felter end vi har udfyldt. Er der nogen der kan fortælle mig hvordan jeg får den korrekte datatype på alle mine kolonner i Access?
Avatar billede fdata Forsker
19. januar 2009 - 22:25 #1
Det er en kendt sag, at Access har problemer med felttyperne i Excel.

Hvis dit eneste problem er at tal konverteres til tekst, kan du klare det med en forespørgsel, der "konverterer tilbage igen":
- Opret en udvælgelsesforespørgsel, der ser på din linkede tabel
- Opret felter i stil med    Beh: Val(Beholdning)
  (hvor Beh er et valgfrit navn og beholdning er dit tekstfelt)

Som regel er problemet det omvendte, nemlig at Access opfatter en kolonne som tal, selv om der står tekster i den. I så fald ser det rimeligt sort ud.

Jeg mener at Access fastlægger felttypen efter værdierne i øverste række. Kunne det måske være en forklaring til fejlfortolkningen af din fil?
Avatar billede kfbirch Nybegynder
20. januar 2009 - 09:45 #2
Det er da irriterende, at Excel og Access ikke taler ordentligt sammen. Det er ikke kun første række der bestemmer felttypen. Jeg har prøvet at sammenkæde en anden navngivet område med tal i første række. Access laver også den kolonne om til tekst.

Det med funktionen Val() ser ud til at fungere, bortset fra tallene i den sammenkædede tabel bliver til et andet tal format. F.eks. bliver tallet 3.700.000,00 fra Exceltabellen til 3,7 i forespørgslen. Det må være noget med sprogindstillingerne. Jeg har Engelsk Windows XP og Office, men dansk Access. Ved du hvor det er bedst at ændre sprogindstillingerne? I Windows eller i de enkelte programmer?
Avatar billede sigyn Seniormester
20. januar 2009 - 12:45 #3
Du kan også sige Beh:Beholdning*1, så render du ikke i formatteringsproblemt
Avatar billede fdata Forsker
20. januar 2009 - 23:20 #4
Nope. Har desværre ingen erfaring med "blandet" miljø.

Men man kunne måske prøve
  Val(Replace(Beholdning;".";""))
hvor du altså fjerner de forvirrende punktummer
Avatar billede fdata Forsker
20. januar 2009 - 23:22 #5
Ooops - valgte lige at teste selv. Den funker kun med hele kr.
Avatar billede fdata Forsker
20. januar 2009 - 23:23 #6
Jeps - brug sigyns forslag. Enkelt og elegant ;o)
Avatar billede kfbirch Nybegynder
21. januar 2009 - 08:54 #7
sigyns forslag virker. Send et svar for at udløse point.
Avatar billede sigyn Seniormester
21. januar 2009 - 09:25 #8
Det var et fif jeg lærte af en kollega, engang jeg selv sad og bandede over formateringen når jeg brugte val()
Avatar billede fdata Forsker
21. januar 2009 - 22:09 #9
Giv din kollega en Super Piratos på min regning. Lækkert fif  ;o)
Avatar billede sigyn Seniormester
22. januar 2009 - 06:55 #10
kfbirch: tak for points

fdata: det skal jeg nok :-)
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