Office: (Office 2010) Wert mit Datensätzen aus Formular in nächstes Formular übernehmen

Helfe beim Thema Wert mit Datensätzen aus Formular in nächstes Formular übernehmen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo liebe Forum Gemeinde Ich bin offensichtlich neu in Eurem Kreise, der Grund liegt in der sich abzeichnenden Verzweiflung bei meinem ersten... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Adversarius, 13. August 2013.

  1. Wert mit Datensätzen aus Formular in nächstes Formular übernehmen


    Hallo liebe Forum Gemeinde

    Ich bin offensichtlich neu in Eurem Kreise, der Grund liegt in der sich abzeichnenden Verzweiflung bei meinem ersten Access-Projekt.

    Seit Montag durchforste ich das Netz, den Vormittag über alle Beiträge, die hier bereits abgelegt sind, finde jedoch Nichts.

    Meine Accessfähigkeiten:
    -Nur Grundkenntnisse (habe das Buch "Access 2010 für Windows - Grundkenntnisse für Datenbankentwickler" und die NordwindDB bearbeitet)
    -Mit VB und SQL stehe ich auch Kriegsfuß, würde gern mit den regulären Möglichkeiten in der Symbolansicht arbeiten, wenn möglich.

    Mein Problem:
    Im Wesentlichen umfasst mein Projekt ein Programm zur Abwicklung von Arbeitsaufträgen. Ich habe eine Tabelle "AUF Daten" (Auftragsdaten), welche Auftragsnummern (welche indiziert sind) enthält. Jeder dieser Aufträge hat eine Bezeichnung. Die zweite Tabelle "AL Daten" (Arbeitslisten) enthält nun Arbeitslistenpositionen, von denen mehrere einem Auftrag zugeordnet werden können, bzw. welche auf mehrfach für verschiedene Aufträge vergeben werden können. Ich möchte nun erreichen, dass man (wenn möglich per Doppelklick) durch Klicken auf einen Button den angewählten Auftrag (dessen Nr.) im Formular "AUF Übersicht" in das Formular "AL Übersicht" übernimmt, diese Auftragsnummer mit Kurzbeschreibung in der Kopfzeile anzeigt und mir darunter alle zugeordneten AL Positionen anzeigt. (Ich habe wirklich alles versucht, der Größte erfolg war bisher , dass ich die Auftragsnummer zwar mitnehmen konnte, diese dann aber einfach den Datensatz überschrieben hat, der in AL Übersicht vorlag).

    Ich hoffe, mein Problem wird trotz (NOCH) zahlreicher falscher Fachtermini deutlich und ich erscheine nicht dreist, nach dem Motto "macht ihr das mal" . Danke schon einmal !

    Gruß Adversarius

    :)
     
    Adversarius, 13. August 2013
    #1
  2. Das ist tödlich, wenn Du etwas "Richtiges" und Komfortables aufbauen willst.

    SQL ist die erste Verarbeitungsschicht auf Daten, die in Tabellen liegen: Wenn Du zwischen Fundament und Haus etwas weglässt oder auch schon stiefmütterlich missachtest, wird das Haus in verschiedenen Situationen wacklig sein. Hast Du nur Verantwortung für Dich zu tragen?

    Mit dem Makrozeugs, das in neueren Accessversionen gefördert wird, können und wollen die meisten Entwickler nicht viel anfangen. Da kannst Du in den verschiedensten Foren kaum auf qualifizierte Hilfe hoffen, einfach mangels fehlender Masse an belastbaren Erfahrungen damit. Wobei es natürlich möglich sein kann.
    Dieser schon ältere Tipp gilt im Prinzip immer noch: Warum sind Makros Mist?
    Das ist dann in der Praxis auch ein Problem. Früher gab es Menüs, heute gibt es Ribbons. In einer richtigen Anwendung, erstellt vom Entwickler für User, ist diese Oberfläche für den User abgeschaltet und ersetzt durch eine Bedienerführung, die dem Projekt entspricht. Dies passiert einerseits aus Sicherheitsgründen und andererseits verändert bspw. die Verwendung einer Runtime beim Benutzer die Notwendigkeiten.
    Also wird auch da eine Eigenprogrammierung stattfinden.

    Zu Deinem Problem, soweit ich es verstehe:
    Daten liegen in Tabellen, Formulare zeigen daten an und bieten Möglichkeiten zur Manipulation. Selektierst Du nun in einem Formular eine bestimmte Datensatz-ID und übergibst diese an ein anderes Formular, kann dieses zweite Formular ebenso die Daten zur ID und dann auch abhängige Detaildaten anzeigen (entnommen aus den zugehörigen Tabellen).

    Falls durch einen Formularwechsel etwas überschrieben wird, passiert das durch Aktionen im Formular. Ist also diese Aktion ungewünscht, ist das Formular fehlerhaft.
     
  3. Hallo ebs,

    ich sehe schon ein, dass ich wohl nicht um Codes herumkomme. Ich werde versuchen mich dort tiefer einzuarbeiten.

    Also zu meinem Problem: Es hapert bereits an der Übergabe (ich habe ein SetzeWert Makro genutzt) , da haben wir wohl den Grund ;-)

    Ich weiss aber nicht, wie ich meine Funktion überhaupt gestalten soll, damit es so klaptt wie es soll !?

    (Und Nein, ich entwickle das für ein Unternehmen...)
     
    Adversarius, 14. August 2013
    #3
  4. Wert mit Datensätzen aus Formular in nächstes Formular übernehmen

    Moin, und erstmal willkommen hier im Forum *wink.gif* .
    Um VBA und SQL wirst du bei deiner Anwendung kaum herum kommen.
    Aber dabei helfen wir auch gern.
    Mir sind deine Tabellen und Formulare noch nicht ganz klar, ich versuche es trotzdem einfach mal.
    Ich würde insgesamt ein Hauptformular mit einem Unterformular verwenden.
    Das Hauptformular wird mit der Tabelle Aufträge verbunden, das Unterformular mit der Tabelle, in der die Arbeiten zum Auftrag gespeichert sind.
    Die beiden Formulare werden über die AuftragsID verknüpft, damit werden im Ufo nur Aufträge zum Hauptform angezeigt.
    Dazu kannst du dir dann noch im Kopf des Formulars ein Kombifeld zur Suche einbauen. Das geht zur Not auch noch mit dem Assistenten *wink.gif* .
    maike
     
  5. Moin Moin !
    Also, der Aufbau sieht folgenden Ablauf vor:
    Ich habe ein Formular, das mir alle Aufträge auflistet, mit den Spalten "Auftrags Nr" (wichtigstes Kriterium), "Objekt" (z.B. Bauvorhaben X) und weitere Info´s die auch nur in dieser Übersicht angezeigt werden sollen, also nicht weiter relevant sind. (Datenquelle Tabelle "AUF Daten")

    Nun soll der jeweilige Projektleiter einen Auftrag (möglichst mit einem Suchfenster / Listenfeld) anhand der fünfstelligen Auftragsnummer suchen und auswählen können. Nach Betätigung eines Buttons oder Doppelklick auf den jeweiligen Datensatz in der Übersicht soll sich ein Formular öffnen (Formular "Auftragsdetails").

    Das Formular "Auftragsdetails" soll die Datenquelle Tabelle "AL Daten" nutzen in welcher zu jeder Auftragsnummer die jeweiligen Arbeiten als einzelne Arbeitslistenpositionen hinterlegt sind (also eine Spalte "Auftragsnummer", eine "Arbeitslistenpositionen"). Diese Tabelle "AL Daten" enthält aber eine Auftragsnummer mehrfach, da ihr ja in mehreren Datensätzen die AL Positionen zugeordnet sind und Sie enthält auch alle (unterschiedlichen) bisher bestehenden Auftragsnummern (also nicht für jeden Auftrag eine eigene Tabelle).

    Das Formular Auftragsdetails soll nun aus seiner Datenquelle nun aber nur die Arbeitslistenpositionen anzeigen/auflisten die zu diesem einem Auftrag , der vorher in der Übersicht ausgewählt wurde , anzeigen. Ausserdem sollte es hier möglich sein, zusätzliche Arbeitslistenpositionen hinzuzufügen.

    Ich würde also gern die vorher angewählte Auftragsnummer in die Details mitnehmen (vll. als Überschrift) und sozusagen nur die an diese geknüpften Infos anzeigen lassen.

    Nachvollziehbar? (ich würde auch gern screenshots o.Ä. posten, weiß aber nicht recht wie ich die so klein kriege, dass sie genommen werden)
     
    Adversarius, 15. August 2013
    #5
  6. Dann mach es mal so:
    Formular Auftragsliste: In der Entwurfsansicht bei den Eigenschaften des Buttons oder Listenfeldes Reiter Ereignis auswählen.
    Dort entweder im Ereignis beim Klicken (Button) oder beim Doppelklicken (Listenfeld) aus der Auswahlliste "Ereignisprozedur" wählen. Danach auf die ... klicken, damit landest du im VBA-Editor in einer Rumpfprozedur dieser Art (hier mal für den Button):
    Code:
    Dazwischen trägst du dann den Befehl zum Öffnen des Detailformulars ein:
    Code:
    Sollte die Auftragsnummer keine Zahl sein, sondern alphanumerisch, dann in Hochkommata einschließen:
    Code:
    Falls du in den anderen Formular-, Feld-, und sonstigen Objektnamen auch Sonderzeichen (Leerzeichen, Umlaute ...) drin hast, am besten ändern. Sonst ebenfalls eckige Klammern drum.
    maike
     
  7. Hallo Maike,
    Ist der Befehl so korrekt ?

    DoCmd.OpenForm "Auftragsdetails", , , "[AUF Nr] = " & Me!AL Position

    Er regt sich im VBA-Editor nicht, sondern markiert diesen Code rot und die private sub Zeile Gelb mit nem draufweisenden Pfeil.
     
    Adversarius, 15. August 2013
    #7
  8. Wert mit Datensätzen aus Formular in nächstes Formular übernehmen

    Hallo,
    Wenn ich das richtig verstanden habe möchtest du alle zu einem auftrag vorhandenen detailpositionen sehen? Es ist egal was das ist Bäume, artikel, Tätigkeiten.....
    Entscheidend ist der grundsätzliche aufbau der tabellen, dann geht das ganz einfach und zunächst auch ohne code..., wenn es komfortabel, schnell, sicher... usw. Sein soll, haben meine vorschreiber recht, ohne gute führung der user (logischer aufbau, Menüführung, sicherheit, fehlerabfang... usw) kommst du schnell probleme...

    Schau mal hier nach, könnte evtl. Was für dich sein

    http://www.ms-office-forum.net/forum...d.php?t=298773

    Dort sind auch beispieldb vorhanden...
     
  9. Leerzeichen in Feldnamen müssen im Code mit eckigen Klammern umschlossen werden (daher ist es ratsam, keine Leer/Sonderzeichen zu verwenden

    Code:
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Scorefun, 15. August 2013
    #9
  10. Zusatzfrage: Im Formularfeld AL Position steht die gesuchte Auftragsnummer?
    maike
     
  11. Hallo hgs,
    danke für deine Mühe, kämpfe mich da noch durch, ist aber hilfreich.

    @Maike: Was meinst du mit Formularfeld? (kann man einzelne Felder bezeichnen?) AL Position war die Tabelle, in die die ausgewählte Auftragsnummer aus dem 1. Formular (Auftragsübersicht) übernommen werden soll.

    Was bedeutet der Code denn genau (damit ich den Aufbau verstehe?)
    Also den Rumpf verstehe ich soweit:
    DoCmd.OpenForm = führe Befehl Formular öffnen (für) Formular "XY" aus !?
    dann warum ",,,"? und das letzte verstehe ich auch nicht :-/
     
    Adversarius, 15. August 2013
    #11
  12. Die drei Komma sind Platzhalter für andere Angaben, die hier nicht gebraucht werden. Da das Programm die aber an dieser Stelle erwartet, müssen sie dahin. Wenn etwas so wie hier nach dem dritten Komma kommt, dann erwartet das Programm eine WHERE-Condition und wertet dann entsprechend aus, was es da findet:
    • Öffne das Formular XY
    • und zeige dort den Datensatz aus der Datenherkunft des Formulars,
    • wo das Tabellenfeld [AUF Nr] denselben Wert hat
    • wie das Formularfeld ABC in diesem Formular.
    Du schreibst, die Auftragsnummer soll in die Tabelle übernommen werden? Ich dachte du wolltest alle Arbeitslisten-Datensätze aus der Tabelle suchen und anzeigen, die zu einer gewählten Auftragsnummer gehören?
    Und ja, natürlich, jedes Formularfeld hat einen Namen, wenn du keinen eigenen einträgst, normalerweise entweder denselben wie das Tabellenfeld, das angezeigt wird oder so aussagekräftige wie Text21 u.ä. In der Entwurfsansicht unter Eigenschaften irgendwo zu finden (Reiter Daten glaub' ich oder sonst bei Alles ganz oben)

    Edit: Ich sehe gerade, du kommst aus Leer? Da bin ich mal zur Schule gegangen.
    maike
     
  13. Wert mit Datensätzen aus Formular in nächstes Formular übernehmen

    Hallo zusammen !
    Ich habe nun wirklich seit gestern gelesen, probiert und gekämpft wie ein großer, komme aber nicht weiter...

    Es wäre ausserordentlich nett, wenn sich jmd. meinen Stand mal angucken kann.

    @ Maike: Ich bin fürs Studium aus SH hergezogen, werde wohl nächstes Jahr zurück in den richtigen Norden ;-) nach HH geh´n. Und danke für die Erläuterung, ich verstehe die VBA Struktur so langsam.

    Gruß Adversarius
     
    Adversarius, 16. August 2013
    #13
  14. Hallo,
    das Datenmodell ist noch unausgegoren.
    - Du hast ein Feld "Arbeitslistenposition" da steht eine Zahl drin, wo ist die Beschreibung der Arbeit dazu?

    - Der Objektname in der Tabelle "AL Daten" ist überflüssig

    - Zum Anlegen eines neuen DS mit dem Button "Auftrag anlegen (NEU)" ist keine Bedingung erforderlich, Du legst ja einen neuen Auftrag an, da gibt es ja noch keine Nummer.

    - warum willst Du hier überhaupt ein neues Formular öffnen, einen neuen Auftrag kannst Du doch direkt auch in dem Formular mit dem Button anlegen?

    - Beziehungen über Textfelder sind nicht so geeignet, in die die "AUF Daten" gehört auch ein Autowert als PS. In die die "AL Daten" dann als Fremdschlüssel eine Zahl (Long). Die Auftragsnr entfällt dann in der Tabelle "AL Daten"

    - Entferne ausnahmslos alle Leerzeichen in den Objekt und Feldnamen.

    Anbei mal noch ein Bild der geänderten Beziehungen.
     
    gpswanderer, 16. August 2013
    #14
  15. Hallo nocheinmal,

    falls ich unwissentlich gegen Forumsregeln verstoße oder zuviel aufeinmal wissen möchte, oder für das Folgende einen neuen Thread eröffnen müsste/sollte, dann weist mich bitte darauf hin. (möchte bloß Niemanden verärgern) Schonmal an alle Geduldigen, die mir bisher geantwortet haben, meinen größten Dank !!!

    Ich habe versucht Alles bisherige zu berücksichtigen, drehe mich aber schon wieder seit Stunden im Kreis.

    Ich habe jetzt soweit alles getan was ich konnte, hier der geplante Ablauf und meine Probleme:

    Ausgehend von der "Auftragsübersicht"(Form):
    -Anlegen neuer Datensatz Auftrag über Button "neuer Auftrag" (gegenwärtig nur mit Makro möglich, gibt es einen VBA-Code für "Sprung zu letztem Datensatz", also dem leeren?)

    -Aufrufen der Details eines ausgewählten Auftrages durch öffnen von "AuftragsDetails"(Form) durch Klicken auf gleichnamigen Button und Übernahme der Auftragsnummer als Anzeige für den User gegenwärtig mit Code
    Code:
    ->Formular wird zwar geöffnet, aber erst nach MANUELLER (was ja zu vermeiden ist) Eingabe der Auftragsnummer in Pop-Up-Fenster.

    -Im Form "AuftragsDetails" soll das Unterformular alle dem im MainForm genannten Auftrag zugeordneten Arbeiten in Form von Arbeitslistenposition, -beschreibung und einer Bemerkung angezeigt werden. (gegenwärtig leer, da Bezug noch nicht funktioniert)

    -Hier soll durch Button "Position zufügen" das Formular "ArbeitslistenPositionNEU" geöffnet werden (selbes Codeprinzip und Problem wie Auftragsdetails, da ich nicht weiss, wie der Code für einfaches Öffnen eines Formulares für Anlegen eines neuen DS lautet)@GPSwanderer: hier brauche ich ein neues Formular, da die Positionserstellung das eigentliche Problem (ich weiss, welch ein Hohn) darstellt.

    (Falls jmd. soviel Zeit und Ergeiz hat, oder sich über die zusätzlichen Tabellen wundert: die Positionsnummern sind 4stellig, erste Stelle gibrt die Kategorie an TAB."Kategorie" und 1-899 sind vorgegebene Standardpositionen , während die 900er für seltene Sonderposten sind, die dann vom User eingepflegt und hinterlegt werden sollen)

    Sollte ich jetzt den Sinn des Forum´s völlig verfehlt haben, bitte ich nachdrücklich um Zurechtweisung. (Bin wie ich bereits sagte nur völlig verzweifelt, war Jahre in keinem Forum und da das ganze kein Privatvergnügen ist und ich Access unterschätzt hab, bekomme ich jetzt echt ein Problem und entsprechend Muffensausen )

    Bin für jede Hilfe dankbar

    Liebe Grüße und einen schönen Sonntag, Adversarius
     
    Adversarius, 17. August 2013
    #15
Thema:

Wert mit Datensätzen aus Formular in nächstes Formular übernehmen

Die Seite wird geladen...
  1. Wert mit Datensätzen aus Formular in nächstes Formular übernehmen - Similar Threads - Wert Datensätzen Formular

  2. Vorletzter Datensatz Wert holen

    in Microsoft Access Hilfe
    Vorletzter Datensatz Wert holen: Hi to @ll, ich möchte gerne vom vorletzten Datensatz aus Spalte 10 ein Wert raus holen. Leider bekomme ich das nicht hin. Bis jetzt habe ich das versucht: Code: Dim Db As Database Dim Rs As...
  3. Werte aus Endlosformular je Datensatz in Tabelle ergänzen

    in Microsoft Access Hilfe
    Werte aus Endlosformular je Datensatz in Tabelle ergänzen: Guten Abend zusammen, ich habe ein Endlosformular das auf einer Tabelle (tbl_Leistung) basiert. Die im unteren Teil angezeigten roten Angaben sollen bei Auswahl des JA/Nein-Kästchens "Fertig" in...
  4. Wert aus vorherigen Datensatz übernehmen

    in Microsoft Access Hilfe
    Wert aus vorherigen Datensatz übernehmen: Hallo zusammen, ich bin schon seit ca. 1 Woche damit beschäftigt eine normalerweise simple Aufgabe zu lösen. Scheitere aber mit jeden weiteren Versuch daran*bawling *bawling und hoffe nun, dass...
  5. neuer datensatz in unterformular per button click mit festem wert einfügen

    in Microsoft Access Hilfe
    neuer datensatz in unterformular per button click mit festem wert einfügen: hallo ihr lieben, ich möchte gerne in einem unterformular einen neuen datensatz per befehlschaltfläche button click hinzufügen. es soll aber für ein bestimmtes feld des neuen datensatzes bereits...
  6. Sortieren von Datensätzen nach in einem Textfeld gespeicherten numerischen Werten

    in Microsoft Access Tutorials
    Sortieren von Datensätzen nach in einem Textfeld gespeicherten numerischen Werten: Sortieren von Datensätzen nach in einem Textfeld gespeicherten numerischen Werten Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010...
  7. Sortieren von Datensätzen nach Text, numerischen Werten oder Datumsangaben

    in Microsoft Access Tutorials
    Sortieren von Datensätzen nach Text, numerischen Werten oder Datumsangaben: Sortieren von Datensätzen nach Text, numerischen Werten oder Datumsangaben Access 2007 Mehr... Weniger Das...
  8. Benutzer in die Lage versetzen, einen Datensatz durch Auswahl eines Werts in einer Liste zu ...

    in Microsoft Access Tutorials
    Benutzer in die Lage versetzen, einen Datensatz durch Auswahl eines Werts in einer Liste zu ...: Benutzer in die Lage versetzen, einen Datensatz durch Auswahl eines Werts in einer Liste zu suchen Access für Microsoft 365 Access 2019 Access 2016 Access 2013...
  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