Avatar billede region Nybegynder
24. august 2000 - 15:57 Der er 7 kommentarer og
2 løsninger

sammenkædning / import


Jeg har eks. 2 forskellige XLS regneark der skal sammenkædes i 1 Access tabel, dog således at placeringen bibeholdes i forhold til XLS.

Eks.

1.XLS,felt A1 = 3000
2.XLS,felt C4 = 5000

Ved import eller sammenkædning skal min \"TABLE1\" nu indeholde disse værdier i deres respektive XLS placering. Altså 3000 skal stå i kolonne 1, felt 1 og 5000 skal stå i kolonne 3 felt 4.

Kan dette lade sig gøre uden VB... jeg kender udtryksgenerator vældig godt såfremt det hjælper jer....

På forhånd tak for indsatsen..!!!!!! 
Avatar billede nerøs Nybegynder
24. august 2000 - 21:07 #1
Hvad hvis der er data i de samme celler i de 2 ark?
Hvilke data har så \"forret\"?
Avatar billede nerøs Nybegynder
24. august 2000 - 21:12 #2
Mit forslag er at lave et 3. ark som sammenfatter data fra de 2 ark og så linke det til access.

Avatar billede region Nybegynder
25. august 2000 - 08:04 #3
der vil aldrig forekomme data i de samme felter i xls arkene... nu sagde jeg at jeg havde 2 stk dette var kun for at gøre en løsningsproces lettere.... Jeg har sammenlagt ca. 80 ark med data i. Hvis jeg dog havde løsningen på 2 xls ark kunne jeg nok finde ud af resten ( kopiere en evt formel ).

Hele processen beror på oplysniger som sendes til mig fra div. leverandører og som skal visualizeres i et samlet ark. Jeg har såfremt dette ikke lader sig gøre tænkt mig at tildele hver leverandør et ID som så skal medsendes fra den enkelte leverandør for at kunne placere dise i en formular via DLOOKUP funktionen. Det kan godt være denne løsningsmetode gør det lettere at \"samle dataene \"..jeg ved det ikke...!!!!!
Avatar billede nerøs Nybegynder
25. august 2000 - 22:01 #4
Samling af alle data i eet regneark er stadig en mulig løsning.
Følgende kode kan gøre dette:

Kopier den til et nyt modul et regnark

Sub OpretSamleark()
    Dim Regneark As Range, AlleRegneark As Range
    Dim ws As Worksheet
   
    Set AlleRegneark = ActiveCell.CurrentRegion
    Set ws = ThisWorkbook.Sheets.Add
    Application.DisplayAlerts = False
        For Each Regneark In AlleRegneark
            Workbooks.Open Regneark.Text
           
            ActiveSheet.Range(\"A1:G100\").Copy
            ws.Range(\"a1\").PasteSpecial SkipBlanks:=True
            ActiveWorkbook.Close False
        Next Regneark
    Application.DisplayAlerts = True
End Sub

Indtast navnene på regnearkene i en kolonne ( De skal være i samme dir som det aktuelle regneark eller også skal man skrive den fulde sti) og placer curseren på et af navnene(CurrentRegion udvider til hele området)

Køre herefter makroen.

Der oprettes en ny side i det aktuelle regneark med data fra området A1:G100 fra alle de listede ark.
eventuelle data i samme celler vil blive overskrevet af det sidst kopierede.

Det kan sikkert også laves fra Access siden af, specielt hvis det er 2000 udgaven du bruger.


Avatar billede region Nybegynder
28. august 2000 - 09:04 #5
Hmmm...!!!

Nu har jeg oprettet de 2 tidligere omtalte xls ark ( 1 og 2 ).

Jeg har i samme bibliotek oprettet et tredje ark der hedder samlet.xls, hvori jeg har skrevet VB koden i en macro. Når jeg kører denne macro sker der flg. msgbox :

runtime error \'1004\':
\" could not be found. check the spelling of the filename, and verifi that the file location is correct.

if you are trying to open a file from your list of most recently used files on the file menu, make sure the file has not been renamed, moved or deleted.


man kan nu trykke end eller debug.
Ved debug vises der en fejl i VB koden i lfg. linie :

Workbooks.Open Regneark.Text


Jeg synes det bliver lidt kompliceret da jeg som nævnt ikke er god i VB og en evt. ændring i fremtiden på en leverandør vil skabe forvirring for mig( tror jeg nok..!!)

Det jeg også kom i tanke om var at men jo for hver leverandør kunne lave et ydeligere ark i den enkelte projektmappe der så hed det samme for hver leverandør. ( eks NT )

I dette ark lavede man sit ID i kolonne A og i kolone B lavede man en link til den specificerede værdi i hovedarket man ønskede. Ved import eller sammenkædning i Access ville alle oplysninger nu stå i det ark der hedder NT og man behøvede kun at importere dette ark. Hvis man så lavede en UNION-forespørgsel ville samtlige værdier vaære listet med deres respektive ID.

Nerøs >>

Du må derfor ike bruge for meget krudt på at for din VB kode til at virke og du skal nok få nogle point for din entusiasme....

Jeg har det bare personligt bedre med at lade access udføre opgaven for ikke at 2
\"blande\" for mange koder og macroer mm. i flere forskellige programmer og ark.
Fejlfinding vil da være forvirrende af første grad.!!!!!


Hvordan lyder dette i dine ører...og hvor mange point synes du selv at du skal have..??



Avatar billede region Nybegynder
28. august 2000 - 09:05 #6
Det er forresten office 97 der anvendes...
Avatar billede nerøs Nybegynder
28. august 2000 - 21:56 #7
OK region held og lykke med projektet.
Koden jeg sendte indeholder ganske rigtigt en fejl:

Jeg troede at programmet først ville lede det åbne regnearks mappe, men det gør det ikke..
Hvis du indsætter:
Workbooks.Open ThisWorkbook.Path & \"\\\" & Regneark.Text
i stedet for \"Workbooks.Open Regneark.Text\" tror jeg at koden virker.

Points ? Skal vi sige 50?

Avatar billede region Nybegynder
29. august 2000 - 08:11 #8
du skal lige svare først....ikke kommentere!!
Avatar billede nerøs Nybegynder
29. august 2000 - 20:07 #9
OK det prøver jeg!
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