29. januar 2003 - 15:33Der er
8 kommentarer og 1 løsning
Data fra Access til Excel regneark
Hejsa,
Jeg spekulerede på om det er muligt at lave en database i Access, hvor man kan oprette f.eks. en produktdatabase, og så kede denne sammen med et bestemt regneark, således at hvis man skriver et bestemt produktnr., så henter den automatisk oplysninger fra databasen om navn, pris osv.
Ud kan via en macro i Excel connecte til din database. Se http://www.eksperten.dk/spm/296411, der burde gøre det meste for dig. Har du brug for mere hjælp, så kom igen...
Det kan også gøres relativt enkelt i følgende to trin:
Når du har oprettet tabellen i Access, kan du kopiere tabellen til Excel (vælg Rediger/Indsæt speciel og husk at markere indsæt kæde). Så har du et regneark med en kæde til din databasetabel.
I Excel kan du så markere den første række (der indeholder tabellens feltnavne) og vælge menuen Data/Filter/Autofilter.
I Excel kan du selvfølgelig også bruge funktionen Avanceret Filter i stedet for Autofilter. Det afhænger af hvor kompliceret din forespørgsel i datatabellen er.
Det forstår jeg ikke... Hvordan gør man det??? Jeg forstår ikke hvordan jeg skal kære dem sammen, og hvordan jeg skal få den til at hente... Mere detaljeret beskrivelse ønskes...
Hvis vi forestiller os at data fra Access er indsat på Ark2 i område A1:C100, bruger du =LOPSLAG() på denne måde.
Ark1: A B C 1 Nr. Navn Pris 2 10 ABC 9,85 3 20 BCA 7,50 4 30 CAB 2,40
Ark2: I A1 Indtaster du et varenr: 10
I B1 vil du gerne se varens navn, og indtaster: =LOPSLAG(A1;Ark1!$A$1:$C$100;2) - de 3 oplysninger i parantesen henviser til: - A1 - den celle hvori du indtaster varenr - Ark1!$A$1:$C$100 - der hvor du har indsat Access-data - 2 - den kolonne, du vil hente data fra, 1. kolonne=varenr, 2. kolonne=varenavn, 3. kolonne= pris
I C1 vil du gerne se prisen for varen, og indtaster: =LOPSLAG(A1;Ark1!$A$1:$C$100;3) Eneste ændring er at 2-tallet er udskiftet med et 3-tal som sidste parameter i formlen.
- Åbn Access - Peg på den ønskede tabel og vælg Kopier - Åbn Excel - Åbn eventuelt det regneark tabellen skal kædes til - eller brug et nyt - Gå i menuen Rediger - Vælg "Indsæt speciel" - Marker "Indsæt kæde" til venstre på skærmbilledet og tryk OK
Det kan gøres på flere måder. Her er en metode uden VBA-kode. En Parameterforespørgsel. Det virker som en længere smøre, men det er kun pga. af detaljeringsgraden. Dette skal kun gøres een gang. Jeg forestiller mig at du har skrevet produktnummeret i A2 og ønsker de resterende oplysninger i B2, C2, D2 osv.
1. Under DATA / HENT EKSTERNE DATA / NY DATABASEFORESPØRGSEL vælger du Access og finder din Database og tabel. 2. På det punkt, der hedder UDFØR skal du vælge "Få vist data eller redigere forespøgslen i Microsoft Query" 3. Du er nu i Microsoft Query og din tabel og de valgte felter er vist. 4. Under "VIS" vælger du "KRITERIER". 5. Nede I Kriteriefelt vælger du nu med.arb.nr 6. I Værdi skriver du [Test] og trykker Enter. (husk firkantparanteserne) 7. Du bliver nu spurgt om en parameterværdi. Tryk bare OK. 8. Under FILER vælger du RETURNER DATA TIL EXCEL. 9. I den boks der nu fremkommer, vælger du "Parametre..." 10.Du vælger nu "Hent værdien i følgende celle:" og udpeger så A2, hvor du havde skrevet med.arb.nr 11.Sæt flueben i "Opdater automatisk, når celleværdi ændres" og tryk OK 12.Udpeg så B1 i "Hvor skal dataene anbringes?" og tryk OK
Hver gang du herefter ændrer værdien i A2 slår excel nu op i din Accessdatabase, og finder de oplysninger du har bedt om. og placerer disse i B2 : xx
the.prince & bak : Ja, så elegant kan det gøres uden VBA (jf. svaret ovenfor fra bak). Så lærte jeg også noget i dag ;o) - jeg kan nu stadig bedst lide at bruge macro-løsningen, da man har meget større frihedsgrader til at manipulere data fra databasen osv... Men er det bare simple opslag, må jeg indrømme, at løsningen fra bak (og de andre også) virker overbevisende :o)
Synes godt om
Ny brugerNybegynder
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.