Avatar billede ransborg Juniormester
08. december 2004 - 15:09 Der er 5 kommentarer og
1 løsning

Hentning af ekstern data

Hej Alle,

Jeg har et regneark, hvor jeg sammenkører to tabeller fra et regnskabssytem via en ODBC forbindelse.

Hele øvelsen kører sådan set fint nok, men da jeg har en månedlig manuel opgave i en opdatering af et kriterie (som angiver måneden), vil jeg lige høre jer, om det er muligt, at det felt automatisk opdateres udfra et felt i regnearket, hvor jeg f.eks. så bare kan skrive den pågældende måned (f.eks. 10411)

Hvorledes gør jeg det smartest?

Pft

Vh
ransborg
Avatar billede stewen Praktikant
08. december 2004 - 15:42 #1
Bruger du bruger ms query - kan du gøre således:

start med at indspille en makro (Funktioner – Makro – Indspil ny makro..)

Gå ind og opdater data – via din query

Nu har du koden der laver et træk hvor datoen er dd-mm-åå

Navngiv en celle [Datofelt]

Den kode du har optaget skal rettes lidt til – alle de steder i din optagede kode hvor der står en dato sletter du alle tegnene mellem ” ” og indsætter & [Datofelt] &

I din VBA editor vælger du den fane hvor du har trækket og datofeltet og indsætter følgende makro:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Dim selections As Range
Set selections = [Datofelt]
If Target.Address = selections.Address Then
       
Application.ScreenUpdating = False

HER INDSÆTTER DU KODEN SOM DU OPTOG TIDLIGERE

End If
   
Application.ScreenUpdating = True
   
End Sub
Avatar billede ransborg Juniormester
09. december 2004 - 11:07 #2
Hej Stevens,

kan du hjælpe mig med tilretningerne, når jeg har skrevet koden herunder?

Sub måned()
'
' måned Makro
' Makro indspillet 09-12-2004 af administrator
'

'
    With Selection.QueryTable
        .Connection = Array(Array( _
        "ODBC;DRIVER={Client Access ODBC Driver (32-bit)};SYSTEM=XXX.XXX.XX.XX;CMT=0;NAM=0;DFT=5;DSP=1;TFT=0;TSP=0;DEC=0;XDYNAMIC=1;RECBLOCK=" _
        ), Array( _
        "2;BLOCKSIZE=32;SCROLLABLE=0;TRANSLATE=0;LAZYCLOSE=1;LIBVIEW=1;REMARKS=0;CONNTYPE=0;SORTTYPE=0;PREFETCH=0;LANGUAGEID=ENU;SORTWEI" _
        ), Array( _
        "GHT=0;SSL=2;SIGNON=3;MAXFIELDLEN=32;COMPRESSION=0;ALLOWUNSCHAR=0;SEARCHPATTERN=1;MGDSN=0;" _
        ))
        .CommandText = Array( _
        "SELECT DBOOMZ60.KLNTOO, DBOOMZ60.REFEOO, DBOOMZ60.ARTNOO, DBOOMZ60.TYPOO, DBOOMZ60.OMSCOO, DBOOMZ60.OOZHU, DBOOMZ60.ORDVOO, DBOOMZ60.REGVOO, DBOOMZ60.FOZHU, DBOOMZ60.FAKNOO, DBOOMZ60.FAANOO, DBOOMZ60." _
        , _
        "BRWROO, DBOOMZ60.NTWROO, DBOOMZ60.IKWROO, DBOOMZ60.FKDTOO, DBOOMZ60.BETLOO, DBOOMZ60.KRTPOO, DBOOMZ60.BTWPOO, DBOOMZ60.GOZHU, DBOOMZ60.GLJWOO, DBOOMZ60.DLJWOO, DBOOMZ60.LOZHU, DBOOMZ60.LVJWOO, DBOOMZ6" _
        , _
        "0.AOZHU, DBOOMZ60.ALJWOO, DBOOMZ60.SRTOOO, DBOOMZ60.KOROOO, DBOOMZ60.DBCROO, DBOOMZ60.PRMOOO, DBOOMZ60.SRVOOO, DBOOMZ60.CNSGOO, DBOOMZ60.LANDOO, DBOOMZ60.AFK1OO, DBOOMZ60.AFK2OO, DBOOMZ60.ARTSOO, DBOO" _
        , _
        "MZ60.FUNCOO, DBOOMZ60.AGHLOO, DBOOMZ60.AGMYOO, DBOOMZ60.HERKOO, DBOOMZ60.ENRSOO, DBOOMZ60.EDIROO, DBOOMZ60.BRWCOO, DBOOMZ60.NTWCOO" & Chr(13) & "" & Chr(10) & "FROM DKBOERMA.NSQERY.DBOOMZ60 DBOOMZ60" & Chr(13) & "" & Chr(10) & "WHERE (DBOOMZ60.FKDTOO>='104" _
        , "1101'' Og <=''1041130')")
        .Refresh BackgroundQuery:=False
    End With
End Sub
----------------------
1041101 angiver starttidspunkt og
1041130 angiver sluttidspunkt

De er navngivet i et andet faneblad (Ark2) som celle B3 (start) og B4 (slut)

På forhånd tak

Vh
Ransborg

PS. husk at smide et svar, så jeg kan tildele dig dine velfortjente point
Avatar billede ransborg Juniormester
09. december 2004 - 11:12 #3
undskyld lige en kommentar...Queryen ligger i Ark2
Avatar billede stewen Praktikant
09. december 2004 - 11:41 #4
B3 og b4 er navngivet som hhv ”start” og ”slut” – med nedenstående kode, vil trækket blive opdateret når du retter ”slut”-datoen!

Bemærk at koden skal sættes ind på fanen og ikke i ThisWorkbook eller Module1….

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Dim selections As Range
Dim ws As Worksheet
Set selections = [Slut]
Set ws = ActiveSheet
If Target.Address = selections.Address Then
       
Application.ScreenUpdating = False

    Sheets("Ark2").Select
Range(“c5”).select ‘Sørg for at det er en celle hvor der findes data fra dit træk
    With Selection.QueryTable
        .Connection = Array(Array( _
        "ODBC;DRIVER={Client Access ODBC Driver (32-bit)};SYSTEM=XXX.XXX.XX.XX;CMT=0;NAM=0;DFT=5;DSP=1;TFT=0;TSP=0;DEC=0;XDYNAMIC=1;RECBLOCK=" _
        ), Array( _
        "2;BLOCKSIZE=32;SCROLLABLE=0;TRANSLATE=0;LAZYCLOSE=1;LIBVIEW=1;REMARKS=0;CONNTYPE=0;SORTTYPE=0;PREFETCH=0;LANGUAGEID=ENU;SORTWEI" _
        ), Array( _
        "GHT=0;SSL=2;SIGNON=3;MAXFIELDLEN=32;COMPRESSION=0;ALLOWUNSCHAR=0;SEARCHPATTERN=1;MGDSN=0;" _
        ))
        .CommandText = Array( _
        "SELECT DBOOMZ60.KLNTOO, DBOOMZ60.REFEOO, DBOOMZ60.ARTNOO, DBOOMZ60.TYPOO, DBOOMZ60.OMSCOO, DBOOMZ60.OOZHU, DBOOMZ60.ORDVOO, DBOOMZ60.REGVOO, DBOOMZ60.FOZHU, DBOOMZ60.FAKNOO, DBOOMZ60.FAANOO, DBOOMZ60." _
        , _
        "BRWROO, DBOOMZ60.NTWROO, DBOOMZ60.IKWROO, DBOOMZ60.FKDTOO, DBOOMZ60.BETLOO, DBOOMZ60.KRTPOO, DBOOMZ60.BTWPOO, DBOOMZ60.GOZHU, DBOOMZ60.GLJWOO, DBOOMZ60.DLJWOO, DBOOMZ60.LOZHU, DBOOMZ60.LVJWOO, DBOOMZ6" _
        , _
        "0.AOZHU, DBOOMZ60.ALJWOO, DBOOMZ60.SRTOOO, DBOOMZ60.KOROOO, DBOOMZ60.DBCROO, DBOOMZ60.PRMOOO, DBOOMZ60.SRVOOO, DBOOMZ60.CNSGOO, DBOOMZ60.LANDOO, DBOOMZ60.AFK1OO, DBOOMZ60.AFK2OO, DBOOMZ60.ARTSOO, DBOO" _
        , _
        "MZ60.FUNCOO, DBOOMZ60.AGHLOO, DBOOMZ60.AGMYOO, DBOOMZ60.HERKOO, DBOOMZ60.ENRSOO, DBOOMZ60.EDIROO, DBOOMZ60.BRWCOO, DBOOMZ60.NTWCOO" & Chr(13) & "" & Chr(10) & "FROM DKBOERMA.NSQERY.DBOOMZ60 DBOOMZ60" & Chr(13) & "" & Chr(10) & "WHERE (DBOOMZ60.FKDTOO>='& [start] &'' Og <=''& [slut] &')")
        .Refresh BackgroundQuery:=False

End With

ws.Select
       
End If

End Sub
Avatar billede kjulius Novice
06. januar 2005 - 02:55 #5
Hej ransborg

Virkede det? Jeg har selv noget lignende i tankerne, så jeg er interesseret i at vide, om svaret var korrekt... Du har ikke accepteret svaret fra stewen, så det har det vel ikke...?
Avatar billede ransborg Juniormester
29. januar 2005 - 08:14 #6
Hej kjulius,

jo det virker fint

Vh
Ransborg
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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