Avatar billede Tago Juniormester
03. november 2011 - 09:54 Der er 14 kommentarer og
1 løsning

Dataoverførsel mellem Excel og access

Er der nogen der ligger inde med et eksempel på en simpel dataoverførsel i VBA mellem access og excel.
Jeg forestiller mig at excel skal slå op i et medlemsregister og på baggrund af det opslåede medlem hente nogle data som skal beregnes og derefter skal nogle nye oplysninger gemmes.

Men et enkempel på en simpel løsning bare med import og export modtages med tak.
Avatar billede supertekst Ekspert
03. november 2011 - 09:58 #1
Hvilken Officeversion anvender du?
Avatar billede Slettet bruger
03. november 2011 - 10:01 #2
Et medlemsregister er oplagt at have som en database, saa hvorfor ikke bare lave en ny database og importere hele excelarket og bruge de forskellige wizards til at lave inputformularer og rapporter?~)
Avatar billede Tago Juniormester
03. november 2011 - 10:34 #3
Office 2010

Regnearket/Mappen er ekstremt kompliceret og består af ca 20 regneark med beregninger og opslag til beregning af: hvad hvis nu
Der er ikke muligt indenfor rimelighedens grænser at omsætte det til Access. Derimod vil det være en kæmpe fordel hvis data kunne gemmes i access således at historikken kan gemmes for senere bearbejdning.
Avatar billede Tago Juniormester
03. november 2011 - 10:39 #4
Medlemsdelen har vi også besluttet at indlæse i regnearket når det åbnes så den er fix'et, men de mere komplicerede beregninger vil vi ikke gemme da de er 'statiske' i al fald i regnearket.
Men StamData sammen med nogle få beregnede data vil vi gemme i databasen. F.eks har vi ingen intentation om at gemme kursen på samtlige obligationer hver dag. Men kursen på de handlede obligationer i forhold til et givent lån skal gemmes på beregningstidspunktet, sammen med et eventuelt provenue.
Avatar billede Slettet bruger
03. november 2011 - 10:57 #5
Du har sikkert 1 ark, som indeholder din medlemsliste. Importer denne ind i en database og lav en hurtig medlemsdatabase...

Herefter kan du paa et ark i Excel goere flg. for at linke til Access:

Data>Data From Access
New source
ODBC DSN
MS access Database
Browse for your database (nogle gange skal du dropdown "List Files of Type" foer man kan browse!~)
Vaelg tabel
Next, Finish
Vaelg hvor du vil indsaette data
OK

Under Data>Connections kan du finde properties og vaelge hvordan du vil opdatere data.
Avatar billede Tago Juniormester
03. november 2011 - 12:30 #6
Et af mine problemer er at jeg kun kan selecte mdb filer i min (Opret kilde til ODBC-datakilde) og min database er accdb.
Avatar billede Slettet bruger
03. november 2011 - 14:03 #7
Har du proevet at vaelge alle formater og saa vaelge din accdb fil..
Avatar billede Tago Juniormester
03. november 2011 - 17:00 #8
Ja så får jeg blot en :  Unrecognized database format
Avatar billede Tago Juniormester
03. november 2011 - 17:01 #9
Skal lige siges at jeg kører Win 7 64bit
Avatar billede Slettet bruger
05. november 2011 - 00:16 #10
Du kunne gemme databasen, som en mdb fil..
Avatar billede Slettet bruger
05. november 2011 - 00:18 #11
Hvis du vil beholde Access 2010 brugerfladen, så kan du evt. dele din database i en 2010 frontend og en mdb backend!~)
Avatar billede Tago Juniormester
05. november 2011 - 16:41 #12
Jeg kan kun gemme som accdb der er ikke andre muligheder.
Men jeg forsøger nu med en omvej og tager en gammel mdb database.
Tømmer den og indlæser mine tabeller ( Hvem sagde møjsommeligt )
Avatar billede Tago Juniormester
05. november 2011 - 16:54 #13
Men det kom jeg ikke meget længere af.
Jeg har hele tiden kunne importere data til Excell, mit problem er at gemme ændringer og at opdatere resultatet af mine beregninger i access
Avatar billede Tago Juniormester
09. november 2011 - 10:14 #14
OK så fik jeg løst det, og til de interesserede er her lidt kode.

Læs fra Access:
---------------------------------------------------------------
Private Sub CommandButton1_Click()
' Kundeliste indlæses
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
'con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.­12.0;Data Source=C:\Users\nelson.barreto­\Documents\BASE.accdb;Persist Security Info=False;"
con.ConnectionString = "DBQ=D:\Test\RR.mdb;" & "DRIVER={Microsoft Access Driver (*.mdb)};"
'Open Db connection
con.Open
Set rs.ActiveConnection = con
rs.Open "Select * from Kunde"
StartRow = 1
Do Until rs.EOF
Cells(StartRow, 1) = rs.Fields(0).Value
Cells(StartRow, 2) = rs.Fields(1).Value
rs.MoveNext
StartRow = StartRow + 1
Loop
Set rs = Nothing
con.Close
Set con = Nothing
End Sub
---------------------------------------------------------------
Skriv til Access:
---------------------------------------------------------------
Private Sub CommandButton4_Click()
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim stacell1
Dim antalLaan
Dim prov
' Læser feltet L8 for at hente denne kunde
stacell1 = Worksheets("Ark2").Range("G8")

'con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.­12.0;Data Source=C:\Users\nelson.barreto­\Documents\BASE.accdb;Persist Security Info=False;"
con.ConnectionString = "DBQ=D:\Test\RR.mdb;" & "DRIVER={Microsoft Access Driver (*.mdb)};"
'Open Db connection
con.Open
Set rs.ActiveConnection = con
rs.Open "UPDATE Laan SET Provenu = " & prov & " WHERE Id = " & [K17] & " AND KundeNr = " & [G8]
 
Set rs = Nothing
con.Close
Set con = Nothing
End Sub
Avatar billede Tago Juniormester
28. december 2011 - 23:54 #15
Lukker nu
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