Avatar billede mhp_dk Nybegynder
26. juni 2002 - 08:15 Der er 13 kommentarer og
1 løsning

Excel og ODBC

Jeg har et ark som jeg opdatere ved at trykke "Refresh" hvorefter data bliver trukket ud fra Oracle databasen, via en ODBC kobling, jeg ville meget gerne kunne vise i arket hvornår arket sidst er opdateret, håber i kan hjælpe

Mvh Michael
Avatar billede hansk Nybegynder
26. juni 2002 - 09:59 #1
Du optager en macro med din refresh data.

Derefter kan du gå ind i vb editoren og tilføje f.eks:
    Range("A1").Value = Now()

Så får du sat aktuelt tidspunkt ind på den plads du vælger.
Når der skal laves ny refresh skal makroen køres.
Avatar billede mhp_dk Nybegynder
26. juni 2002 - 11:21 #2
Ok men så er problemet så at køre macroen hver gang arket bliver opdateret med Refresh
Avatar billede hansk Nybegynder
26. juni 2002 - 11:27 #3
Nej nej, du kører makroen som indeholder både refresh og datoopdatering.
Makroen kan du så lægge ind i en kommandoknap.
Avatar billede mhp_dk Nybegynder
26. juni 2002 - 11:31 #4
Det var OK hvis ikke lige jeg skulle installere denne macro kanp på alle PCere i huset, så vidt jeg ved kommer disse kanpper ikke med i et ark.
Avatar billede hansk Nybegynder
26. juni 2002 - 11:45 #5
Du skal naturligvis lægge kommandoknappen ind i det ark hvor du skal bruge den.
Så kommer den med når du distribuerer arket.
Avatar billede mhp_dk Nybegynder
26. juni 2002 - 11:47 #6
OK, men jeg ville nu stadig gerne have haft det ind via den "normale" refresh. Men du får points.
Avatar billede bak Forsker
26. juni 2002 - 15:33 #7
Du kan få det ind i den normale refresh, men det kræver lidt ekstra.

Du skal indsætte et Classmodule.
i det indsætter du du følgende:

Public WithEvents qtQueryTable As QueryTable

Private Sub qtQueryTable_AfterRefresh(ByVal Success As Boolean)
Range("k1") = Date & "  -  " & Time
End Sub

Sub InitQueryEvent(QT As Object)
    Set qtQueryTable = QT
End Sub

opret nu et normalt kodemodul og indsæt følgende:

Dim clsQueryTable As New Class1

Sub RunInitQTEvent()
    clsQueryTable.InitQueryEvent _
        QT:=ActiveSheet.QueryTables(1)
End Sub

Kør det sidste modul.
hver gang du refresh'er nu skrives dato og klokkeslet i K1
Avatar billede mhp_dk Nybegynder
26. juni 2002 - 17:35 #8
Jeg får fejlen  "Subscript Out of range" på den nederste
Avatar billede bak Forsker
26. juni 2002 - 19:27 #9
Hedder dit klassemodul Class1  ?
Avatar billede mhp_dk Nybegynder
27. juni 2002 - 07:32 #10
Ja !
Avatar billede bak Forsker
27. juni 2002 - 16:51 #11
Ok, det virker fint her.
Du har husket at få linien
Public WithEvents qtQueryTable As QueryTable
med over i klassemodulet?
og Dim clsQueryTable As New Class1  med i det alm. modul?





Så gå lige om i klassemodulet og forsøg at køre Sub InitQueryEvent(QT As Object)
Avatar billede bak Forsker
28. juni 2002 - 00:42 #12
Har du en mailadresse så kan du få et eksempel
Avatar billede codpiece Nybegynder
11. marts 2004 - 16:29 #13
(ved godt det er for sent, men hvis der er andre der har brug for det samme...)

Lav en ny MSQuery forespørgsel i samme regneark med følgende sætning:
select to_char(sysdate, 'DD-MM-RRRR HH24:MI:SS') LastUpdate from sys.dual

Sæt den ind et eller andet centralt sted og højreklik på den dato der fremkommer; vælg Egenskaber for Dataområde og fjern hakket i Medtag feltnavne. Lav evt en bedre overskrift, f.eks. Senest opdateret

Denne forespørgsel bliver opdateret sammem med de andre i regnearket og skulle derfor give det ønskede resultat

// Codpiece
Avatar billede codpiece Nybegynder
11. marts 2004 - 16:31 #14
Hov, lille fejl:

  select to_char(sysdate, 'DD-MM-RRRR HH24:MI:SS') from sys.dual

(LastUpdate fjernes, navngivning af kolonner virker ikke helt på samme måde som i Oracle)

// Codpiece
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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