26. august 2004 - 09:00Der er
4 kommentarer og 2 løsninger
Import af mange data fra database til Excell
Hej, Hvis jeg skal importere data fra en database til excell, og det er rimeligt mange, så tager det en krig at hente og sætte ind.
Hvilken måde, via VBA er den allerhurtigste, og et eksempel vil være meget velkomment. Jeg skal ikke vælge hvilke felter og kolonner jeg skal brug, jeg skal bare have dem alle.
Opret en forespørgsel i menuen Data/Hent eksterne data/Opret ny forespørgsel. Husk at gemme forespørgslen. Derefter kan du selv indspille den VBA kode du skal bruge ved at vælge menuen Funktioner/Makro/Indspil ny makro og så vælge menuen Data/Hent eksterne data/Kør forespørgsel i database. Når du er færdig med at hente data stopper du indspilningen af makroen. Makroen ligger nu som VBA kode og du kan redigere den efter behov (Funktioner/Makro/Rediger i Visual Basic).
en anden og hurtig mulighed. Du skal bare sætte sti og databasenavn, samt tabelnavn og indsættelsested ind i GetData og så køre GetData. Under tools/references skal du have flueben i Microsoft AcctiveX Dataobject 2.x Library
Option Explicit
Sub GetData() ' Exempel: ADOImportFromAccessTable "C:\FolderName\DataBaseName.mdb","TabelNavn", 1. celle for indsætning ADOImportFromAccessTable "C:\db11.mdb", "kundekartotek", Sheets("Ark2").Range("A1") End Sub
Sub ADOImportFromAccessTable(DBFullName As String, _ TableName As String, TargetRange As Range)
Dim cn As ADODB.Connection, rs As ADODB.Recordset, intColIndex As Integer Set TargetRange = TargetRange.Cells(1, 1) ' open the database Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _ DBFullName & ";" Set rs = New ADODB.Recordset rs.Open TableName, cn, adOpenStatic, adLockOptimistic, adCmdTable For intColIndex = 0 To rs.Fields.Count - 1 ' the field names TargetRange.Offset(0, intColIndex).Value = rs.Fields(intColIndex).Name Next TargetRange.Offset(1, 0).CopyFromRecordset rs ' the recordset data
rs.Close Set rs = Nothing cn.Close Set cn = Nothing End Sub
Har lige chekket og der er ikke den store gevinst ved at køre min makro. Derfor er sjap's forslag det bedste, idet det også give dig muligheden for at refreshe bare ved at højreklikke i tabellen
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.