Office: (Office 2010) Werte aus Formular in das nächste übergeben

Helfe beim Thema Werte aus Formular in das nächste übergeben in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; \@fraeser... ja, habe zuerst eine Antwort erstellt, die mir dann total falsch vorkam.. gelöscht... dann eine neue Antwort erstellt, wieder gedacht,... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Marcys, 8. März 2020.

  1. Werte aus Formular in das nächste übergeben


    \@fraeser...
    ja, habe zuerst eine Antwort erstellt, die mir dann total falsch vorkam.. gelöscht...
    dann eine neue Antwort erstellt, wieder gedacht, die 1. Überlegung war gar nicht so schlecht...
    und eben angeglichen... das ist ja nicht wirklich eine Datenbank im herkömmlichen Sinne...
    Aber egal, man kann nicht immer alles sofort richtig erfassen, denke ich mal.*grins
     
    Kyron9000, 11. März 2020
    #16
  2. \@Kyroon9000...
    Gebe Dir Recht.
    Manchmal versteift man sich zu schnell in eine Problemstruktur und merkt dann kurz danach, dass "alles anders gemeint" war... :-)
     
    fraeser, 11. März 2020
    #17
  3. Hallo,
    Warum schon wieder LIKE ?
    … stehen alle Werte komplett zur Verfügung, da gibt es keine unbekannten (*) Zeichen; - also =
    gruss ekkehard
     
    Beaker s.a., 12. März 2020
    #18
  4. Werte aus Formular in das nächste übergeben

    Hallo,

    also ich habe tatsächlich zwei Fragestellungen in einem Beitrag gestellt. Hängt damit zusammen dass im Laufe des Beitrags sich eine weitere Frage ergeben hat. Diese Frage, siehe Beitrag #11 konnte ich jedoch klären.

    Zurück zur Ursprungsfrage.

    Im Formular 1 siehe Anhang im Beitrag #4 möchte ich durch Doppelkick auf das Feld ID (gelb unterstrichen) dass sich ein Formular 2 öffnet und dort Feldinhalte aus Formular 1 in die Felder des Formulars 1 übernommen werden.

    Gruß
    Martin
     
  5. Hallo Martin,

    dafür gibt es mehrere Möglichkeiten. Im einfachsten Fall übergibts du die Werte per OpenArgs mit docmd.openform oder aber du betrachtest das Formular wie eine Klasse und instanziierst ein neues Formular, schreibst die Werte in das Formular und machst es anschließend sichtbar oder aber das geöffnete Formular2 holt sich selbständig die Werte aus Formular1.
    Also eigentlich keine grosse Sache. Das einfachste Lösung ist sicherlich die Datenübergabe mit OpenArgs.

    Man könnte aber einfach auch nur die ID übergeben und Formular2 holt sich die benötigen Daten aus derselben Datenquelle, wie Formular1, was wohl die sinnvollste Lösung darstellt. Warum unnötig viele Daten zwischen zwei Formularen kopieren?

    Gruß Ulrich
     
    knobbi38, 17. März 2020
    #20
  6. Genau das ist der Punkt.

    Wie würde der Code aussehen.
    VBA mässig bekomme ich ein Afterupdate im Kombifeld hin. Doch dann hört es leider auf... :-(
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  7. \@Marcys:
    irgendwie haben sich die Anworten überschnitten.
    Die aktuelle ID per Docmd.OpenForm sollte jetzt nicht das Problem sein, oder?

    Gruß Ulrich
     
    knobbi38, 17. März 2020
    #22
  8. Werte aus Formular in das nächste übergeben

    :-) Ne das nicht. Aber ich möchte ja noch Werte übergeben.


    Im Formluar 1 wähle (Doppelklick) ich den DS "5" aus. Zu dem DS "5" Steht in dem Formular 1 in dem Feld txt_kunde "GM" drin und in dem Feld txt_sap_nr "232649"

    Wie müsste der Code aussehen, dass sich Formular 2 öffnet und die Feldinhalte Kunde und SAP nr übergebe.

    Die Textfeldbenennung ist in beiden Forumlaren gleich. Also txt_kunde und txt_sap_nr.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  9. Hallo Martin,

    hier ein Beispiel, wie ich es mal für eine etwas andere Fragestellung gemacht habe, aber das Prinzip sollte klar werden.

    Gruß Ulrich
     
    knobbi38, 17. März 2020
    #24
  10. Danke schon mal.

    Bin gerade mal die Zusammenhänge und Verbindungen am auseinander am pflücken.
    Vom der Funktionsweise ist es das was ich möchte. Dacht aber es geht ggf. etwas einfacher.

    Verstehe noch nicht ganz welche Aufgabe die Funktion hat.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  11. Ich habe nun eine etwas einfache alternative gefunden:

    Code:
    Letzendlich is es genau das was ich benötige.

    @Knobbi
    Würde aber trotzdem mal wissen wo der Unterschied ggf. wo die Vor- und Nachteile liegen, bei deienr Lösung.
     
  12. Hallo Martin,

    das große Problem bei deiner Lösung ist, daß das Formular2 nicht modal bzw. nicht im Dialogmodus arbeitet. Somit können Eingaben gleichzeitig in Formular1 und Formular2 gemacht werden - keine gute Idee. Zusätzlich wird auch noch direkt in das Formular2 geschrieben, was mit Datenkapselung nichts mehr zu tun hat. Man kann das so machen, aber wenn sich z.B. in Formular2 der Name des Kontrolls ändert, muß auc Formular1 geändert werden. Solche Abgängigkeiten machen ein späteres Redesign bzw. eine Wartung des Codes ausgesprochen schwierig. Andere rechnen u.U.garnicht mit solchen Abhängigkeiten und müssen dann viel im Programmcode suchen oder später sich mit unerklärlichen Fehlermeldungen befassen.

    Das Beispiel zeigt die praktische Anwendung von Openargs für die Übergabe an ein Formular im Dialogmodus. In diesem Fall wird das Formular dazu verwendet, um neue DS anzulegen und mit bestimmten Werten aus dem aktuellen DS vorzubelegen. Dabei werden die Felder in ein String-Array geschrieben, dieses mittels Join() in ein String konvertiert und per Openargs übergeben. Im Dialogformular wird der übergebene String wieder in ein Array zerlegt und verarbeitet - hier werden Defaultwerte für Textboxen definiert.
    Mit Hilfe der Enum "iiDatenType" wird dabei der entsprechende Index im Array für jedes Datenfeld fest vorgegeben. Somit werden Verwechslungen beim Zuweisen und wieder Auslesen der Daten vermieden und gleichzeitig noch IntelliSens unterstützt.

    Wenn die Eingabe beendet ist, kann mit OK/Cancel der DS gespeichert bzw. der Vorgang abgebrochen werden. Damit das aufrufende Formular aus dem Formular noch Werte auslesen kann, wird das Formular nur versteckt und nicht geschlossen. Dadurch geht der Fokus wieder an das aufrufende Formular zurück und in diesem Fall wird geprüft, ob eine neuer DS angelegt worden ist. Wenn ja, wird automatisch auf diesen neuen DS positioniert. Danach wird das Dialogformular geschlossen.

    Hört sich jetzt sehr aufwendig an, ist aber nicht wirklich kompliziert.

    Gruß Ulrich
     
    knobbi38, 17. März 2020
    #27
  13. Werte aus Formular in das nächste übergeben

    Hallo Ulrich,

    vielen Dank für die sehr ausführliche und verständliche Beschreibung und vor allem für deine Mühe.
    Ich muss jetzt nun abwägen für welche Lösung ich mich entscheide. Wobei ich dieses Vorhaben wahrscheinlich über Bord werfen muss, da im Zuge der weiteren Erstellung sich einen neue Situation ergeben hat. Oder besser gesagt, ich bin etwas blauäugig an die Sache ran gegangen.

    Wichtig: Formular 1 basiert auf eine Auswahlabfrage, Siehe Beitrag #11
    Formular 1 hat 6 Filter (Comboboxen). Anhand der Filter lasse ich mir den gewünschten DS anzeigen.

    Der Grund aus Formular 1 in Formular 2 Feldinhalte zu übergeben, war der Idee geschuldet, dass ich aus einem Erstangebot ein Zweitangebot machen möchte. Das Zweitangebot würde somit ein neues Datum und eine neue Angebotsnummer (Hochzählung der Version) erhalten. Alle anderen Werte (Kunde, Angebotsart etc) sind somit gleich. Exakt diese Werte müssten dann aber auch in dem Datensatz des Zweitangebotes (Formular 2) rein geschrieben werden und in dieselbe Tabelle gespeichert werden wo die Erstangebote auch drin sind.
    Kurzgefast:
    Angebotseingabe in Formular 0 (war bisher nicht die Rede von, da soweit alles funktioniert) Speicherung in „meineTabelle“
    Herausfindend des Angebots durch Filterfunktionen Formular 1. Anschließend Doppelklick auf den jeweiligen DS und es öffnet sich Formular 2.
    Formular 2 „ungebunden“ : Eingabe der neuen Werte (Angebotsnummer und Datum) und speichern der Daten in die selbe Tabelle wo auch die Erstangebote drin sind, also „meineTabelle“
    Nun die Diskrepanz:
    Um nicht die Werte wie Kunde, Angebotsart, VKA etc. erneut in das Formular 2 eingeben zu müssen, war meine Idee die Werte zu dem jeweiligen DS aus Formular 1 in das Formular 2 zu übertragen. -> Lösungen sind ja vorhanden.
    Was ich leider nicht bedacht habe, dass ich aber auch Werte/Inhalte benötige die gar nicht Bestandteil des Formulars 1 (Basis Auswahlabfrage) sind.
    In meiner Basistabelle gebe ich den Namen des Einkäufers ein. In meiner Ausfahlabfrage habe ich aber das Feld gar nicht hinzugefügt, da ich es im Formular 1 nicht benötige. Im Formular 2 benötige ich aber wiederrum das Feld „Einkäufer“und somit den Namen des Einkäufers.
    Somit ist klar, dass ich im Formular 2 kein Wert mir übergeben lassen kann, wenn dieser nicht im Formular 1 vorhanden ist.
    Daher muss ich meine Frage etwas anders formulieren.
    Und zwar: Wie hole ich mir einzelne Werte aus einer meiner Tabelle in Formular 2 und die entsprechenden Textfelder wo ich im Formular 1 zuvor einen DS durch Doppelklick auf das Feld „ID“ gemacht habe.
    Hätte jemand einen Ansatz für mich? Das wäre prima.
     
  14. Hallo Martin,

    so ganz kann ich deinen Ausführungen nicht folgen. Irgendwie erscheint mir das alles viel zu kompliziert.

    Die Basis für Formular2 (was für ein Name!) sollte die ID sein und alles andere kann mit der Datenquelle von Formular2 und eventuell über Subforms organisiert werden. Lookup-Werte werden üblicherweise per Kombobox zugewiesen. Damit sollte eine vernünftige Eingabe möglich sein.

    Gruß Ulrich
     
    knobbi38, 19. März 2020
    #29
  15. Hallo Urich,

    also eigentlich hast du es richtig erkannt. Ich übergebe aus Formluar 1 nur die ID ins Formular 2 und hole mir die gewünschen Daten zu der ID direkt aus meiner Quelltabelle.

    Die ID im Formular 2 wird in das Feld "txt_Index" geschrieben. -> Das klappt dann soweit.

    So wie ich dich richtig verstanden habe müsste ich dann im Formluar 2 für jedes Feld eine DlookupAnweisung erstellen?

    Z. B. so?



    Code:
    Wenn ich das so mache, erhalte ich eine Nachricht "Fehler beim Kompilieren - Syntaxfehler


    Stimmt beim Code etwas nicht?


    p.s.
    Meine Formulare heißen in der Tat aber anders. Formular 1 und Forular 2 habe ich es benannt, damit man hier in den Beiträgen besser nachfollzeien kann. ;-)
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
Thema:

