Just nu i M3-nätverket
Jump to content

Hämta data från access till excel.


rilleking

Recommended Posts

Hej på er!

 

Jag har en databas med massa uppgifter om båtar som jag skulle vilja få in i mitt excelblad.

Jag har har lyckats med det genom att använda mig av "hämta extern data", "microsoft query", från excel menyn. Allt fungerar bra så. Där kan jag också välja att ta fram data från endast en båt genom att filtrera de olika fälten.

Då väljer jag t.ex att filtrera fält 1 där jag har alla båtnamnen står. På så sätt kan jag få fram alla uppgifterna på den båt som jag väljer.

 

Problemet är bara att jag skulle vilja göra ett makro som gör allt det här åt mig. Och filtreringen ska ske genom att matcha ett båtnamn som står i cell $K$10 i kalkylbladet, med databasen...

 

Jag har skapat ett makro genom makroinspelningen, men jag vet inte hur jag ska bete mig för att kunna använda mig av båtnamnet i cell $K$10, för att filtrera databasen.

 

Så här ser koden ut som jag spelade in.

 

Sub access()
'
' access Makro
'

'
   With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
       "ODBC;DSN=MS Access Database;DBQ=C:\Users\Richard\Documents\båtar.accdb;DefaultDir=C:\Users\Richard\Documents;DriverId=25;FIL=MS Acce" _
       ), Array("ss;MaxBufferSize=2048;PageTimeout=5;")), Destination:=Range("$A$2")) _
       .QueryTable
       .CommandText = Array( _
       "SELECT BÅTDATA.Fält1, BÅTDATA.Fält2, BÅTDATA.Fält3" & Chr(13) & "" & Chr(10) & "FROM `C:\Users\Richard\Documents\båtar.accdb`.BÅTDATA BÅTDATA" & Chr(13) & "" & Chr(10) & "WHERE (BÅTDATA.Fält1='EKEN')" _
       )
       .RowNumbers = False
       .FillAdjacentFormulas = False
       .PreserveFormatting = True
       .RefreshOnFileOpen = False
       .BackgroundQuery = True
       .RefreshStyle = xlInsertDeleteCells
       .SavePassword = False
       .SaveData = True
       .AdjustColumnWidth = True
       .RefreshPeriod = 0
       .PreserveColumnInfo = True
       .ListObject.DisplayName = "Båtar"
       .Refresh BackgroundQuery:=False
   End With
   Range("H11").Select
End Sub

 

EKEN heter båten i det här fallet som jag filtrerat ut från databasen.

 

Vore mycket tacksam för hjälp.

 

/Richard

 

Link to comment
Share on other sites

Borde "bara" vara att ändra denna del

"WHERE (BÅTDATA.Fält1='EKEN')"

till

"WHERE (BÅTDATA.Fält1=" & Blad1.Range("K10") & ")

Kanske att även fnuttarna ' måste vara med:

"WHERE (BÅTDATA.Fält1='" & Blad1.Range("K10") & "')"

 

Blad1 - referensen till bladet där cell K10 finns

rekommendation, ge cellen du hämtar data från ett namn och använd det namnet i koden.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...