Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Formularfelder temporär entsperren

Begonnen von mYcr0ft, August 09, 2019, 18:12:49

⏪ vorheriges - nächstes ⏩

mYcr0ft

Hallo zusammen,
ich versuche, die Datenfelder, die das Formular von der Tabelle bekommt (wo z. B. der Nachname etc. drin steht) und die eigentlich gesperrt sind, damit nichts verändert werden kann, durch einen Button temporär zu entsperren.
Erklärung:
Die Kundendatenbank ist soweit über eine Tabelle befüllt worden. Die einzelnen Tabellenfelder sind im Formular gesperrt, damit nicht ausversehen Veränderungen vorgenommen werden können. Um einen neuen Datensatz über das Formular zu erstellen, müssen die Felder allerdings entsperrt sein.

Mein Plan: Ich klicke auf den Button "neuen Kunden anlegen" um einen neuen Datensatz zu erstellen. Solange ich diesen neuen Datensatz nicht gespeichert oder die Eingabe abgebrochen habe, soll die Eingabe möglich sein. Sobald ich speichere oder abbreche, sollen die Felder wieder gesperrt sein.

Ist sowas machbar? Wenn ja, wie?

Danke euch

P.S.: auch wenn es vielleicht eine Alternative für meinen Plan gibt, sollte es so gehen, denn wir haben einige die froh sind wenn sie nicht am PC arbeiten müssen und dem entsprechend sind die Kenntnisse :-)

MzKlMu

Hallo,
wie werden die Felder gesperrt?
Gruß Klaus

mYcr0ft

Habe die in den Eigenschaften unter "Gesperrt" auf "ja" gesetzt

MzKlMu

Hallo,
das geht relativ einfach mit einer Zeile VBA im Ereignis "Beim Anzeigen".
Private Sub Form_Current()
    Me.AllowEdits = Me.NewRecord = True
End Sub

Damit wird das Formular mit seinen Feldern für eine Eingabe gesperrt. Die Sperrung wird bei einem neuen Datensatz automatisch aufgehoben.
Die Sperrung der Einzelfelder in den Eigenschaften musst Du wieder rückgängig machen.

Wie hast Du Dir das gedacht, wenn trotzdem eine Änderung gemacht werden muss, wegen eines Schreibfehlers z.B. ?
Gruß Klaus

mYcr0ft

Das ist das nächste. Eventuell eine Abfrage bevor gespeichert wird, damit man nochmal alles kontrollieren kann..

MzKlMu

#5
Hallo,
Du kannst noch so oft kontrollieren, kann trotzdem ein Fehler drin sein. Und dann ?
Wie hast Du Dir das gedacht ?

Hast Du jetzt meinen Vorschlag eigentlich umgesetzt ?
Ich würde erwarten, dass Du dazu auch was sagst.

PS:
Du könntest auch mal Deine Themen abschließend beantworten, von Dir gibt es grundsätzlich keine abschließende Anwort. Das gehört in einem Forum dazu.
Gruß Klaus

mYcr0ft

Hallo,
bin heute erst wieder im Büro und arbeite an dem Projekt weiter. Werde gleich alles umsetzen und dann auf alles antworten.

mYcr0ft

Ich habe den Code nun beim Ereignis "beim Anzeigen" eingegeben.

Klicke ich nun durch die einzelnen Datensätze, sind dennoch keine Eingaben möglich. Bei einem neuen Datensatz kann ich auch nichts im Formular editieren.

Die Grundidee war, dass ich duch einen Button "Neuer Eintrag" einen neuen Datensatz generieren kann. Durch Klick auf diesen Button sollte ein Fenster geöffnet werden, in welchem dann alle Eingaben gemacht werden können. Ist man fertig, könnte man den fertigen Datensatz dann speichern und er würde in die Tabelle im Hintergrund fest eingetragen. Ob das allerdings so einfach zu realisieren ist, weiss ich nicht.

Auf jeden Fall schonmal ein riesen Dankeschön für die Hilfe :)

MzKlMu

Hallo,
beschreibe genau wie Du das Sperren umgesetzt hast. Wenn es richtig gemacht ist, funktioniert das auch.
Zeige auch den Code den Du verwendest.

Deine Grundidee ist überflüssig, das lässt sich problemlos mit einem Formular auf die beschriebene Art erledigen.

Völlig unabhängig davon, brauchst Du eine Lösung, um einen fertigen Datensatz ändern zu können. Du kannst keine Fehler ausschließen (Z.B. Zahlendreher in Hausnummer), da kannst Du prüfen wie Du willst.

Also noch mal die Frage, wie hast Du Dir das gedacht ?
Gruß Klaus

mYcr0ft

Ich glaube ich denke zu einfach und möchte es auf einem zu kurzen Weg umsetzen, sorry!

Ich habe die einzelnen Textfelder, in denen nacher die Informationen aus der Tabelle stehen, im Eigenschaftenblatt auf der rechten Seite unter dem Reiter "Daten" bei "Gesperrt" auf "Ja" gesetzt, um ungewollte Änderungen zu vermeiden. Einen Code gibt es dazu nicht.

Ich kann, wenn das Hilft, die Datei wie sie bisher aussieht, gerne mal hochladen, damit es vielleicht so deutlicher wird

Beaker s.a.

@mYcr0ft
Zitatmöchte es auf einem zu kurzen Weg umsetzen
Klaus' Vorschlag IST der kürzeste Weg!
Zitatim Eigenschaftenblatt auf der rechten Seite unter dem Reiter "Daten" bei "Gesperrt" auf "Ja" gesetzt
Das musst du wieder ändern; - hat Klaus aber auch schon geschrieben.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

MzKlMu

Hallo,
ZitatIch habe den Code nun beim Ereignis "beim Anzeigen" eingegeben.
und dann:
ZitatEinen Code gibt es dazu nicht.
Deine Ausführungen sind widersprüchlich.

Lade die DB mal hoch.
Gruß Klaus

mYcr0ft


MzKlMu

#13
Hallo,
wie bereits mehrfach gesagt, musst Du die Sperrung der Einzelfelder wieder rückgängig machen, dann funktioniert es auch (getestet).

Machst Du für jeder Firma eine eigene Tabelle ?

Und wie das werden soll, wenn Du später einen Schreibfehler endeckst hast Du immer noch nicht gesagt.

Und wie ist das mit den Preisen, die ändern sich doch mal ?
Was passiert dann mit den alten Daten, wenn sich ein Preis ändert ?
Das gleiche gilt sinngemäß auch für das Intervall. Da kommt dann noch hinzu, dass sich dann wahrscheinlich mit dem Intervall auch der Preis ändert.

Das Datenmodell wirkt wenig durchdacht, da wirst Du auf Dauer nicht viel Freude damit haben.
Gruß Klaus

mYcr0ft

Habe die Sperrung jetzt rückgängig gemacht. Klappt jetzt super!

Jeder Kunde (hier Rewe, Lidl etc) bekommt eine eigene Tabelle. Somit wollte ich die Übersichtlichkeit gewährleisten. Allerdings zweifle ich langsam am ganzen Vorhaben.

Änderungen bei Fehlern hatte ich um ehrlich zu sein nur soweit eingerechnet, als das ich diese in der Tabelle im Hintergrund ändern wollte. Der Umfang dessen war mir dabei nicht so bewusst bisher..

Ich glaube ich muss mir ein ganz neues Konzept überlegen, allerdings fürchte ich dann zu scheitern, weil die ganzen Funktionen und Code-Möglichkeiten sehr umfangreich sind und ich all das nach meiner Ausbildung 2007 nicht mehr genutzt habe....

Die Preise ändern sich nur sehr selten und die Intervalle auch. Dazu muss ich sagen, dass mein Chef die Verhandlungen führt und dann immer unterschiedliche Preise bei gleichem Intervall stehen, da die Märkte unterschiedlich groß sind... alles sehr verstrickt.

Ich glaube ich muss mir mal ein paar Bücher leihen und das mal neu beginnen