01. december 2001 - 22:54Der er
12 kommentarer og 1 løsning
Impotere data fra access til excel
Jeg har en kundedatabase i access med navn, adresse osv. Jeg har også et faktura system i excel. Jeg ønsker hjælp til en løsning der gør at når en kunde ringer, får jeg hans navn, adresse, postnr og by og indtaster det i access, der skal så være en knap til at hoppe til excel og den skal så automatisk trække navn, adresse osv over i excel i nogle bestemte felter, kan det lade sig gøre og hvordan?
Dim Obvar As Object, wkb As Object, Rst As Recordset \' Variabelerklæringer Dim i As Integer, Felt1 As Integer, Felt2 As Integer, Tek As String \'Hvis du har oprettet en ny post, skal tabellen først opdateres, ellers ses den nye post ikke i Excel \'Me er den aktive formular og Refresh opdaterer den underliggende tabel / forespørgsel. Me.Refresh \'Næste sætning definerer hvilken tabel der skal levere data og åbner denne Set Rst = DBEngine.Workspaces(0).Databases(0).OpenRecordset(\"Tabel1\", dbOpenTable) \'Excel åbnes ved hjælp af funktionen \"CreateObject\" Set Obvar = CreateObject(\"excel.application\") \'Gør Excel synlig, Du kan også flytte denne linie længere ned... \'hvis eksporten skal være afsluttet når Excel bliver synlig Obvar.Visible = True Her er koden der fungerer i Access97 med kommentarer:
\'Variablen wkb sættes = projektmappen, der tilføjes med metoden Add Set wkb = Obvar.Workbooks.Add \'Der sættes overskrifter på Excel-arket wkb.Worksheets(\"Ark1\").Cells(1, 1).Value = \"Felt 1\" wkb.Worksheets(\"Ark1\").Cells(1, 2).Value = \"Felt 2\" \'Løkken der henter data fra tabel1 i Access og lægger data ind i Excel... \'Hvis der ekporteres tekst erstattes \"Str$\" med \"Format\" For i = 2 To Rst.RecordCount + 1 wkb.Worksheets(\"Ark1\").Cells(i, 1).Value = Str$(Rst.Fields![Felt1]) wkb.Worksheets(\"Ark1\").Cells(i, 2).Value = Str$(Rst.Fields![Felt2]) Rst.MoveNext Next \'Summen af felt2 udregnes Tek = \"=Sum(R[\" + Str$(-Rst.RecordCount) + \"]C:R[-1]C)\" wkb.Worksheets(\"Ark1\").Cells(Rst.RecordCount + 2, 2).Value = Tek \'Linien tilpasser bredden af benyttede kolonner wkb.Worksheets(\"Ark1\").UsedRange.Columns.AutoFit \'Objektvariablen frigives Set Obvar = Nothing End Sub
Hvad gik der galt her? Jeg ved ikke om du kan bruge det - men måske kan det hjælpe lidt på vej. Jeg prøver igen. Dim Obvar As Object, wkb As Object, Rst As Recordset \' Variabelerklæringer Dim i As Integer, Felt1 As Integer, Felt2 As Integer, Tek As String \'Hvis du har oprettet en ny post, skal tabellen først opdateres, ellers ses den nye post ikke i Excel \'Me er den aktive formular og Refresh opdaterer den underliggende tabel / forespørgsel. Me.Refresh \'Næste sætning definerer hvilken tabel der skal levere data og åbner denne Set Rst = DBEngine.Workspaces(0).Databases(0).OpenRecordset(\"Tabel1\", dbOpenTable) \'Excel åbnes ved hjælp af funktionen \"CreateObject\" Set Obvar = CreateObject(\"excel.application\") \'Gør Excel synlig, Du kan også flytte denne linie længere ned... \'hvis eksporten skal være afsluttet når Excel bliver synlig Obvar.Visible = True \'Variablen wkb sættes = projektmappen, der tilføjes med metoden Add Set wkb = Obvar.Workbooks.Add \'Der sættes overskrifter på Excel-arket wkb.Worksheets(\"Ark1\").Cells(1, 1).Value = \"Felt 1\" wkb.Worksheets(\"Ark1\").Cells(1, 2).Value = \"Felt 2\" \'Løkken der henter data fra tabel1 i Access og lægger data ind i Excel... \'Hvis der ekporteres tekst erstattes \"Str$\" med \"Format\" For i = 2 To Rst.RecordCount + 1 wkb.Worksheets(\"Ark1\").Cells(i, 1).Value = Str$(Rst.Fields![Felt1]) wkb.Worksheets(\"Ark1\").Cells(i, 2).Value = Str$(Rst.Fields![Felt2]) Rst.MoveNext Next \'Summen af felt2 udregnes Tek = \"=Sum(R[\" + Str$(-Rst.RecordCount) + \"]C:R[-1]C)\" wkb.Worksheets(\"Ark1\").Cells(Rst.RecordCount + 2, 2).Value = Tek \'Linien tilpasser bredden af benyttede kolonner wkb.Worksheets(\"Ark1\").UsedRange.Columns.AutoFit \'Objektvariablen frigives Set Obvar = Nothing End Sub
medions > aner det ikke i VBA, kender faktiskm intet til excel. Men du kan i databasevinduet vælge \"Hent eksterne data\" og finde filen du vil importere. Derefter følger du blot wizarden.
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.