Avatar billede jensen363 Forsker
29. november 2005 - 12:29 Der er 16 kommentarer og
2 løsninger

Import af hierarkidata

Jeg skal have importeret data fra en ekstern datakilde til Access, men data ligger i hierarkiorden, og er derfor ikke lige til at importere.

Al dataregistrering foregår på kontoniveau ( nummerisk ) pr. måned.

Nogle gode ideer, så jeg fortsat kan summere i forhold til det illustrerede hierarki ????

Altså således at data ligger som navigerbare attributter ?

R Resultat
R1 Driftsresultat
  R1A Dækningsbidrag
  R1A1 Omsætning
    R1A1A Pakker Indland
    70001 Pakketype 1
    70002 Pakketype 2
    70003 Pakketype 3
    R1A1B Pakker udland
    80001 Pakketype 4
    80002 Pakketype 5
Avatar billede terry Ekspert
29. november 2005 - 19:02 #1
Your going to have to make your own import routine. Strat by importing into a TEMP table and then open a recordset where you loop through all records.

Can you explain your data a bit more, as I'm not sure if its neceesary to have more than one table?
Avatar billede hekla Nybegynder
29. november 2005 - 19:44 #2
Jeg lavede engang en funktion, som skulle lave noget lignende, hvor der skulle stå én værdi i felt1 og en tekststreng i felt2. Du kan evt bruge den som inspiration:

    Do Until RS.EOF
         
        StrValue = RS.Fields(0).Value ' Værdi til Felt1
        strListOfValues = "<b>" & RS.Fields(0).Value & " " & RS.Fields(1).Value & "</b>" ' Startværdi til Felt2
        RS.MoveNext
       
        'Indre løkke. Opbygger tekststrengen til Felt2
        While Not Mid(RS.Fields(1), 5, 1) = "" ' Bliv ved til der kommer en post med kun fire tegn i Felt2
            strListOfValues = strListOfValues & "<br><br>" & RS.Fields(0).Value & " " & RS.Fields(1).Value ' Tilføj værdier til Felt2-strengen
            RS.MoveNext
        Wend
       
        'Make sure there is something to write
        If Len(strListOfValues) > 0 Then
            'Tilføj post til Tabel1
            With Rst
                .AddNew
                !felt1 = StrValue
                !felt2 = strListOfValues
                .Update
            End With
           
        End If
       
    Loop
Avatar billede jensen363 Forsker
30. november 2005 - 09:09 #3
Jeg har overvejet, om ikke TreeView-funktionen ville være velegnet til formålet. Har I nogle erfaringer med automatisk dataload af hierarkier til denne ????

Umiddelbart vurderet er det netop via NodeID og ParrentID jeg kan sikre de korrekte summeringer i hierarkiet.  TreeView-funktionen skulle så styre strukturen, og data ligge på kontoniveau.

Jeg kunne selvfølgelig oprette strukturen manuelt i TreeView, men der er p.t. tale om 1800 poster i hierarkiet ... ydermere ændrer hierarkiet sig løbende, så et dataload er at foretrække.

Nogle gode ideer ????
Avatar billede terry Ekspert
30. november 2005 - 12:11 #4
A treeview would be a goode idea, but still you need to do it  in code to make sure that the structure is correct. (Which lines in the file are related). So if you can get it in one or more table sthen you can also get it in a treeview.
Avatar billede jensen363 Forsker
30. november 2005 - 12:29 #5
Terry > Can I send you a file with the structure ... maybe you can figure it out ?
Avatar billede terry Ekspert
30. november 2005 - 13:03 #6
Yes, send me the file, but I'm pushed for time right now, so you may have to wait for an answer.

Can you also explain the data?


You say "Al dataregistrering foregår på kontoniveau ( nummerisk ) pr. måned."

But I dont see any month or ammount to sum.

