Avatar billede brynil Nybegynder
28. december 2002 - 21:44 Der er 4 kommentarer og
1 løsning

TransferSpreadsheet - fra Excel til Access

Hej. Jeg er lige faldet over ovennævnte, som er helt nyt for mig. Så, hvis Eksperten ikke falder helt ud, vil jeg meget gerne høre lidt om emnet.

Jeg har lavet en acImport og det fungerer fint og enkelt, med den ene begrænsning, at felter og kolonner tilsyneladende SKAL være ens. Er det korrekt?

Ihvertfald brokkede den sig, da jeg ville importere til en tabel, hvor jeg også har nogle kommentarfelter.

Men det kommer jeg nok ud over vhj af ekstra tabeller og relationer.

acLink er dejlig nem. Men det er vel forståeligt at den er meget langsom mht queries og rapporter??

Er det rigtigt, at der ikke er en tilsvarende funktion i Excel? Egentlig kunne jeg godt tænke mig at køre det derfra, da det vil være i direkte forlængelse af en Excel makro. Jeg har ikke fundet noget om emnet i Excel, men det kunne måske hedde noget andet?

Er der et andet naturligt programlag at køre denne slags kommandoer fra end Access moduler?

Jeg har også tænkt på, at lave acImport til en ny tabel og så lave en update. Mere hvis jeg skulle få problemer med andre nødvendige felter. Det tror jeg som sagt jeg kan omgå, men jeg vil meget gerne høre om nogle umiddelbare erfaringer samt evt. hvor jeg vil kunne finde mest materiale om emnet, helst på nettet.

På forhånd tak - også for relaterede emner jeg ikke er opmærksom på kan være vigtige.
Avatar billede mugs Novice
29. december 2002 - 20:43 #1
Jeg benytter i vid udstrækning at importere fra Excel til Access, og i manmge andre tilfælde at eksportere fra Access til Excel.

Jeg vedligeholder nogle mindre databaser for både privatpersoner og virksomheder. I specielt virksomheder er der mange medarbejdere, der lider af "Access-forskrækkelse". Disse medarbejdere indtaster en del data i Excel fordi det er mere overskueligt, selvom opgaven faktisk er for Access. Jeg lader dem indtaste i Excel, og når der er brug for f.eks en månedlig oversigt, har jeg en medarbejder i virksomheden, der importerer til Access og sørger for, at Access behandler data og udskriver de opgørelser der er brug for.

Ligeledes vedligeholder jeg en database for en større landsdækkende virksomhed. Jeg indtaster måske 15 - 20 recordset om måneden der giver kunden (et indkøbscenter)en månedlig oversigt i både tekst og diagram over hændelserne i den forløbne måned. Virksomheden foretrækker dog at behandle data i Excel (Access-forskrækkelse), og jeg har til det brug lavet en eksport til Excel i VBA, så medaerbejderen blot skal trykke på en kommandoknap.

Jeg kan sende dig et par eksempler, hvis du er interesseret. Blot læg din e-mail.

Nogle gange har jeg behov for kun at eksportere udvalgte data til Excel. Det gøre jeg ved at lade Access oprette en temporær tabel, og ved en forespørgsel sende data herind og derefter eksportere til excel. Herefter slettes den temporære tabel igen.

Når du importerer til Access i foruddesignet tabel, vil Excel bestemme datatypen. Dette gøres ved hjælp af den færste række i Excel. Hvis denne række indeholder tekst, vil hele kolonnen importeres som tekst, uagtet at der måske senere er talfelter. Det kan du komme udover ved at importere til en temporær tabel, og ved hjælp af en Update-sætning eller tilføjelsesforespørgsel sende data ind i den egentlige tabel.

Alt ovenstående foregår ved hjælp af VBA og tilføjelsesforespørgsler.

Jeg har ikke prøvet den anden vej, at importere til Excel fra Access ved hjælp af VBA. Men selvføægelig kan det gøres. Der er jo menuen Filer > Hent eksterne data > Importer.

