09. marts 2010 - 15:35Der er
11 kommentarer og 1 løsning
Import af data til flere tabeller
Hej
Jeg har en database med flere tabeller. jeg vil gerne kunne importere data på en let måde, men til flere tabeller. Jeg har en Firma tabel med f.eks. Firmanavn, adresse o.s.v Så har jeg en kontaktperson tabel, hvor jeg gerne vil indsætte en kontaktperson som "hænger" sammen med firmanavn.
Hvor henter du data fra XL eller ACCESS ? Det kan i begge tilfælde laves automatisk så du blot har behov for at trykke på en knap på en form. har lavet det i flere sammenhænge.
hvis det er ACCESS, så importer tabellerne i den rigtige rækkefølge fra master mod slave og hav evt. tomme tabeller i moderDBen som er hægtet rigtig sammen via nøgler.
Det kan der givet findes en loesning paa, men jeg toever med at gaa i gang. Jeg ser at du har et stort antal udestaaende punkter og spoergsmaal som du ikke har lukket. Naar jeg selv opretter spoergsmaal og der er medlemmer der frivilligt og gratis investerer tid og interesse laegger jeg stor vaegt paa opfoelgning, prompt pointsgivning for brugbare svar, en forklaring hvis svarene ikke var tilstraekkelige, og under alle omstaendigheder oprydning lukning af spoergsmaal saa snart de ikke laengere er aktuelle. Eftersom der ikke er tid til alle interessante spoergsmaal vaelger jeg at arbejde med spoergsmaal fra medlemmer der synes at have samme opfattelse. Med mindre du nu gav dig til at lukke dine gamle spoergsmaal maa jeg derfor forbigaa dette spoergsmaal.
@Christian & Terry Jeg vil gerne undskylde meget, nu har jeg fået styr på alle mine spørgsmål. Jeg kan sagtens se hvad i siger og mener, igen undskyld til alle på Eksperten som har svaret på mine spørgsmål.
Jeg håber i vil hjælpe mig nu :-) Jeg vil meget gerne kunne klikke på en kommafil eller excel fil. Og klik på en knap "import" som henter disse kunder ind, hvis de ikke er oprettet i systemet.
Filen indeholder firma oplysninger og kontaktperson oplysninger. Jeg skal kunne vælge at disse kunder skal være medlem af et udvalg, hvis jeg ønsker dette.
hedeo98, du overraskede mig - jeg er kommet sent hjem (jeg arbejder to timer fra hvor jeg bor) og jeg skal af sted til Oestrig i morgen klokken 5 (to ugers skiferie) og skal have pakket i aften.
Jeg tager komputeren med til Oestrig, og da jeg som regel staar op cirka to timer tidligere end min kone skulle jeg kunne faa lidt tid til at kikke paa det indenfor de naermeste dage. However, should other members of Experten in the meantime come up with a solution I would welcome it.
Jeg har ikke glemt dig - jeg har arbejdet med det i det omfang sneen og konen tillod. Jeg skal fyre et del-svar af:
Du siger i dit oprindelige spoergsmaal at du har en database med flere tabeller, og du naevner en Firma tabel og en Kontaktperson tabel der "haenger sammen" med firmanavn. For at skaffe mig noget konkret at arbejde med har jeg lavet to tabeller, Firma med kolonnerne firmaid, firmanavn, adresse, og branche, og Kontaktperson med kolonnerne kontaktpersonid, firmaid, kontaktpersonnavn, og telefon. Kontaktperson.firmaid har fremmednoegle til Firma.firmaid.
Saa siger du i #4 at du gerne vil kunne indtaste data i excel og saa faa de data indsat i Access tabellerne. Der vil jeg mene at det er lettest hvis du i Access laver en tabel der afspejler Excel regnearket og derefter fra denne Access tabel indsaetter data i Firma og Kontaktperson tabellerne. Det kan goeres paa foelgende maade. Nu maa jeg lige forklare at min Access er med hollandsk tekst (jeg bor i det Belgien) saa de betegnelser jeg skal naevne ikke svarer til betegnelserne paa dansk men jeg haaber det bliver forstaaeligt:
Jeg lavede et Excel regneark hvor jeg i foerste raekke i fem kolonner skrev firmanavn, adrersse, branche, kontaktnavn, og telefon. Saa fyldte jeg vaerdier ind, i raekke 2 firmanavn1, adresse1, branche1, kontaktnavn1, telefon1, i de foelgende raekke tilsvarende blot med , o.s.v. Jeg kaldte regnearket hede. Nye regneark kommer med tre blade. Det er vigtigt at slette de to du ikke bruger.
I Access (2007) valgte jeg den tab der hos mig hedder Externe gegevens, paa dansk maaske Eksterne data eller lignende (den tredje tab helt foroven) og saa under Importeren valgte jeg Excel. Som fil opgav jeg hede, og jeg markerede det tredje valg der hos mig hedder "Koppelen aan de gegevensbron door een gekoppelde tabel te maken' - noget med at kople regnearket til en Access tabel. Saa faar du et billede af regnearket. Saet flueben i firkanten for "Eerste rij bevat kolomkoppen" - at foerste raekke bestaar af kolonneoverskrifter. Dernaest faar du lejlighed til at give den nye Access tabel et navn - jeg valgte Hede. Nu vil du i Access have en ny tabel Hede som viser et billede af regnearket. Hvis du lukker access tabellen, derefter fylder nye vaerdier i regnearket, og aabner access tabellen igen vil access tabellen vise ogsaa de nye vaerdier. Saa du har importeret regneark vaerdierne i Access.
For saa at faa vaerdierne i Firma og Kontaktperson tabellerne har jeg lavet to queries:
qryFirma: INSERT INTO Firma ( firmanavn, adresse, branche ) SELECT firmanavn, adresse, branche FROM Hede;
qryKontaktperson: INSERT INTO Kontaktperson ( firmaid, kontaktnavn, telefon ) SELECT firmaid, kontaktnavn, telefon FROM Firma INNER JOIN Hede ON Firma.firmanavn=Hede.firmanavn;
Jeg har saaledes faaet dataerne fra regnearket i de to tabeller.
Hvad jeg mangler er at kunne koere de to queries automatisk ved, som du siger, at klikke paa en knap "import" og at soerge for naar du fylder nye data i regnearket at de saa ikke forekommer dobbelt i tabellerne. Det skal jeg arbejde videre med hvis jeg faar en feedback fra dig der fortaeller om jeg har forstaaet dig rigtigt og hvorvidt det ovenstaaende bidrager til loesning.
Saa tror jeg at jeg er ved at vaere der. I mit indlaeg # 10 forklarede jeg hvordan et regneark kan koples til en tabel i Access saaledes at rettelser og tilfoejelser i Excel bliver afspejlet i Access. Yderligere forklarede jeg hvordan du saa kan indsaette vaerdierne i tabellerne, naturligvis forudsat at regnearkets kolonner svarer til kolonnerne i tabellerne.
Jeg er saa gaaet videre og har lavet en formular med en knap der fornyer dataerne i tabellerne. Saa naar du foejer nye firmaer til dit regneark eller sletter firmaer eller retter i de bestaaende firmaer saa vil Access tabellerne, efter tryk paa knappen, vise de nye vaerdier.
Du naaede ikke at give feed-back paa mit indlaeg fra i gaar. Jeg haaber at jeg har forstaaet dig rigtigt og at det var saadan noget du var ude efter.
Her er den VBA kode jeg foejede til knappens click-event:
Private Sub Knop0_Click() DoCmd.SetWarnings False DoCmd.RunSQL "DELETE * FROM Firma;" DoCmd.RunSQL "DELETE * FROM Kontaktperson;" DoCmd.RunSQL "INSERT INTO Firma ( firmanavn, adresse, branche ) SELECT firmanavn, adresse, branche FROM Hede;" DoCmd.RunSQL "INSERT INTO Kontaktperson ( firmaid, kontaktnavn, telefon ) SELECT firmaid, kontaktnavn, telefon FROM Firma INNER JOIN Hede ON Firma.firmanavn=Hede.firmanavn;" DoCmd.SetWarnings True End Sub
Hvis du oensker kan jeg e-maile dig Access databasen og regneark.
hede98, saa du mit indlaeg? Var det nyttigt? Eller har jeg misforstaaet problemet, i saa fald hvad er din yderligere forklaring?
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.