Werte aus Formular in das nächste übergeben

Die Seite wird geladen...
  1. Werte aus Formular in das nächste übergeben - Similar Threads - Werte Formular übergeben

  2. Formular Berechnung

    in Microsoft Access Hilfe
    Formular Berechnung: Hallo, ich habe ein Problem, an dem ich mir im Moment die Zähne ausbeiße. Ich greife auf eine externe Excel - Tabelle als Datenbasis zu. Darüber habe ich eine Abfrage gelegt, um die relevanten...
  3. Wert aus PopUp dem aufrufendem Formular übergeben

    in Microsoft Access Hilfe
    Wert aus PopUp dem aufrufendem Formular übergeben: Hallo, ich habe ein PopUp Formular, welches ich mit Code: DoCmd.OpenForm "F_Besitzer", , , , , acDialog, FormName aufrufe, wobei FormName der Name des aufrufenden Formulars ist. Das PopUp...
  4. NACH Filter im Formular Min-Wert mit VBA

    in Microsoft Access Hilfe
    NACH Filter im Formular Min-Wert mit VBA: Hallo Zusammen, ich habe ein Formular basierend auf Tabelle im Formular möchte ich mit VBA den Prozentwert einer Spalte angeben. hierzu benötige ich den Min-Wert dieser Spalte soweit bin ich...
  5. Wert aus Formular-Feld an SQL-Statement übergeben

    in Microsoft Access Hilfe
    Wert aus Formular-Feld an SQL-Statement übergeben: Hallo werte Access-Helfer, ich möchte in einem Unterformular (neues Angebot anlegen) nur die Werte in einer DropSown-Box angezeigt bekommen, die zu diesem Hauptformular (Kontakte dieses Kunden)...
  6. Werte aus Formular an Bericht übergeben

    in Microsoft Access Hilfe
    Werte aus Formular an Bericht übergeben: guten morgen zusammen, ich schlage mich nun seit mehreren Stunden mit einem VBA problem herum. ich habe in einem formular 2 felder, wo der User Einträge tätigen soll. Beim drücken eines buttons...
  7. Zwei werte übergeben mit OpenArgs an ein Formular?

    in Microsoft Access Hilfe
    Zwei werte übergeben mit OpenArgs an ein Formular?: Hallo, ich Arbeite mit diesem Code, um einen Wert zu übergeben. Jetzt habe ich aber das Problem, dass ich zwei Werte übergeben muss. Daher meine Frage, wie muss ich den Code anpassen? Für...
  8. Wert in anderes Formular / Unterformular übergeben

    in Microsoft Access Hilfe
    Wert in anderes Formular / Unterformular übergeben: Hallo, Ich habe folgendes Problem: Ich befionde mich in einem Formular! Hier gibt es ein Feld "bez", es ist ein Textfeld (ungebunden). jetzt will ich auf einen button klicken und der Wert dieses...
  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