Office: Auf SQL-Abfrage warten und Code fortsetzen

Helfe beim Thema Auf SQL-Abfrage warten und Code fortsetzen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo alle zusammen, ich habe ein Problem mit einem Excel Makro von mir. Hier mal so eine Art "Pseudocode": 1. Aufrufen eines Excel-Sheets 2. Makro... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Basti-Fantasti, 3. September 2008.

  1. Auf SQL-Abfrage warten und Code fortsetzen


    Hallo alle zusammen,

    ich habe ein Problem mit einem Excel Makro von mir.
    Hier mal so eine Art "Pseudocode":

    1. Aufrufen eines Excel-Sheets
    2. Makro auf diesem Excel-Sheet starten (SQL Abfrage Datenbank)
    3. Diverse Berechnungen mit den aktualisierten Daten durchführen
    4. Speichern und schließen

    Das Problem: Excel versucht bereits weiter zu rechnen, obwohl die SQL-Abfrage der Daten noch nicht beendet ist und es kommt zu Fehlermeldungen!

    Hat hier jemand eine Idee wie man das in den Griff bekommen kann?
    Mit Application.Wait geht es leider nicht, da hier scheinbar auch die SQL-Abfrage unterbrochen wird.

    Vielen Dank schon mal
    Sebastian

    :)
     
    Basti-Fantasti, 3. September 2008
    #1
  2. Moin, Sebastian,

    WAIT hält das Makro für die vorgegebene Zeit an - ich würde entweder auf die API-Funktion SLEEP bzw. auf Application.OnTime und DoEvents zurückgreifen...
     
  3. Hi jinx,

    das funktioniert leider nicht, da bei allen Wartefunktionen die SQL-Abfrage auch angehalten wird...Es ist wirklich sehr frustrierend :-)

    Die doEvents-Lösung eignet sich glaub ich auch nicht, weil damit nur "Events" außerhalb von Excel zugelassen werden (so ist es mir zumindest vorgekommen *Smilie)

    Ich bin für weitere kreative Lösungsvorschläge wirklich dankbar!
    Ist es wirklich so, dass die Makro-Befehle nicht nacheinander sondern quasi alle auf einmal ausgeführt werden? Warum wartet Excel nicht, bis die SQL-Abfrage vollständig ist??

    Liebe Grüße
    Sebastian
     
    Basti-Fantasti, 6. September 2008
    #3
  4. Auf SQL-Abfrage warten und Code fortsetzen

    Morgen Sebastian,

    wenn es sich um eine Querytable handeln sollte nimm .Refresh False.

    Oder (auch bei einem Pivotcache) nimm .BackgroundQuery = False

    HTH, Bernd
     
  5. Hallo bst,

    vielen Dank für Deinen Hinweis! Jetzt klappt es!! :-))

    Viele Grüße und danke für die Hilfe
    Sebastian
     
    Basti-Fantasti, 7. September 2008
    #5
  6. Könntest Du das bitte näher ausführen?

    Bin SEHR daran interessiert!!!

    Danke!
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
  7. Abend,

    da gibt es eigentlich nicht viel weiter zu erklären.

    Code:
    startet die Query und macht sofort mit dem nächsten VBA-Befehl weiter ohne auf die Fertigstellung/das Ergebnis der Query zu warten. Genau so funktioniert z.B. auch ein Shell-Befehl.

    Code:
    startet die Query und wartet bis diese fertig ist.

    cu, Bernd
     
  8. Auf SQL-Abfrage warten und Code fortsetzen

    Danke für die schnelle Antwort!

    startet die Query und wartet bis diese fertig ist.

    cu, Bernd

    Wie würde es dann insgesamt aussehen?

    With Thisworkbook
    .RefreshAll BackgroundQuery = False

    oder

    With Thisworkbook
    .RefreshAll
    .BackgroundQuery = False

    gilt das auch für Verbindungen mit dem Analysis Server?

    BG
    Evren
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
  9. Hallo,

    ich bin immernoch am Suchen...

    With ThisWorkbook.Connections(1)
    .BackgroundQuery = False
    End With

    liefert mit den Fehlercode 438

    "Objekt unterstützt diese eigenschaft oder Methode nicht."

    MsgBox ThisWorkbook.Connections(1).Type

    liefert eine "1" zurück.
     
Thema:

Auf SQL-Abfrage warten und Code fortsetzen

Die Seite wird geladen...
  1. Auf SQL-Abfrage warten und Code fortsetzen - Similar Threads - SQL Abfrage warten

  2. SQL-Abfrage mit where

    in Microsoft Access Hilfe
    SQL-Abfrage mit where: SQL-Abfrage mit where-Parameter. PNrHaupt ist eine Zahl. Ich vermute, da liegt der Fehler, aber ich weiss nicht, wie ich das darstellen soll. Bei jeder neuer PNrHaupt soll eine neue Datei erstellt...
  3. Abfrage mit den jüngsten Einträgen erstellen

    in Microsoft Access Hilfe
    Abfrage mit den jüngsten Einträgen erstellen: Hallo liebe Experten, ich bastel gerade an einer Access-Datenbank für die Besuche meiner Klienten. Aus meiner Tabelle "KlientenT" und einer weiteren Tabelle mit "BesucheT" möchte ich eine Abfrage...
  4. Ergebnis einer SQL Abfrage ausgeben/benutzen

    in Microsoft Excel Hilfe
    Ergebnis einer SQL Abfrage ausgeben/benutzen: Hallo zusammen. Ich arbeite an einem Excel Projekt das mit einer Access Datenbank verbunden ist. In der Tabelle(In Access) "Unternehmen" sind alle Unternehmen gespeichert und ich habe dort für...
  5. Excel 2016 ODBC SQL Abfrage mit Zellbezug

    in Microsoft Excel Hilfe
    Excel 2016 ODBC SQL Abfrage mit Zellbezug: Hallo Zusammen, da ich leider nicht fündig geworden bin mache ich jetzt mal ein neues Thema auf. Ich hab eine SQL Abfrage die auch funktioniert die lautet Code: SELECT "- Standard Calendar"."Day...
  6. SQL Abfrage: Jahreszahl selektieren

    in Microsoft Access Hilfe
    SQL Abfrage: Jahreszahl selektieren: Hallo ich möchte mir über eine Abfrage nur Datensätze aus einem bestimmten Jahr anschauen (Jahreszahlen stehen in CBO:JAHR drin) : Me.Liste.RowSource = "SELECT * FROM Abfrage_Datum where...
  7. Access SQL Abfrage

    in Microsoft Access Hilfe
    Access SQL Abfrage: Guten MOrgen, ich bin grade etwas unglücklich über meine SQL Abfrage Code: SELECT MITGLIED.NAME, MITGLIED.VORNAME, MITGLIED.AUSWEISNR, FucAlter([Mitglied].[Geburtstag]) AS [Alter],...
  8. [VBA] Wert aus SQL-Abfrage in Variable speichern

    in Microsoft Access Hilfe
    [VBA] Wert aus SQL-Abfrage in Variable speichern: Hallo, ich möchte das Ergebnis folgender SQL-Abfrage in einer Variable speichern: Code: SELECT sum(Strom*12) FROM TempTab; . hat jemand eine Lösung hierfür? 353605
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden