Avatar billede dsjk Novice
07. oktober 2005 - 11:15 Der er 9 kommentarer og
3 løsninger

advanceret import

Hej

Jeg har en masse filer der skal importeres i en database, og der kommer løbende flere filer, så processen skulle meget gerne være rimelig automatisk.

Problemet er at der i den første linie er nogle oplysninger der skal bruges i de andre linier.
Ex.
DS;;12345;Bladnavn;J;20051001;;1
UA;29;John;Doe;;;Nowhere;13;;;;;9999;;;;;DK;KØBENHAVN K;;MA;;

I den første linie skal jeg bruge oplysningerne "12345" "Bladnavn" og "20051001"
De skal importeres i en tabel hvor i de får 1 id nummer ex 10

Alle de linier der starter med UA skal så importeres i en tabel, hvor i der er felter for hvert ; - og det idnummer den første linie har fået, i eksemplet 10, samt dato for indlæsningen.

Hvordan får jeg ovenstående til at virke, hvis man kan?

/dsjk
Avatar billede terry Ekspert
07. oktober 2005 - 12:27 #1
Not quite sure I understand your problem, but if you can import the files into a TEMP table then you can make some queries or maybe even VBA code to do the rest for you.
Avatar billede terry Ekspert
07. oktober 2005 - 12:28 #2
can you import the records into a temp table?
Avatar billede kabbak Professor
07. oktober 2005 - 12:33 #3
du kan tjekke hvor langt du er nået i tabellen med denne
NYID = DMax("[ID]", "IDTabel") + 1

nu er den nye ID klar, nu bruger du så NYID videre i importeringen
Avatar billede dsjk Novice
07. oktober 2005 - 14:08 #4
ok, det virker sådan nogenlunde.
Har lavet 2 tabeller:
t_bladinfo:
fil_nr (skal ligge 1 til det højeste)
id_nummer (12345)
bladnavn (bladnavn)
dato (20051001)

Her er problemet dog at jeg ikke kan få lagt 1 til i fil_nr, det virker fint hvis det er autonr. men den kan jeg ikke bruge da det skal være en relation til den tabel der indeholder UA alle linierne.
Jeg har i en formular lavet flg.
    Dim sId As Integer
    sId = DMax("[fil_nr]", "t_bladinfo") + 1
    DoCmd.RunSQL "INSERT INTO t_bladinfo ( id_nummer, Bladnavn, dato ) SELECT temp.Fornavn, temp.Efternavn, temp.Vejkode FROM temp WHERE (((temp.record_id)='DS'))"

men mangler lige at tilføje fil_nr med sID.
Hvordan får jeg den flettet ind i ovenstående SQL?

/dsjk
Avatar billede dsjk Novice
07. oktober 2005 - 14:17 #5
fandt ud af det:
    DoCmd.RunSQL "INSERT INTO t_bladinfo ( id_nummer, Bladnavn, dato, fil_nr ) SELECT temp.Fornavn, temp.Efternavn, temp.Vejkode, " & sId & " FROM temp WHERE (((temp.record_id)='DS'))"

/dsjk
Avatar billede dsjk Novice
07. oktober 2005 - 14:36 #6
hmm, det var ikke så svært som jeg havde troet...
2 tilføjelsesforespørgelser, så kører det jo.

Det næste jeg så skal have lavet er at man vælger hvilken fil man vil importere (finder den på serveren fra Access) - og så importeres den ind i temp tabelen og kører de 2 querys.
Avatar billede mugs Novice
07. oktober 2005 - 16:44 #7
Åbn FileDialog fra Access find din fil og overfør filnavnet til et felt i formularen og benyt denne i importkoden. Du finder et eksempel på makeiteasy.dk, vælg Downloads øverst til højre og det hedder:

OpenFileDialog
Avatar billede dsjk Novice
09. oktober 2005 - 11:45 #8
perfekt :)

mugs, Terry og kabbak - kan I ikke ligge et svar, har brugt noget fra jer alle, så I deles om pointene.

Tak for hjælpen...

/dsjk
Avatar billede terry Ekspert
09. oktober 2005 - 11:50 #9
:o)
Avatar billede mugs Novice
09. oktober 2005 - 12:37 #10
tak:o)
Avatar billede kabbak Professor
09. oktober 2005 - 18:22 #11
tak ;-))
Avatar billede terry Ekspert
09. oktober 2005 - 19:05 #12
thanks
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