Aktualizace datového připojení MS Quary Vyřešeno

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

VALL
Level 1
Level 1
Příspěvky: 95
Registrován: únor 12
Pohlaví: Nespecifikováno
Stav:
Offline

Aktualizace datového připojení MS Quary

Příspěvekod VALL » 22 srp 2012 11:19

ahoj,
již nekolikátý den se mořím s následující:
Mám datové připojení pomocí Quary do SQL db. Po aktualizaci připojení, tj, tabulky v xls, potřebuji spustit makro.
Nechci použít OnTime, protože, si nejsem naprosto jist její spolehlivosti v kombinaci s datovým připojením a aktualizací dat na pozadí.
Na všech možných fórech jsem našel řešení QuaryTable_AfterRefresh. Kód přikládám. Bohužel, se mě tato záležitost nepodařila rozchodit.
Podle mě je problém v tom, že datové připojení na SQLdb nevrací QuaryTable objekt, ale ListObject objekt. Bohužel se mě to nedaří překonat.
toto jsem vložil do Class

Kód: Vybrat vše

Public WithEvents qt As QueryTable

Private Sub qt_BeforeRefresh(Cancel As Boolean)

Dim a As Integer
Dim My_Prompt As String

 My_Prompt = "Data will be refreshed."                               ' Initialize prompt text for message box.
 a = MsgBox("Do you want to refresh the data now?", vbYesNoCancel)   ' Get YES or NO result from the message box
 
   If a = vbNo Then                                                  ' Check to see wheather YES or NO was selected.
        My_Prompt = "Data will not be refreshed."       ' Change prompt text for message box.
        Cancel = True                                   ' Cancels the Query Refresh.
    End If

   MsgBox My_Prompt                                      ' Displays message box before refresh (or non-refresh) occurs.
End Sub


tento kód jsem vložil do modulu

Kód: Vybrat vše

  Dim X As New Class1

      Sub Initialize_It2()
        Set X.qt = ThisWorkbook.Sheets(2).ListObjects(1).QueryTable
      End Sub


Tento kód je nabízen Microsoftem a různé mutace se objevují i na webu.

Reklama
VALL
Level 1
Level 1
Příspěvky: 95
Registrován: únor 12
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Aktualizace datového připojení MS Quary  Vyřešeno

Příspěvekod VALL » 24 srp 2012 12:33

Tak jsem na to přišel.

Kód: Vybrat vše

Sub Test1()
Dim wrksht As Worksheet
Dim oListObj As ListObject

Set wrksht = ActiveWorkbook.Worksheets("List1")
Set oListObj = wrksht.ListObjects(1)

  oListObj.QueryTable.Refresh BackgroundQuery:=False
  MsgBox "hot"
 End Sub


Důležitý je příkaz BackgroundQuery:=False, který říká "nepokračuj na další řádek do doby, než se připojení ukončí".


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Aktualizace Win.11
    od DancaDvor » 27 srp 2024 06:54 » v Windows 11, 10, 8...
    4
    3245
    od kecalek Zobrazit poslední příspěvek
    28 srp 2024 19:35
  • Aktualizace 22H2
    od Tomas72 » 24 črc 2024 14:52 » v Windows 11, 10, 8...
    2
    2776
    od kecalek Zobrazit poslední příspěvek
    27 črc 2024 13:30
  • Nejde nainstalovat aktualizace Win 10 64 (KB5046613)
    od Minapark » 16 lis 2024 09:04 » v Windows 11, 10, 8...
    8
    3857
    od Minapark Zobrazit poslední příspěvek
    20 lis 2024 12:00
  • help, aktualizace BIOSu z FC - FE nebo FFc, B550 Gaming X (V2 rev. 1.3) Příloha(y)
    od blatantq » 05 led 2025 14:33 » v Vše ostatní (sw)
    4
    2276
    od kecalek Zobrazit poslední příspěvek
    05 led 2025 16:38
  • Aktualizace pro Windows Security platform – KB5007651
    od mmmartin » 06 úno 2025 15:29 » v Windows 11, 10, 8...
    14
    10017
    od mmmartin Zobrazit poslední příspěvek
    21 úno 2025 17:21

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti