Office: (Office 2010) Inhalt un-/gebundener Textfelder erst nach Klick auf "Speichern"

Helfe beim Thema Inhalt un-/gebundener Textfelder erst nach Klick auf "Speichern" in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; \@Wolfgang: Das hat nichts mit einem Dogma zu tun sondern damit, dass ich gebundene Formulare (gerade für Anfänger) sinnvoller halte als ungebundene.... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von FelySN89, 25. April 2015.

  1. Inhalt un-/gebundener Textfelder erst nach Klick auf "Speichern"


    \@Wolfgang: Das hat nichts mit einem Dogma zu tun sondern damit, dass ich gebundene Formulare (gerade für Anfänger) sinnvoller halte als ungebundene. Speziell wenn es um Anforderungen wie hier geht...
    Im anderen Thread ging es ja auch schon um gebunden/ungebunden und die Schwierigkeiten die FelySN damit hat. Also besteht offenbar ein "grundlegendes" Verständnisproblem... daher erstmal die Grundlagen festigen (und dazu gehören nunmal gebundene Formulare).

    Hier "dogmatisch" zu unterstellen halte ich für übertrieben...
     
    CptChaos, 27. April 2015
    #16
  2. Hallo CptChaos!

    So ernst habe ich es nicht gemeint, eher schalkhaft!
    Das sehe ich auch so.

    Wolfgang
     
    wb_3001, 27. April 2015
    #17
  3. Das war das, was ich bei den vielen Beispielen nicht nachvollziehen konnte. Meine Tabelle hat folgende Felder, welche auch nacheinander jedes für sich gefüllt werden sollen: Anrede, Titel, Ansprechpartner, Funktion, Telefon, Telefax, FaxZusatz, Mobil, EMail (Text); Kunde, Lieferant, Spedition, Mitarbeiter (Ja/Nein)
    Es bestehen noch die Felder ID, ID_N (beides Fremdschlüssel, die der Zuordnung zu anderen Tabellen dienen) und ID_AN (Autowert), welche aber nicht geändert werden sollen.
    Die Beispiele, die ich gefunden habe, waren entweder aufgereiht im Sinne von
    SET Feldname1 = Quelle1 , Feldname2 = Quelle2 ... oder eben
    SET Feldname1 = Quelle1 & Feldname2 = Quelle2 ....

    ABER!!!!: Das hat sich mittlerweile erübrigt, da ich nun defintiv die gebundenen Felder nehmen werde.

    [QUTOE]Selbst beim Testen solltest Du praxisnahe agieren. Aus einer vorhandenen Tabelle eine Testtabelle zu erstellen ist kein Jahrhundertprojekt.[/quote]

    Die Datenbank ist bisher alles noch Test, also die Tabellen dahinter sind lediglich zu Testzwecken gedacht (der Aufbau der Tabellen entspricht aber 1:1 den richtigen Tabellen), sodass ich, wenn das alles soweit läuft, nur noch die Tabellen austauschen muss.
     
    FelySN89, 27. April 2015
    #18
  4. Inhalt un-/gebundener Textfelder erst nach Klick auf "Speichern"

    Hallo FelySN89!
    Auch wenn es sich erledigt hat:
    SQL Update nur so:
    Code:
    Wolfgang
     
    wb_3001, 27. April 2015
    #19
  5. Guten Morgen, danke nochmal für eure Hilfe bisher!

    Ich habe ein neues Problem, aber kurz nochmal was grundlegendes:
    Es gibt in der Datenbank 7 Tabellen.

    1. tblFirma: jede Firma hat eine ID (Autowert - Primärschlüssel)

    jeder ID werden (mehrere) Niederlassungen zugeordnet (1:n):

    2. tblNiederlassung: jede Niederlassung hat eine ID_N (Autowert - Primärschlüssel)

    jeder ID_N werden (mehrere) Ansprechpartner zugeordnet (1:n)

    3. tblAnsprechpartner: jedem Ansprechpartner hat eine ID_AN (Autowert - Primärschlüssel)

    über die ID_AN werden dann abhängig von dessen Status Einträge in einer von 4 weiteren Tabellen Zusatzinformationen hinterlegt:
    tblKundenInfo
    tblLieferantenInfo
    tblSpeditionInfo
    tblMitarbeiterInfo

    Ich habe ein Formular aufgebaut, bei dem anfangs alle Infos zur Firma, Niederlassung und Ansprechpartnern per Textfeldern ausgegeben wurden und die Zusatzinformationen wurden über Unterformulare angezeigt.
    Will man eine komplett neue Firma, der angezeigten Firma eine neue Niederlassung bzw der Niederlassung einen neuen Ansprechpartner hinzufügen gibt es für jede Variante eine Schaltfläche, worüber dann separate Formulare zum hinzufügen geöffnet werden. Funktioniert auch bestens.
    Zum bearbeiten gibt es mehrere "Bearbeiten"-Schaltflächen um dann jeden Teil für sich bearbeiten zu können. Hat mit den Textfeldern auch funktioniert nur mit den Unterformularen nicht einwandfrei (Unterformulare wuren nach Speichern nicht mehr wieder gesperrt). Als Datensatzquelle waren zu dem Zeitpunkt die 3 Tabellen tblFirma, tblNiederlassung und tblAnsprechpartner hinterlegt. Recordsettyp ist "Dynaset".

    Also habe ich das Formular neu aufgebaut und für alle Zusatzinfos die Unterformulare entfernt und die Datensatzquelle geändert um dann für die Zusatzinformationen gebundene Textfelder nutzen zu können. Die Datensatzquelle habe ich mal als Anhang hinzugefügt. Jetzt habe ich das Problem, dass die Datensätze gar nicht mehr aktualisiert werden können. In der Statusleiste am unteren Bildschirmrand steht dann "Diese Datensatzgruppe kann nicht aktualisiert werden."

    Jetzt frage ich mich natürlich, warum das nicht funktioniert: Liegt es an der Datensatzherkunft und daran wie die Tabellen miteinander verknüpft sind oder wo könnte das Problem noch sein? In der Datensatzherkunft habe ich ja eigentlich "nur" die 4 Folgetabellen eingebaut und jetzt geht nix mehr so wie es soll...

    Ich hoffe dass Ihr da eventuell wieder eine Idee habt, die mir weiterhilft?! *wink.gif*


    EDIT: Jetzt funktioniert es!!! Ich habe den Recordsettyp auf "Dynaset (Inkonsistente Aktualisierungen)" geändert und nun funktioniert es. Kann das eventuell zu Problemen führen von denen ich jetzt noch nichts ahne?!
     
    FelySN89, 29. April 2015
    #20
  6. Das ist ein gangbarer Weg aber im Prinzip eine schlechte Lösung und sollte weitestgehend vermieden werden.
    Du bist in der Lage fachlich falsche Daten einzugeben. Datenbanktechnisch ist das Ok.
    Jedenfalls sollten Eingaben evtl. auf Plausibilität geprüft werden.
    Ein Bsp. habe ich nicht zur Hand.

    Besser wäre, aktualisierbare Abfragen und Formulare zu verwenden.
    Das lässt sich meistens durch Verwendung zusätzlicher Unterformulare
    und / oder selbst erstellte Verknüpfungsmechanismen erreichen.
     
    Marsu65, 30. April 2015
    #21
  7. Hallo, habe die Tage wieder in der Datenbank weitergemacht.
    Ich habe ja mein Anzeigeformular wo alles angezeigt wird, sprich alle Firmeninformationen (Name, Adresse), alle Ansprechpartnerinfos (Name, Telefonnummern, Email usw.) und abhängig vom Status werden dann die jeweiligen Zusatzinformationen eingeblendet. Diese 3 Teilbereiche sind auch optisch auf dem Formular klar voneinander zu unterscheiden und jeder Teilbereich kann einzeln für sich bearbeitet werden.
    Das bearbeiten wird durch Klick auf BEARBEITEN ermöglicht, vorher sind die Textfelder gesperrt. Neben der Änderung der Locked-Eigenschaft werden auch zwei Schaltflächen sichtbar gemacht: SPEICHERN und ABBRECHEN.
    Um das Speichern der geänderten Daten bereits während des Bearbeitens zu verhindern habe ich folgende Prozedur im BeforeUpdate-Ereignis eingebaut, so wie es mir geraten wurde.
    Code:
    Wenn ich jetzt nach dem bearbeiten auf SPEICHERN klicke, werden die Textfelder wieder gesperrt und sämtliche Eigenschaften zurück in den "Anzeigemodus" gebracht. Im Ereignis Speichern_Click habe ich folgenden VBA-code hinterlegt, in der Hoffnung dass die Eingabe bereits durch Klick auf Speichern wirklich gesichert bzw die Änderungen in die Tabelle übernommen werden.:
    Code:
    Naja nach Klick kauf SPEICHERN kommt wie gewollt die Messagebox, aber auch nach bestätigen auf "Ja" wird die Eingabe zwar beibehalten, ist aber noch nicht in der Tabelle übernommen. Das wirkliche Speichern in der Tabelle geschieht erst wenn ich das Formular schließe und die Messagebox nochmal mit "Ja" bestätige oder ich im Formular den Datensatz wechsel bzw in irgendeiner anderen Form aktualisiere und die Messagebox wieder mit "Ja" bestätige. Die zweite Messagebox kommt aus dem BeforeUpdate Code...
    Das heißt ich muss 2 mal das Speichern bestätigen damit es auch wirklich gespeichert wird. Das ist nicht gerade benutzerfreundlich in meinen Augen...

    Ich würde es gern so realisieren, dass durch Klick auf Speichern und bestätigen einer Yes/No-Messagebox der Datensatz auch wirklich gespeichert bzw der Datensatzinhalt aktualisiert wird und nicht erst beim aktualisieren oder schließen des Formulars. Kann ich da in der Speichern Prozedur eventuell einfach mit Call auf das BeforeUpdate-Ereignis zugreifen und das so umsetzen oder wie sieht ein geeigneter Weg dafür aus?
     
    FelySN89, 7. Mai 2015
    #22
  8. Inhalt un-/gebundener Textfelder erst nach Klick auf "Speichern"

    Durch das "sperren" von Feldern wird noch nicht gespeichert...
    Ergänze mal in der ELSE-Anweisung ein Me.Dirty = False.
    Der betriebene Aufwand ist mir nach wie vor nicht klar...
     
    CptChaos, 7. Mai 2015
    #23
  9. Soll das Code:
    als ElseIf-Bedingung in den Code oder als Anweisung?
    Code:
    Gibt es denn keine explizite Anweisung in VBA um den Datensatz zu sichern? Bzw eine Aktualisierung des Formulars zu erzwingen um dadurch das Speichern auszulösen?
     
    FelySN89, 7. Mai 2015
    #24
  10. Ich schrieb:
    Wie kommst Du jetzt auf den ElseIf? *confused.gif*

    Mit der Anweisung Me.Dirty = False speicherst Du den Datensatz bzw. die durchgeführten Änderungen (wie bereits im Post #14 von mir angemerkt). Also genau das was Du möchtest.
     
    CptChaos, 7. Mai 2015
    #25
  11. Also wie ich darauf kommen konnte weiß ich auch nicht mehr...?! *yelrotflmao

    Aber DANKE Benny!!!
    So funktioniert es auf jeden Fall, aber aus der Sub Form_BeforeUpdate() kann ich den Code aber nicht rausnehmen oder? Dann würde es ja wieder so sein, dass bereits bei Verlassen eines Textfeldes der Datensatz verändert wird oder?
    Kann ich denn wenigstens die Messagebox rauslassen? Ansonsten hab ich aktuell, bei Klick auf Speichern, gleich 2 Messageboxen direkt nacheinander, die bestätigt werden müssen.

    Bzw. es soll halt nur EIN Mal nach Klick auf SPEICHERN via Messagebox nachgefragt werden, ob die Änderungen gesichert werden sollen...
     
    FelySN89, 7. Mai 2015
    #26
  12. Form_Update -> wird ausgelöst bevor die Daten aktualisiert werden
    Wenn Du dort die Aktion nicht ausführen möchtest, musst Du sie rausnehmen...

    Was soll passieren, wenn der User nicht auf speichern klickt und z.B. das Fenster einfach schließt bzw. zu einem anderen Datensatz wechselt?
    Hier speichert Access ja implizit die Daten.
     
    CptChaos, 7. Mai 2015
    #27
  13. Inhalt un-/gebundener Textfelder erst nach Klick auf "Speichern"

    Ich habe das jetzt anders gelöst: ich hab die YesNo-MsgBox in dem Sub Speichern_Click() rausgenommen und Code:
    drin gelassen, so wird das Formular automatisch aktualisiert und die MsgBox für Speichern-Bestätigung aus dem Sub Form_BeforeUpdate() ausgelöst. Bei Klick auf "Nein" werden die Änderungen verworfen. (Me.Undo)
    Bei Klick auf Abbrechen wird auch (Me.Undo) genutzt und beim Verlassen des Formulars bzw Wechseln des Datensatzes erscheint dann wieder die MsgBox mit der Speichern-Bestätigung...also ist jetzt alles so, wie ich es im Grunde haben wollte *wink.gif*
     
    FelySN89, 7. Mai 2015
    #28
  14. Wenn es für dich passt und der Thread erledigt ist, diesen bitte so kennzeichnen (s. Link in meiner Signatur).
     
    CptChaos, 7. Mai 2015
    #29
  15. Wurde soeben wortwörtlich erledigt *wink.gif*
     
    FelySN89, 7. Mai 2015
    #30
Thema:

Inhalt un-/gebundener Textfelder erst nach Klick auf "Speichern"

Die Seite wird geladen...
  1. Inhalt un-/gebundener Textfelder erst nach Klick auf "Speichern" - Similar Threads - Inhalt gebundener Textfelder

  2. Tabellenkopfbezeichnungen in Abhängigkeit von Inhalt ausgeben

    in Microsoft Excel Hilfe
    Tabellenkopfbezeichnungen in Abhängigkeit von Inhalt ausgeben: Hallo! Ich habe folgende Aufgabe zu lösen… In einer Tabelle soll nach einem bestimmten Zeichenkette (NEU) gesucht werden. Sofern dieser Name NEU gefunden wird, soll der Spaltenname des...
  3. Auf die nächst mögliche Zelle mit Inhalt zugreifen

    in Microsoft Excel Hilfe
    Auf die nächst mögliche Zelle mit Inhalt zugreifen: Einen schönen Sonntag wünsche ich. Ich möchte mit folgendem Code auf die nächst mögliche Zelle mit einem Wert zurück greifen. Der Code nimmt aber immer den vorherigen Wert in der Zelle. Wenn die...
  4. Meldung in Word "Von Word wurde nicht lesbarer Inhalt gefunden"

    in Microsoft Word Hilfe
    Meldung in Word "Von Word wurde nicht lesbarer Inhalt gefunden": FrageMicrosoft Office Hallo, wir nutzen MS Office 365 und in einem speziell für uns programmierten Programm nutzen wir Word-Templates (.dotx). Mit dem vorherigen alten Office Paket (2016) war es...
  5. Zelle per VBA auf ihren Inhalt prüfen und reagieren sowie bei Änderung

    in Microsoft Excel Hilfe
    Zelle per VBA auf ihren Inhalt prüfen und reagieren sowie bei Änderung: Hallo zusammen, ich habe mit etwas verheddert und hoffe auf Eure Hilfe. Die Felder B111 und B112 sind zu Beginn LEER. B111 bietet ein Dropdown-Menü an, welches im Falle der Auswahl "Angebot mit...
  6. Prüfung unterschiedlicher Zellen auf Inhalt und Konsequenz

    in Microsoft Excel Hilfe
    Prüfung unterschiedlicher Zellen auf Inhalt und Konsequenz: Hallo zusammen, ich habe einen Code, bei dem ich mehrere voneinander getrennte Zellen auf Befüllung prüfe. Wenn ich mindestens eine nicht befülle, erscheint eine Fehlermeldung und das Script...
  7. nach Absturz + Neustart in Excel Textzeilen verschwunden

    in Microsoft Excel Hilfe
    nach Absturz + Neustart in Excel Textzeilen verschwunden: Hallo zusammen! Ich bitte um Hilfe bei folgendem Problem in Excel: Es gibt Excel Listen die mit Text gefüllt sind und nach einem Absturz und Neustart, bei dem das Programm nicht anders reagierte,...
  8. VBA: 2 Tabellenblätter Inhalte kopieren und in eine Excelmappe einfügen und als .xlsm speichern

    in Microsoft Excel Hilfe
    VBA: 2 Tabellenblätter Inhalte kopieren und in eine Excelmappe einfügen und als .xlsm speichern: Hallo Excel-Freaks, ich bin gerade mit einem Code beschäftigt und komme nicht weiter. Gewünscht wäre ein Makro: Zwei Tabellenblätter Inhalte kopieren und in eine Excelmappe einfügen und als .xlsm...
  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