Office: Do...Loop mit Tastatur abbrechen

Helfe beim Thema Do...Loop mit Tastatur abbrechen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hi Ich habe ein Button, mit dem ich beim Click-Ereigniss eine Do...Loop-Schleife auslöse. Ich möchte nun während die Schleife läuft, die Möglichkeit... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von OskiH, 2. Februar 2003.

  1. Do...Loop mit Tastatur abbrechen


    Hi

    Ich habe ein Button, mit dem ich beim Click-Ereigniss eine Do...Loop-Schleife auslöse. Ich möchte nun während die Schleife läuft, die Möglichkeit haben diese abzubrechen, am Besten mit der Tastaturtaste "Esc". Ist das möglich und wenn ja, welchen Code muss ich dafür verwenden?

    Oski

    :)
     
  2. Hallo,

    definiere eine Public-Variable (gleich unter den Optionszeilen ganz oben), mit der Du die Schleife frei gibst. Die Formulareigenschaft "Tastenvorschau" stellst Du auf Ja. Dann kannst Du im Formularereignis "Bei Taste Ab" auf die ESC-Taste abfragen, die Variable setzen und die Schleife somit abbrechen. Wichtig ist, das Du einen DoEvents-Befehl in der Schleife hast, damit das System die Möglichkeit bekommt, Ereignisse überhaupt zu verarbeiten.

    Das Ganze könnte dann ungefähr so aussehen:

    Code:
     
  3. Hallo Oski,

    versuche mal folgendes
     
  4. Do...Loop mit Tastatur abbrechen

    ... oder halt die Taste Untbr auf der Tastatur drücken. (Strg+Pause) *biggrin.gif*
     
  5. \@ Mario

    Hi

    Ich habe deinen Code ausprobiert und es funkt. Ich kann die Schleife stoppen, jedoch möchte ich nun nach dem Stoppen an einem anderen Punkt weiterfahren. Genauer gesagt heisst dass, ich möchte die ganze Prozedur, die ich durch den Button ausgelöst habe verlassen, aber wie?

    Oski
     
  6. Hallo Oski,

    eine Prozedur verläßt du mit

    Code:
     
    Aquarii, 4. Februar 2003
    #6
  7. \@ Nouba

    Hi

    Bin ein VBA-Anfänger, jedoch möchte ich deinen Code gerne ausprobieren. Habe jedoch keinen blassen Schimmer was er bedeutet und wo dieser hingehört. Könntest du mir erkären wo der Code eingesezt werden soll?

    Oski

    Oski
     
  8. Do...Loop mit Tastatur abbrechen

    \@ Aquarii

    Hi

    Ist mir klar das mit Exit Sub.

    Ich habe es anstatt mit Do While nur mit Do versucht und dann eine If...then...Else....Schleife eingebaut und wenn blnSchleife = False Then Exit Sub. Das hat nicht gefunkt weil die Schlaufe nicht mehr enden wollte.

    Also wo kommt den dieses Exit Sub hin?

    Oski
     
  9. Hallo OskiH,

    die ersten drei Zeilen von Nouba kommen in den Deklarationsteils des Moduls, also in den Kopfbereich unterhalb von

    Option Compare Database
    Option Explicit


    Ab der Zeile

    Private Sub cmdLoop_Click()

    beginnt die Prozedur, wobei hier das Ereignis bei Klick einer Befehlsschaltfläche mit dem Namen cmdButton Voraussetzung ist.

    Die solltest du dann entsprechend Deiner Bezeichnung anpassen.
     
    Aquarii, 4. Februar 2003
    #9
  10. Hallo OskiH,

    Dann poste bitte mal hier Deinen Code, dann wird es vielleicht klarer...
     
    Aquarii, 4. Februar 2003
    #10
  11. Hallo Oski,

    Marios Do Loop-Schleife sollte IMO verlassen werden, wenn blnSchleife auf False gesetzt wird. Vermutlich muß KeyPreview der Form in den Eigenschaften auf True gesetzt werden.

    Mein Kode kann so in ein Formmodul übernommen werden. cmdLoop steht für den Namen einer Schaltfläche. Der Kode wird beim Click Event dieser Schaltfläche ausgeführt.

    &H1B (hexadezimal) = 27

    GetKeyboardState fragt den Tastaturstatus ab, wobei im Array das entsprechende Bit gesetzt wird. Wenn Escape gedrückt wird, ist das Bit gesetzt, was mit And 1 abgefragt wird. In VBA gibt es kein Bit-Array, deswegen wird hier ein Byte-Array verwendet.

    1 = True (Wahr)
    0 = False (Falsch)

    1 And 1 = 1
    1 And 0 = 0
    0 And 0 = 0

    1 Or 1 = 1
    1 Or 0 = 1
    0 Or 0 = 0

    mit Not läßt sich die ganze Logik umkehren.

    Statt arrTasten(VK_ESCAPE) = arrTasten(VK_ESCAPE) And Not 1 könnte also auch arrTasten(VK_ESCAPE) = 0 verwendet werden, um das Bit im Array zurückzusetzen. Ich finde aber die andere Schreibform verständlicher.

    SetKeyboardState verrichtet das Zurücksetzen. Anschließend wird noch etwas in die Statuszeile geschrieben, damit man sieht, dass die Schleife abgebrochen wurde. Mit Exit Do wird die Schleife verlassen.

    Auf diese Art und Weise können auch Tasten des Keypads abgefragt werden.

    Ich hoffe, mich einigermaßen verständlich ausgedrückt zu haben.
     
  12. Hi

    Hier mein Code, den ich anhalten und verlassen möchte. Naja, aller Anfang ist schwer!

    Code:
    Oski
     
  13. Do...Loop mit Tastatur abbrechen

    \@Nouba

    Hi, ich habe deinen Code eingesetzt und ausprobiert. Wenn ich nun den Druckauftrag auslösen wollte wurde das Formular sofort geschlossen. Sei mir nicht böse aber dein Code übersteigt mein Können bei weitem. Bei Mattes Code kann ich die Abläufe so schlecht und recht nachvollziehen und deshalb möchte ich seine Version verwirklichen, wenn dies möglich ist.
    Dennoch vielen Dank für deine Erklärungen

    Oski
     
  14. Hallo Oski,

    ich vermisse die Abbruchbedingung mit Esc in Deinem Code.
     
    Aquarii, 4. Februar 2003
    #14
  15. \@Aquarii

    Ist so, weil ich den ganzen Code von Mattes rausgelöscht habe. Ich wollte mich nicht blamieren(wenn das nicht schon geschehen ist *biggrin.gif* ) weil ich den Code vollkommen falsch eingesetzt habe.

    Oski
     
