Office: (Office 2010) Sub-Prozedur in der Schleife

Helfe beim Thema Sub-Prozedur in der Schleife in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Warum Shift ? Jede Taste ein keycode. Ich habe lapidar alles untersagt was größer 67 ist.musst du halt auf die gewünschten z.b. Zahlenblock erweitern. Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von gromax, 30. Mai 2020.

  1. Sub-Prozedur in der Schleife


    Warum Shift ?
    Jede Taste ein keycode. Ich habe lapidar alles untersagt was größer 67 ist.musst du halt auf die gewünschten z.b. Zahlenblock erweitern.
     
    fredfred, 11. Juni 2020
    #16
  2. Wie kommst du auf diese Zeile ???
    188 ist das KOmma und hat nix mit Shift zu tun.

    Shift ist die Hochstelltaste.
     
    fredfred, 12. Juni 2020
    #17
  3. Der Trick besteht doch darin unerwünschte keycodes auf 0 zu setzen, wodurch die Taste irgnoriert wird.

    65 ist z.b keycode für das A
    If Keycode = 65 then Keyocde =0 würde das A unterdrücken.
     
    fredfred, 12. Juni 2020
    #18
  4. Sub-Prozedur in der Schleife

    Hallo Fredfred,

    Dein Ansinnen ist mir verständlich und Deine Hinweise kann ich nachvollziehen, aber öffne doch Dein eigenes Beispiel, das Du mir geschickt hast.
    Nach der Auswahl einer Schule möchte ich mit dem Ziffernblock den Wert '2,5' eintippen - schon bei der '2' erscheint das rot hinterlegte Feld mit dem Eintrag 'Error'!
    Gebe ich den gleichen Wert mit der Tastatur (obere Zahlenreihe) ein, so komme ich bis zu '2,' - die dann folgende '5' generiert wiederum den rot hinterlegten Eintrag 'Error'.
    Liege ich denn dabei falsch?

    Viele Grüße
    gromax
     
    gromax, 12. Juni 2020
    #19
  5. diese Zeile steht nicht bei mir im Code. Sondern
    If KeyCode >= 65 And KeyCode 188 Then
    188 ist das Komma.

    Ich habe meine eigenen DB nochmal runtergeladen, die Eingabe über die Zahlenreihe geht.
    Über den Zahlenblock nicht, ist aber auch logisch, weil der Zahlenblock andere keycodes hat die größer als 67 sind.

    die 1 auf dem Zahlenblock hat die 97 die 9 die 105.
    Diese codes must du halt noch erlauben bzw, die die den Ziffernblock aktiviert. das ist die 144
     
    fredfred, 12. Juni 2020
    #20
  6. Hallo Fredfred,

    ich werde noch zum Hirsch! Sorry!

    Nun habe ich folgenden Code:
    Code:
    Wo soll ich denn sonstwo noch etwas zulassen? Muss ich denn im Code vom Formular noch eine Eingabe vornehmen? Oder an irgendwelcher anderen Stelle als eben innerhalb des Klassenmoduls. Da habe ich nahezu alles von Deinem Code abgekupfert.

    Nachdem ich jetzt die Kommazahl eingegeben habe, erscheint im Code...

    Code:
    ...in der Zeile CurrentDb.Execute strSQL, 128 der Laufzeitfehler '3144' - Syntaxfehler in der UPDATE-Anweisung!

    Ist es relevant, dass mein Formular ein Registersteuerelement ist? Der Aufruf der Schule findet im dortigen Hauptformular statt, also nicht wie im Beispiel, das ich Dir zugesandt habe. Dieses musste ich reduzieren, sonst wäre der Versand zu groß geworden!


    Unglaublich, dass ich das nicht hinbekomme!!

    Viele Grüße
    gromax
     
    gromax, 12. Juni 2020
    #21
  7. die wichtigste Information hast du überlesen.
    Entscheidend ist die str() Funktion...
    Str() wandelt das Komma in einen Punkt und bereitet so den Dezimalwert für den SQL-String vor.

    Die Amerikaner verwenden den "." als Komma.

    Ob das auf einem Register steht, ist vollkommen wurscht.
     
    fredfred, 12. Juni 2020
    #22
  8. Sub-Prozedur in der Schleife

    Hallo Fredfred,

    ich habe jetzt den SQL-Code von Dir mit einem Recordset-Konstrukt ersetzt und siehe da - es klappt! Was bin ich froh!!

    Mein Code:
    Code:
    Das ist sicherlich nicht professionell, dennoch würde mich Deine Meinung dazu interessieren.

    Ohne Dich wäre ich nie zu dieser Lösung gekommen, ich hätte wahrscheinlich für jedes der 72 Textfelder den analogen Code eingegeben!?

    Zu Deinem Hinweis:
    Den Zahlentyp Double habe ich schon entsprechend definiert, aber was Du mit "parsen" meinst und wo man dieses macht, weiß ich nicht!

    Trotzdem wäre ich froh, wenn Du Deinen Kommentar noch anhängst.

    Vielen, vielen Dank - auch für Deine Dauerhaftigkeit der Unterstützung.

    Alles Gute
    gromax
     
    gromax, 12. Juni 2020
    #23
  9. Unschöne Lösung mit dem Recordset.

    Du musst doch lediglich um

    .value -> der Wert in der Textbox ein str() setzen

    Das ist doch im Upload so auch drin!
    ------"VALUES (" & lngSchule & "," & .Tag & ", " & Str(.Value) & _

    ---MIND_LWH = " & Str(.Value) & _

    Auch dein Nachtrag mit den Forms-Bezügen gefällt mir nicht.
    Auch das ganze recordset-GEblubbere um die Gesamtsumme zu erhalten, lässt sich mit einer DSum() Zeile erschlagen.
     
    fredfred, 12. Juni 2020
    #24
  10. Hallo Fredfred,

    Deine Hinweise habe ich umgesetzt und es klappt.

    Dass Du die Recordset-Konstruktionen nicht favorisierst, überrascht mich. Diese funktionieren doch echt schnell und sind auch im Nachvollzug "leicht lesbar"; auch habe ich irgendwo gelesen, dass die Dom-Funktionen zu langsam wären und dass ihnen ein Recordset vorzuziehen wäre! Wie auch immer.

    Ich bin froh, dass das Formular jetzt läuft - vielen aufrichtigen Dank!

    Viele Grüße
    und bleib gesund!
    gromax
     
    gromax, 13. Juni 2020
    #25
  11. Präferenz in der Reihenfolge:
    SQL
    VBA
    D-Funktionen

    Da es hier aber um einen einzigen Wert geht, spielt das überhaupt keine Rolle. Insofern ziehe ich die kurze einzeilige D-Funktion dem ganzen RS-Gedöns vor.
    Statt dem SQL könnte man sicherlich auch zu einer RS-Version übergehen, mir persönlich erscheint der SQL-Code übersichtlicher und leicht überschaubar.


    Eine fixe Referenz auf ein Formular in einer Klasse zu setzen, halte ich für sehr fragwürdig. Gegebenfalls sollte man der Klasse die Form-Instanz übergeben, aber keinesfalls darin fixieren. Damit werden unnötige Abhängigkeiten geschaffen.
    Soviel zu deiner Erweiterung die Gesamtanzahl aufs Formular zu bringen.
     
    fredfred, 14. Juni 2020
    #26
