Office: (Office 2003) Kombobox auslesen und weitergeben

Helfe beim Thema Kombobox auslesen und weitergeben in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Also, ich denke, wir haben es hier mit einigen kleinen Missverständnissen zu tun: Punkt 1: Code: Me.Leistung.Visible = Not Me.DauerauftragUS Das... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Adversarius, 18. November 2013.

  1. Kombobox auslesen und weitergeben


    Also,
    ich denke, wir haben es hier mit einigen kleinen Missverständnissen zu tun:

    Punkt 1:
    Code:
    Das fehlende Leerzeichen war nur ein Tippfehler? Dass das Me eine Referenz auf das Formular ist und Me.Feldname ein Control in dem Formular, in dessen Codemodul du dich befindest, ist klar?
    Me.Feldname.Visible = erwartet hier entweder true oder false.
    Eine Umschaltfläche wie Dauerauftrag, hat entweder den Wert true oder false und kann somit als "Ersatz" für einen hartcodierten Wert dienen.
    Me.Leistung.Visible = Not Me.DauerauftragUS bedeutet also in Langfassung:
    Me.Leistung.Visible = Not (Me.Dauerauftrag = true).
    Alle Klarheiten beseitigt *biggrin.gif* ?

    Punkt 2
    Der arme User hatte hier doch noch gar keine Chance, irgendein Feld auszufüllen *wink.gif* . Die Codes für die Pflichtfelder sind erstmal nicht falsch, aber an der falschen Stelle. Diese Prüfungen gehören in das Formularereignis Vor Aktualisierung. Ich würde sie auch komplett melden, nicht alle einzeln, dazu kannst du z.B. die Eigenschaft Marke (Tag) der Felder nutzen und eine Schleife über alle Pflichtfelder drehen:
    Code:
    Punkt 3
    Ja, das Requery sollte beim Anlegen gemacht werden, für das Formular ist es nicht nötig, aber für das Ufo mit den Banfnummern zwecks aktueller Filterung bzw. für das geteilte Formular. Beim geteilten Form könnte ein Me.Requery ausreichen (Achtung, springt möglicherweise auf den ersten Datensatz). Versuch mal ein Me.Refresh.
    Wenn du auch in deiner Nicht-Forums-Version jetzt ein Ufo hast oder das geteilte Formular das auch so braucht, musst du dich mit dem .Requery direkt an das entsprechende Ufo/Formularteil wenden.

    Punkt 4
    Ein Standardwert gilt nur für neue Datensätze. Du hast aber ja "alte", per Banf-Generator schon angelegte, da musst du dann entweder schon beim Banf anlegen oder an sonst einer geeigneten Stelle den Wert direkt setzen (Me.BestInfo = "Standardauftrag").

    maike
     
  2. Manchmal muss ich ja manches auch erst mal aus der Entfernung begucken. Dabei ist mir aufgefallen, dass ich das ganz schön komplizert finde, das ganze Procedere.

    Deine User wählen doch rechts aus dem geteilten Formular/Ufo ihre Banfs. Da wäre es viel stringenter, wenn sie an der Stelle auch die Daueraufträge finden (statt mit drei anderen Knöppen rumzutüdeln, die dann eh keiner in der richtigen Reihenfolge betätigt *biggrin.gif* , oder)?

    Mir schweben rechts statt des Banf-Ufo zwei schicke Listenfelder vor, oben eins für die Dauerauftragsstandards und drunter eins für Banfs.

    Beim Öffnen wird im Hauptform weiterhin die nächste freie Banf angeboten und bei Klick auf den Button Anlegen werden dann die restlichen Felder sichtbar gemacht, Belegt true gesetzt usw. Bei Auswahl neue Banf dann wie gehabt.
    Bei Auswahl eines Dauerauftragsstandards wird der Code der jetzt bei Anlegen läuft (der Teil für Dauerauftrag) ausgeführt, bei Klick auf Anlegen dann wie oben, Belegt auf true gesetzt usw.

    maike
     
  3. Moin Moin,

    erstmal : NATÜRLICH hast du völlig Recht, dass das vorher völlig umständlich war. Hab nur versucht, nen Ansatz zu finden von dem ich dachte, ich bekomme das mit meinen bisherigen Kenntnissen hin, war nix *tongue.gif*

    Fand die Idee mit den Listenfeldern Spitze, hab die nun zum ersten Mal benutzt , nachdem ich mich damit beschäftigt hab und es klappt schon sehr gut und ist wirklich schick *Smilie .

    Das Problem mit dem Standardwert war so wie du gesagt hast, hab den nicht mehr im Form, sondern direkt in der Tabelle gesetzt, jetzt klappt auch das.

    Ich muss hingegen gestehen, dass ich deine Pflichtfeldlösung nur bis "bei Aktualisierung" nachvollziehen kann, finde weder die Eigenschaft Marke , noch schnall ich den Code mehr als stückhaft.

    Ich müsste mal wissen, was jetzt wirklich der Unterschied, zwischen Requery und -fresh ist !? (Ich habs aber soweit ganz vernünftig mit refresh beim Dummy´s generieren Form gelöst bekommen, auf dem Besttellungshauptform klappts aber immernoch nicht, obwohl ich die halbe Nacht rumprobiert habe und das wie du gesagt hast ans Ende gestellt hab).

    Was noch sehr schön wäre, was ich aber einfach nicht hinbekomme ist eben , dass wenn ich nen Standard anlege, also in das Listenfeld klicke, dieser sozusagen zum aktuellen DS wird (also die Banf,etc., auch in den Textfeldern anzeigt,etc.).

    Und ich hab noch eine Frage: kann ich nicht per Code:
    den Lieferanten auch aus dem Listenfeld in ein Kombo übergeben ?(oder liegt es daran, dass diese im Kombo als Zahlen hinterlegt sind?) Musste jetzt ein zweites Felddrüberlegen und wieder wechselseitig ein und ausblenden.

    Achso und ein Bemerkungsfeld hab ich nachträglich noch eingefügt, dass er aber nicht mit leert, wenn ich ne Bestellung tätige (aber alle anderen).

    Könntest du da nochmal rübergucken, ich komm echt nicht weiter!?

    Liebe Grüße
    Adversarius
     
    Adversarius, 22. November 2013
    #18
  4. Kombobox auslesen und weitergeben

    Geht doch voran *wink.gif* . Ich hab' hier zu hause kein Office, ich seh' mir den Rest dann irgendwann Montag an. Aber einiges geht sicher auch so:
    Die Eigenschaft Marke findest du zumindest bis Access 2003 in den Eigenschaften der Felder unter dem Reiter Andere, irgendwo unten. Da schreibst du dann bei allen Pflichtfeldern ein gemeinsames Tag rein, dass du im Code auswerten kannst. Der Rest ist schnell erklärt:
    Code:
    Tja, wenn ich das mal so genau wüßte. Also, bei Requery wird die Datenherkunft (des Formulars, des Listenfeldes ...) komplett neu abgefragt - d.h. du siehst z.B. auch Änderungen die andere in der Zwischenzeit an den Daten gemacht haben, es gehen aber evtl. Filter verloren und du landest standardmäßig auf dem ersten Datensatz, wenn du das nicht per Code verhinderst (alte ID merken und per FindFirst oder Bookmark wieder ansteuern).
    Refresh aktualisiert die Anzeige der aktuellen Datenherkunft, d.h. Filter und Datensatz bleiben erhalten, du siehst aber nicht, was andere in der Zwischenzeit an anderen Datensätzen gewerkelt haben.
    Insofern wäre für das Banf-Listenfeld ein Requery sinnvoll, der Filter ist ja fest und der erste Datensatz vermutlich sogar erwünscht.
    Für das Formular zum Eintragen sollte Refresh, wenn es denn ausreicht, die bessere Alternative sein.

    Hast du die Listenfelder direkt im Hauptformular? Steht die Eigenschaft Mehrfachauswahl auf Nein? Sind alle Spalten des vorherigen Kombis auch im Listenfeld? Wenn alles drei zutrifft, könntest du einfach den Code, der bei Anlegen für den Standard ausgeführt wird, z.b. ins Doppelklick-Ereignis des Listenfeldes legen. Dasselbe für Banf, nur dann eben den anderen Teil.

    Ich vermute ja. Nimm in die Abfrage für das Listenfeld auch die LieferantenID mit auf und setz' die Spalte auf Breite 0, dann stört sie nicht und du kannst den Wert an das Kombi übergeben.

    maike
     
  5. Halli Hallo,

    also Fortschrittsprotokoll *wink.gif* :

    Ich habe das Markenfeld gefunden (wirklich unter Andere , das Letzte) und sowohl mit "Pflicht" (und Ohne "") ein Feld probeweise versehen. Er hängt sich aber sofort auf, geht ins Codefenster, startet den Debugger markiert mir dieses Zeile Code:
    und sagt "Laufzeitfehler 438 , Objekt unterstützt diese Eigenschaft oder Methode nicht". Hätte ich im Code noch was anpassen sollen (bin mir keines Fehlers bewusst).

    Listenfeldübergabe klappt jetzt (ich hatte vergessen in der Referenztabelle Firmen, die für die Daueraufträge notwendigenen Firmen zu hinterlegen und die ID´s statt den Namen in die Dauerauftragstabelle zu kopieren) LÄUFT *Smilie

    An den anderen Sachen bastel ich noch.
     
    Adversarius, 23. November 2013
    #20
  6. Hallo, probiere
    Code:
    Einige Steuerelemente habe keine Value-Eigenschaft (z.B. ein Button).
     
  7. Nabend Marsu !

    Ja top, jetzt klappts *biggrin.gif* Vielen Dank! (Natürlich auch Maike!)

    Code:
    allerdings geht er dann wieder in den Codebereich und startet den Debugger. Das soll ja eigentlich nicht passieren (die User denken ja, Sie hätten das Programm getötet ...). Kann man das irgendwie mit ner Exit Sub Funktion lösen ?

    Gruß Adversarius
     
    Adversarius, 23. November 2013
    #22
  8. Kombobox auslesen und weitergeben

    Bei welchem Control passiert das?
    Welche Zeile wird markiert
     
  9. Bei keinem bestimmten Control, er meckert natürlich bei egal was ich mache (weil ja VOR AKTUALISIERUNG), also auch wenn ich was eingetragen habe und in die Entwurfsansicht gehen will und eigentlich immer solange Felder nicht erfüllt.

    Er springt dann zu:
    Code:
    Ausserdem kommt das Fenster 2 Mal , und ich muss 2 mal ok klicken (die msg Ansage was noch gefüllt werden muss)
     
    Adversarius, 23. November 2013
    #24
  10. Datensatz entsprechnd Auswahl im "freie Dummy´s Listenfeld"
    Ich will ja nur dass er auch zu diesem Datensatz geht, der rest klappt ja bereits (und nen Datensatzmarkierer für Listenfeld gibts nicht oder?)

    Code:
    Er soll ja quasi zu dem Datensatz mit der BestellbuchID gehen (Column 0).Ich weiss nur nicht ob die Syntax so stimmt!?
     
    Adversarius, 23. November 2013
    #25
  11. *confused.gif*
    Ist das nicht der Sinn von PFLICHT-feldern, dass sie ausgefüllt werden MÜSSEN?

    Wenn du ausserhalb des Detailbereichs auf dem Formular einen Button klickst,
    wird der aktuelle geänderte Datensatz gespeichert.
    Das Gleiche gilt für einen Wechsel in die Entwurfsansicht.
    Das Verhalten ist also normal und von dir so programmiert. *wink.gif*

    Mach die Eingaben über die ESC-Taste rückgänging, wenn nicht alle Felder ausgefüllt sind und du in den Entwurf wechseln willst.

    Ein gleiche Möglichkeit würde ich übrigens auch dem User anbieten, indem die MsgBox über einen Abbrechen-Button verfügt.
     
  12. Ja das ist klar Marsu,

    aber ich dachte, wenn der ok Button auf dem Hinweis für die fehlenden Felder betätigt wird, dass er das speichern abbricht und dann die Möglichkeit zum weiter eingeben gibt und eben nicht in den Debugger geht (das kann man doch unterdrücken, irgendwie, dachte ich).Am besten wäre ja ein ok Button nach dem man die fehlenden ergänzt und ein verwerfen (abbrechen button).

    Kannst du so aus dem stehgreif sagen, was da rein muss (sind das nur zweimal vb XY Einschübe?)
     
    Adversarius, 23. November 2013
    #27
  13. Kombobox auslesen und weitergeben

    Wenn so wie geschildert direkt nach der MsgBox der Debugger anspringt, ist da was faul.
    Wenn der Debugger auf der gezeigten Zeile landet, dann ist das auch kein Fehler im Code BeforeUpdate, sondern bei BestellungNeuB_Click(). Versuchst du da möglicherweise, das bereits geöffnete Formular BestellungNeu nochmal zu öffnen?

    Und wenn das Fenster 2x erscheint, dann wird das Formular von 2 Stellen aus aktualisiert (Requeries z.B. ...)

    Die andere Geschichte ist mir nicht ganz klar, sind denn jetzt die Listenfelder im Formular "BestellungNeu" oder nicht? Und der Datensatz ist bereits angelegt? Wenn beides ja, dann setze einen Filter:
    Code:
    'column(0) ist die Standardeinstellung, die muss nicht angegeben werden.

    maike
     
  14. Hallo Ihr beiden lieben Helfer!

    Also, nach EINIGEM rumprobieren unter Berücksichtigung aller euerer Ratschläge, funtkioniert nun alles ausser den Pflichtfeldern.

    Ich habe immernoch das doppelte Öffnen des Meldungsfensters, welches ich bisher so modifiziert habe :

    Code:
    Allerdings weiß ich nicht, ob die OK-Cancel Schaltflächen so überhaupt mit einer Funtkion belegt sind (oder nur da und klickbar sind und das Fenster schließen).

    Die Verdopplung wird sicher vom Requery kommen, aber wenn ichs rausnehme, aktualisiert er die hälfte der Prozesse nicht mehr so schön, wie jetzt. Ich finde da keinen Zwischenweg.

    Bis auf die Dopplung funktioniert die Prüfung aber wie Sie soll, in den Fällen
    1.Eintragen in Felder in der Detailansicht in DS des aktuellen BDummys.
    2.Anklicken eines freien Dummys in der FD Liste.
    3.Anklicken eines Dauerauftrages in der DA Liste.

    Wenn Was fehlt kommt das Fenster eben (2X), man trägt es nach, alles gut.

    Nun aber den (nicht unwahrscheinlichen Fall) man ist genervt davon und klickt auf einen anderen Dummy oder in die Dauerauftragsliste (was acnewrecord auslöst), dann kommen jeweils immer andere Debugpunkte. (Erkenne da auch keine Systematik).Und der Filter auf den er springt (Debug Beispiel in meinem letzten Thread), ja das ist im Hauptmenü vorher, der Button der dieses Form öffnet und den Filter für die unbelegten einsetzt.

    Ich musste nur das noch einfügen
    Code:
    damit ich hinterher wieder normal weitermachen kann, war aber nur gute übung, das selbst so raus zu fummeln.Jetzt klappt das auch top 1 *Smilie
     
    Adversarius, 24. November 2013
    #29
  15. Hallo!

    Nimm doch das Code:
    aus dem Bestellen Button raus. Wenn du ein Requery hast, dann brauchst du das doch nicht.

    Grüße
    Ingo
     