Thema:

Do...Loop mit Tastatur abbrechen

Die Seite wird geladen...
  1. Do...Loop mit Tastatur abbrechen - Similar Threads - Loop Tastatur abbrechen

  2. powerpoint video loop Automatisierung

    in Microsoft PowerPoint Hilfe
    powerpoint video loop Automatisierung: Hallo Forum, ich drehe mich im bei folgendem powerpoint Problem: Ich habe ein Video in Endlosschleife (loop) als 1 .Folie. Das Video startet automatisch bei Beginne der Präsentation und soll...
  3. MS Loop Aufgaben in onenote erstellt in Teams Planner anzeigen

    in Microsoft Teams Hilfe
    MS Loop Aufgaben in onenote erstellt in Teams Planner anzeigen: Liebe Forum Freunde, ich habe in MS Teams ein Team erstellt mit mehreren Kanälen. In einem Kanal nutze ich die notes Funktion (MS onenote) um Besprechungsnotizen und Aufgaben zu erstellen. Im...
  4. Stundenzettel, VBA, MoveNext funktioniert nicht

    in Microsoft Access Hilfe
    Stundenzettel, VBA, MoveNext funktioniert nicht: Hallo, ich habe folgendes Problem und bin um jeden Denkanstoß sehr dankbar! Tabelle tblLOG: Daten einer Stechuhr; Datum, Uhrzeit, Mitarbeiter Tabelle tblKalender: alle Kalendertage bis zum Jahr...
  5. Bestimmte Daten zwischen innerhalb eines Datumsbereichs einer Tabelle Anfügen

    in Microsoft Access Hilfe
    Bestimmte Daten zwischen innerhalb eines Datumsbereichs einer Tabelle Anfügen: Hallo, ich habe per Google und Foren SuFu leider nichts passendes finden können, wage aber zu bezweifeln, dass Access da an seine Grenzen kommt, da es eigentlich recht banal ist. Ich habe eine...
  6. VBA Loop : Werte suchen und löschen

    in Microsoft Excel Hilfe
    VBA Loop : Werte suchen und löschen: Hallo zusammen, ich habe folgende Ausgangslage: Im Tabellenblatt Auswahl sollen Artikel eingegeben werden und via Formel wird der zugehörige Lagerplatz ausgegeben (funktioniert soweit), sodass...
  7. Hilfe! Loop ohne Ende ...

    in Microsoft Excel Hilfe
    Hilfe! Loop ohne Ende ...: Sub FindeProd_Zeilen() Dim c As Range Dim firstAddress As String With Worksheets("Terminverschiebungen").Columns(Spalte_Produktion) Set c =...
  8. Loop / Code soll mehrere Tabellen durchlaufen

    in Microsoft Excel Hilfe
    Loop / Code soll mehrere Tabellen durchlaufen: Hallo Zusammen Ich wende mich erneut mit einer VBA-Problemstellung an euch. Und zwar habe ich in einer Datei verschiedene Sheets, welche in ihrer „Art“ folgendermassen aufgeteilt und vorhanden...
  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