Avatar billede larskoch Nybegynder
19. marts 2009 - 10:48 Der er 9 kommentarer og
1 løsning

Import Access

Kan dette lade sig gøre:

En makro/vba: Som åbner en Accesbase op, sletter det eksisterende indhold i databasen, importerer nye data fra navngivne områder fra 3 forskellige Excelfiler og lukker derefter ned igen.
Handlingen skulle gerne aktiveres fra en helt 4. Excel fil.
Avatar billede supertekst Ekspert
19. marts 2009 - 11:30 #1
Ja - det kan godt lade sig gøre via VBA
Avatar billede larskoch Nybegynder
19. marts 2009 - 12:02 #2
Hej Supertekst!
Er lige overgået fra LotusSmartsuite hvor database (makroprogrammering) er noget enklere end i Access - men det kommer jo nok med tiden...
Er det muligt, at du kan sende noget makro/vba stump. Går ud fra, at det er både i Access og Excel (hvor jeg skal gøre kaldet) hvor der skal programmeres.
Mvh. Lars
Avatar billede larskoch Nybegynder
19. marts 2009 - 12:21 #3
Ups...det tidl. til Supertekst kom vist ind som et svar

Har forsøgt, at konsolidere dataarkene i Excel men har problemer med mængden af data (excel 2007)og ressourcerne "Excel kan ikke udføre opgaven med de tilgængelige ressourcer...."
Avatar billede supertekst Ekspert
19. marts 2009 - 12:28 #4
Jeg finder et eksempel med Excel som platform, der "trækker" på en Access DB.
Avatar billede larskoch Nybegynder
19. marts 2009 - 12:35 #5
Mit store problem er med Access (Åbne databasen, slette data, importere nye og lukke ned igen). Selve "trækket" i Access via Excel tror jeg jeg har styr på (Udl-fil, Sql m.m.)
Mvh Lars
Avatar billede supertekst Ekspert
19. marts 2009 - 12:44 #6
Hvis du sender en mail - så returnerer jeg et eksempel, der tidligere er udarbejdet til et Eksperten.
Avatar billede larskoch Nybegynder
19. marts 2009 - 12:47 #7
lk@kr.dk
Avatar billede larskoch Nybegynder
19. marts 2009 - 21:09 #8
Hmmmm.. smart metode til opslag i databasen - men løste ikke mit problem omkring Access, hvor jeg efterlyste en metode/makro/vba der kan:
*  Åbne en bestemt Accessdatabase
*  Slette indhold af data i databasen
*  Importere nye data ind i Accesbasen fra navngivne områder i forskellige excelfiler
*  Og derefter lukke ned igen.

Derefter kan man så lave opslag i Databasen i Excel allá den metode som jeg har fået fremsendt.

Mvh Lars
Avatar billede larskoch Nybegynder
20. marts 2009 - 05:39 #9
Super "Supertekst"!

Det var straks bedre - nu har jeg noget at arbejde ud fra.....Tusinde tak.

Smid lige et svar så du kan høste point.

Mvh Lars
Avatar billede supertekst Ekspert
20. marts 2009 - 08:53 #10
Public dXLS
Sub clearTabel()
    Tools_DB.clearTabel
   
    afslut "Tabel slettet"
End Sub
Sub tabelEksport()
    Tools_DB.findSti

    Set dXLS = CreateObject("Excel.Application")
   
    With dXLS
        .Workbooks.Open Tools_DB.xSti + "budget_1.xls"
       
        For Række = 3 To 65000
            If .Cells(Række, 1) <> "" Then
                Tools_DB.opdaterTabel Række
            Else
                Exit For
            End If
        Next Række
       
        .Quit
    End With
   
    Set dXLS = Nothing
   
    afslut "Opdatering afsluttet"
End Sub
Private Sub afslut(tekst)
    MsgBox (tekst)
End Sub

'======Kode i modul ===========
Rem Database-def.
Public db As database, tbl_budget

Public xSti
Public Sub findSti()
    xSti = ActiveWorkbook.Path
    If Right(xSti, 1) <> "\" Then
        xSti = xSti + "\"
    End If
End Sub
Rem Database - rutiner
Rem ==================
Public Sub LukDb()
    On Error Resume Next
   
    tbl_budget.Close
    db.Close
End Sub
Public Sub åbnDatabase()
    findSti
    Set db = OpenDatabase(xSti + "budget.mdb")
End Sub
Public Sub åbnBudgetTabel()
    åbnDatabase
    Set tbl_budget = db.OpenRecordset("budget")
End Sub
Public Sub clearTabel()
    åbnBudgetTabel
   
    With tbl_budget
        antalposter = .RecordCount
       
        For f = 1 To antalposter
            .Delete
            .MoveNext
        Next f
    End With
   
    LukDb
End Sub
Public Sub opdaterTabel(Række)
Dim antalFelter

    åbnBudgetTabel
    antalFelter = db.TableDefs("budget").Fields.Count
   
    With tbl_budget
        .AddNew
        For f = 1 To antalFelter
            .Fields(f - 1) = Ark1.dXLS.Sheets(1).Cells(Række, f)
        Next f
        .Update
    End With
   
    LukDb
End Sub
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