02. juni 2006 - 23:43Der er
16 kommentarer og 1 løsning
hvordan får jeg forbindelse til en access database fra vba excel
Hej jeg
er ret ny i det her vba ( men synes det er sjovt at rode med)
Jeg har lavet en form hvor jeg har indsat et spreadsheet som jeg gerne vil have henter oplysninger en access 2003 tabel men synes ikke rigtigt jeg kan få det til at virke har kigget en del på eksemplerne her på siden men kan ikke rigtigt finde hoved og hale i det hele er der nogler der kan forklare mig det?
Jeg har oprette databasen test med tabellen test som indeholder navn,dato,beskrivelse det vil jeg så gerne have skrevet ud i spreadsheetet
Opret evt. en ny Projektmappe Start Makrooptager Vælg menuen- Data/Importer eksterne data/Ny databaseforespørgsel Vælg MS Access-database klik Ok Klik dig frem til mappen hvor filen er gemt Marker din databasefil i ruden til venstre (database navn) klik Ok Klik på + ud for din tabel Dobbeltklik på de felter der skal overføres til Exel klik Næste Juster evt. filtrering klik Næste Angiv evt. Sortering klik Næste Marker 'Returner data til Microsoft Office Excel' klik Udfør Vælg placering i regnearket klik Ok Stop Makrooptager
Ja det kan godt være jeg er lidt dum til det her den skriver følgende i modul 1 Range("A1:C3").Select Range("C1").Activate Selection.ClearContents Selection.QueryTable.Delete With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _ "ODBC;DSN=MS Access-database;DBQ=C:\database\test.mdb;DefaultDir=C:\database;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout" _ ), Array("=5;")), Destination:=Range("A1")) .CommandText = Array( _ "SELECT test.id, test.DATO, test.NAVN, test.Behandling" & Chr(13) & "" & Chr(10) & "FROM `C:\database\test`.test test" & Chr(13) & "" & Chr(10) & "ORDER BY test.NAVN" _ ) .Name = "Forespørgsel fra MS Access-database_1" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .PreserveColumnInfo = True .Refresh BackgroundQuery:=False End With Range("A3").Select
Og nu er jeg vant til at kode i php hvor man kan se hvor det er den indsætter værdierne men jeg kan ikke rigtigt se mig ud af denne her kan du hjælpe mig med det mit spreatsheet hedder midt
jeg går ud fra du har fået importeret nogen værdier fra din tabel ved denne operation? - og du har samtidig lavet koden som kan gøre det igen automatisk. Så vidt jeg kan se, har du valgt A1 som placering i arket (Destination)
ja værdierne kommer fint over i arketmen når sætter koden ind i Private Sub CommandButton1_Click()eller i Private Sub midt_Initialize() sker der ingenting
i stedet for at sætte hele koden ind i din CommandButton1, så sæt følgende linie ind : Call <navn på den sub du oprettede>
i makro du oprettede skal =Range("A1")) ændres til =Range(adr)) tilføj desuden følgende 2 linier Dim adr As String adr = InputBox("Hvor skal værdierne placeres ") lige efter Sub <navn på den sub du oprettede> (altså 2 linie)
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.