Anyay tell me what you can and I'll take a look.
Avatar billede jensen363 Forsker
30. november 2005 - 13:11 #7
Mail ?
Avatar billede jensen363 Forsker
30. november 2005 - 13:46 #8
What you see, is just the "stamdata"-hierarki ... data is located in a different table with this :

KontoNr    Jan        Feb      ....
70001      125.000    120.000  ....
70002      130.000    110.000  ....
Avatar billede terry Ekspert
30. november 2005 - 15:04 #9
eksperten@NOSPAMsanthell.dk
remove NOSPAM

I'm sure I will have some question after I have seen it.

Can you send me the other table too
Avatar billede terry Ekspert
30. november 2005 - 18:02 #10
I've now had a very quick look at the data and before it can be used for anything at all then it will be necessary to decide what you need from kontohierarki. For example you could just tak ethose starting with a number and make this the konto number, and the remaining text konto text.
For example:

70141 JETPOST NAT REF

would be in tblKont with two fields (kontonr, and kontotekst

Then it woul dbe very easy to have a relationship from that table to the data table on field KontoNr.
Avatar billede jensen363 Forsker
30. november 2005 - 18:47 #11
I am aware of that ... thats not the issue ... kontonr, and kontotekst is in another "stamdata" table. I only need kontonr in the hierarki-table ...

I need a method/module to determine the right nodeId and parrentId in the TreeView. Notice, that kontonr can be found in different levels of the hierarki ( level 2, 3 , 4 and so on )
Avatar billede terry Ekspert
01. december 2005 - 09:50 #12
You have to realise that I have very little knowledge of your data and your reuqirement. Having the full picture does simplify things.

At the moment I dont have the examples you sent me, so cant refer to them. But I remmeber that there was no really difined structure in the hierarki table. The only thing was the lines which contained a kont number/texts. Thus is why I said that you should decide what you need from the table.

Anyway if we take your example above then a method woud be to loop through the records giving each record a parent node when it gets inserted into the final table. This requires some method of recognising when your at the top level and when you change to a lower level. But as I mentioned, there doesnt seem to be a defined structure, so this isnt going to be easy.

Example:

TopNodeName, IsKontoNr, NodeName, NodeText, ChildNodeID, ParentNodeID
R, 0,R, Result, 1, 0
R, 0,R1A, Dækningsbidrag, 2, 1
R, 0,R1A1, Omsætning, 3, 2
R, 0,R1A1A, Pakker Indland, 4, 3
R, 1,70001, Pakketype 1, 5, 4
R, 1,70002, Pakketype 2, 6, 4
R, 1,70003, Pakketype 3, 7, 4
R, 0,R1A1B, Pakker udland, 8, 3
R, 1,70002, Pakketype 9, 2, 8
R, 1,70002, Pakketype 10, 2, 8


From the above example I can always build a tree placing each node at the correct level. I can always find which nodes are related and also which records contain the actual konto number.
Avatar billede jensen363 Forsker
01. december 2005 - 10:05 #13
Hi Terry

I´ve used all night to make the NodeID and ParrentID "hånd-line" ( manually )

I hope you can se what I will achieve ;o)

Access-database sent
Avatar billede terry Ekspert
01. december 2005 - 10:54 #14
I'll take a look as soon as I get a bit of time
Avatar billede jensen363 Forsker
01. december 2005 - 10:56 #15
There´s no hurry ...
Avatar billede jensen363 Forsker
01. december 2005 - 12:32 #16
Hi Terry ...

There´s no need to make a solution, I´ve found a work-around method. Actually I´ve found out, that my data-source could do the work for me/us ... but thank´s anyway.

Place an answer, and get som point´s
Avatar billede terry Ekspert
01. december 2005 - 14:55 #17
I had a look at your dB you sent, still wasnt sure what you wanted.
Avatar billede jensen363 Forsker
01. december 2005 - 15:13 #18
Don´t worry ... I´m not sure either ;o)

Now I have generated the hierarki, placed data on kontonr-level ... and then what !!

Now I have to figure out the calculation within the hierarki
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