Avatar billede hede98 Nybegynder
09. marts 2010 - 15:35 Der 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.

kunne det evt. gøres via en forespørgelse?
Avatar billede hnteknik Novice
09. marts 2010 - 15:51 #1
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.
Avatar billede hnteknik Novice
09. marts 2010 - 15:54 #2
her er et eks. på import fra XL

Private Sub btnimportKundedata_Click()
    DoCmd.TransferText acImportDelim, "Kundeimport", "KundeImport", Me![Koncerndata]
End Sub

Me![Koncerndata]
angiver hvor fil ligger. Kundeimport er en profil, der fortæller hvordan data er sat sammen
Avatar billede hnteknik Novice
09. marts 2010 - 15:57 #3
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.
Avatar billede hede98 Nybegynder
09. marts 2010 - 15:57 #4
Tjaaa..

jeg vil gerne kunne indtaste følgende i excel

Firmanavn, adresse, kontakt, kampagne
Skal så indsættes i følgende tabeller
TABEL1,Tabel1,Tabel2,Tabel3
10. marts 2010 - 08:40 #5
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.
Avatar billede terry Ekspert
10. marts 2010 - 11:34 #6
"Skrevet ons. d. 10. marts 2010 kl. 08:40:55| #5 "

Wow Christian, you would have gotten your head bitten off in the older version of eksperten where it was possible to give users Karma.

I like your style :o)
Avatar billede hede98 Nybegynder
12. marts 2010 - 08:43 #7
@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.
12. marts 2010 - 09:24 #8
Hede, ja og nu er du dagens topscorer i points paa grund af alle de points du har faaet tilbage.

Jeg er paa arbejde nu, skal kikke i aften (med mindre andre medlemmer til den tid har fundet en loesning.)
12. marts 2010 - 19:28 #9
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.
15. marts 2010 - 07:41 #10
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.
16. marts 2010 - 07:02 #11
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.
18. marts 2010 - 21:56 #12
hede98, saa du mit indlaeg?  Var det nyttigt?  Eller har jeg misforstaaet problemet, i saa fald hvad er din yderligere forklaring?
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