Thema:

Sub-Prozedur in der Schleife

Die Seite wird geladen...
  1. Sub-Prozedur in der Schleife - Similar Threads - Sub Prozedur Schleife

  2. "Eigene"excel-Funktion innerhalb einer Sub verwenden

    in Microsoft Excel Hilfe
    "Eigene"excel-Funktion innerhalb einer Sub verwenden: Hallo, ich möchte innerhalb einer Sub eine Berechnung mittels einer selbst erstellten Funktion durchführen. Wie kann ich die Funktion aufrufen? Grüße Reinhard Beispiel zum Verständnis Function...
  3. Problem mit Private Sub Worksheet_Change

    in Microsoft Excel Hilfe
    Problem mit Private Sub Worksheet_Change: Hallo, ich komme nicht weiter mit meiner Worksheet_Change. Ich muss sagen, ich bin kein VB Profi - eher Laie mit Grundverständnis in Coding. Was möchte ich (Erwartung): 1. Wenn eine gewisse Zelle...
  4. Listenfeld in Word 2016

    in Microsoft FrontPage Hilfe
    Listenfeld in Word 2016: Hallo, leider konnte ich keinen Eintrag zu meinem Problem finden: Wegen der größeren Länge von Texten kann ich nicht nur einfach eine listbox verwenden. Die listbox zur Auswahl der Alternativen...
  5. Function Sub und Makro

    in Microsoft Excel Hilfe
    Function Sub und Makro: Hallo zusammen. Ja, auch ich verzweifle gerade. Ich habe folgendes Problem: Da ich quasi ein Makro innerhalb einer Wenn-Dann-Bedingung starten möchte, muss ich den VBA Code in einer Function...
  6. VBA Spalten aus- und einblenden trotz Blattschutz

    in Microsoft Excel Hilfe
    VBA Spalten aus- und einblenden trotz Blattschutz: Guten Tag Ich habe eine Übersicht, in dem die Urlaubszeiträume meiner Kollegen eingetragen werden sollen. Neben Namen, Vornamen und Zeitraum sollen noch weitere spezifische Daten eingetragen...
  7. Aufruf private sub prozedur

    in Microsoft Excel Hilfe
    Aufruf private sub prozedur: hallo, wie kann ich aus einer private sub prozedur eine andere private sub prozedur aufrufen? 156458
  8. Aufruf von Sub im Modul funktioniert nicht

    in Microsoft Access Hilfe
    Aufruf von Sub im Modul funktioniert nicht: Hallo Forum, freut mich hier zu sein und ich hab' gleich mal eine Frage:. Ich möchte eine Datenbank aufsetzen, in die in regelmäßigen Abständen Daten aus Excel Listen eingelesen werden. Ich habe...
  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