Glem heller ikke, at du ved hjælp af en sammenkædning i Access kan knytte et Excel-ark til din Access-database. På den måde kan du ændre / tilføje i Excel, og derefter åbne Access, og denne er pr. automatik ajourført uden nogen opdatering.
Avatar billede juks Novice
30. december 2002 - 11:50 #2
jeg ville da gerne se nogle eksempler  jhc-it@tdcadsl.dk
Avatar billede brynil Nybegynder
30. december 2002 - 15:00 #3
29/12-02
Hej mugs. Tak for dine kommentarer. Mht et eksemplar eller to er jeg meget interesseret, hvis det er muligt at se hvordan det er bygget op. Men det vil desværre nok være at skyde over målet, at kunne love at tilbyde dig at arbejde med det professionelt. Det har jeg ikke mandat til.

Og rent faktisk er det mit eget arbejde jeg ønsker at gøre mere effektivt, indtil videre da.

Excel bestemmer datatypen nævner du. Jeg kiggede lidt på hvordan mit var bygget op i formatet og jeg ku se at Excel kun kørte med typen 'General'. Nok fordi jeg henter oplysningerne ind via en copy/paste fra en html-side. Og det 'æder' Access og bibeholder felttyperne text/number osv. Jeg tror at jeg fik fejl fordi jeg forsøgte at smide overskrifter med ind som ikke passede. Men det ser da ud til at være en mulighed blot at ændre celleformatet til general, hvis man vil have Access' indstillinger til at bestemme.

Jeg har senere rodet lidt med ekstra felter i databasen (udover de som importeres), og de bliver der tilsyneladende. Men jeg fandt ud af, at substansen af det materiale jeg skal have ind i databasen, gjorde det lige så nemt, blot at slette hele tabelindholdet og lægge nye ind. De variable oplysninger som jeg egentlig er interesseret i, lægger jeg i andre tabeller og querier mig frem til. Og relationer ændres ikke på denne måde.

Skal jeg være helt ærlig, så var det min mening at smide oplysningerne ned i en ny tabel og så lave en opdatering. Men så opdagede jeg, at det havde jeg ikke prøvet før (tabel/tabel) og at det ikke bare var lige så nemt som jeg regnede med. Der er jo både nye, gamle og ændringer at tage hensyn til, så en update var ikke tilstrækkelig. For mig ihvertfald.

Jeg er faktisk ret interesseret i, hvordan man styrer sådanne handlinger. Jeg tænker på, hvordan man kobler processerne fra Excel og Access sammen, så der kun er et gui for brugeren som indtil videre kun er mig. Ku forestille mig det sku være VB? Eller - jeg ku godt tænke mig at rode med det i .NET, hvis det var muligt. Men så langt er jeg ikke kommet med .net endnu. Men det vil være rart nog at vide, hvilken retning man skal kigge.

Jeg prøvede også linkningen som du nævner. Men herregud hvor går det langsomt. Både at linke og forespørge. Så medmindre jeg har gjort noget galt, så holder jeg mig til 'den rene vare', Access alene, altså. Men jeg synes godt om ideen.

Jeg har heller ikke prøvet den anden vej Access/Excel endnu, men jeg tror som du, at det er muligt.

Ved du om der findes et centralt sted, hvor man kan se de forskellige expressions man anvender med DoCmd? Jeg synes det er lidt tilfældigt det jeg finder i hjælp. Evt. en god bog?

Det var en længere smøre. Hvis du fortsat er villig til at lade mig få indblik i et af dine eksempler, så er du mere end velkommen til at smide det på bryf@pc.dk.

30/12-02
exp var nede igår da jeg ville sende ovenstående. I mellemtiden har jeg fået set lidt på sql, og jeg tror jeg fandt ud af update/insert problematikken. Så det skal jeg se på. Det er mere interessant. Og så fik jeg lige købt mig et par bøger om vba med Excel og Access, så dem glæder jeg mig til.
Avatar billede mugs Novice
31. december 2002 - 00:01 #4
Eksempel sendt til begge brugere.
Avatar billede brynil Nybegynder
31. december 2002 - 12:20 #5
Fornemt - tak skal du ha. Det gir et godt indtryk af hvordan det bygges op.

Et sidste spørgsmål - omkring referencer. Kan man checke om brugeren har de nødvendige referencer til objekt-bibliotekerne (udover at der meldes fejl altså) inden der køres, og kan man sætte referencerne i runtime hvis de ikke er sat?

..og iøvrigt Godt nytår!
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