Thema:

Kombobox auslesen und weitergeben

Die Seite wird geladen...
  1. Kombobox auslesen und weitergeben - Similar Threads - Kombobox auslesen weitergeben

  2. Teile aus einem qrcode string auslesen

    in Microsoft Access Hilfe
    Teile aus einem qrcode string auslesen: Hallo zusammen Ich habe da eine für mich knifflige Aufgabe Ich scanne einen SwissQRCode in ein Textfeld. Danach entferne ich alle Umbrüche und Leerzeichen. Das habe ich soweit hinbekommen....
  3. VBA Auslesen von Strings und erstellen neuer Zeilen in einer Tabelle

    in Microsoft Excel Hilfe
    VBA Auslesen von Strings und erstellen neuer Zeilen in einer Tabelle: Guten Tag zusammen In der 1. Spalte stehen KundenIDs (jeweils 2 Buchstaben), separiert mit einem Komma. Beispielsweise: ag,ok,be,li,ce In der 2. bis 15. Spalte stehen dann diverse Eigenschaften,...
  4. aktuelles Alter aus Geburtsdatum auslesen und runde Geburtstage markieren

    in Microsoft Excel Hilfe
    aktuelles Alter aus Geburtsdatum auslesen und runde Geburtstage markieren: Hallo liebes Forum, Ich habe eine Excel-Tabelle mit einer Liste von Namen und Geburtstagen und möchte in einer Zusatzspalte das aktuelle Alter ausweisen und Alter mit 0 oder 5 gelb markieren. Dazu...
  5. Datum einer Datei per VBA auslesen

    in Microsoft Access Hilfe
    Datum einer Datei per VBA auslesen: Hallo, ich möchte mit Access VBA das Änderungsdatum einer Excel-Datei auslesen. Hat vielleicht einer eine Idee oder so etwas schon mal gemacht? Über jede Hilfe wäre ich sehr dankbar. liebe Grüße...
  6. Werte auslesen mit s(w)verweis

    in Microsoft Excel Hilfe
    Werte auslesen mit s(w)verweis: Hallo Leute, ich brauche mal wieder Hilfe, ich steh total auf dem Schlauch. Ich habe zwei Tabellenblätter - Liste - Ergebnis Im Tabellenblatt Ergebnis gebe ich die Namen händisch ein und will...
  7. Kombobox, automatisches Ergänzen

    in Microsoft Access Hilfe
    Kombobox, automatisches Ergänzen: Asche auf mein Haupt, ich will auch niemanden verladen: Ich schaffe es nicht, in eine Kombobox etwas einzugeben, auf dass die Kombobox bis zum ersten passenden Wert vorziehe. Noch schlimmer, ich...
  8. Kombobox Datum von bis

    in Microsoft Access Hilfe
    Kombobox Datum von bis: Hallo, kurz gesagt, ich habe ein Endlos Frm mit 4 Spalten. Im Frm Kopf habe ein Kombifeld und ein Textfeld zur Suche. Jetzt wäre schön ich hatte 2 weitere Kombiboxen mit Kalender zur Auswahl von...
  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