Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: mYcr0ft am August 09, 2019, 18:12:49

Titel: Formularfelder temporär entsperren
Beitrag von: mYcr0ft am August 09, 2019, 18:12:49
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 :-)
Titel: Re: Formularfelder temporär entsperren
Beitrag von: MzKlMu am August 09, 2019, 18:44:02
Hallo,
wie werden die Felder gesperrt?
Titel: Re: Formularfelder temporär entsperren
Beitrag von: mYcr0ft am August 09, 2019, 19:34:35
Habe die in den Eigenschaften unter "Gesperrt" auf "ja" gesetzt
Titel: Re: Formularfelder temporär entsperren
Beitrag von: MzKlMu am August 10, 2019, 00:29:25
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. ?
Titel: Re: Formularfelder temporär entsperren
Beitrag von: mYcr0ft am August 11, 2019, 21:32:07
Das ist das nächste. Eventuell eine Abfrage bevor gespeichert wird, damit man nochmal alles kontrollieren kann..
Titel: Re: Formularfelder temporär entsperren
Beitrag von: MzKlMu am August 11, 2019, 23:06:12
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.
Titel: Re: Formularfelder temporär entsperren
Beitrag von: mYcr0ft am August 12, 2019, 09:57:07
Hallo,
bin heute erst wieder im Büro und arbeite an dem Projekt weiter. Werde gleich alles umsetzen und dann auf alles antworten.
Titel: Re: Formularfelder temporär entsperren
Beitrag von: mYcr0ft am August 12, 2019, 10:12:12
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 :)
Titel: Re: Formularfelder temporär entsperren
Beitrag von: MzKlMu am August 12, 2019, 11:02:48
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 ?
Titel: Re: Formularfelder temporär entsperren
Beitrag von: mYcr0ft am August 12, 2019, 11:17:39
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
Titel: Re: Formularfelder temporär entsperren
Beitrag von: Beaker s.a. am August 12, 2019, 11:25:32
@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
Titel: Re: Formularfelder temporär entsperren
Beitrag von: MzKlMu am August 12, 2019, 11:49:22
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.
Titel: Re: Formularfelder temporär entsperren
Beitrag von: mYcr0ft am August 12, 2019, 11:56:12
Hier die Datenbank
Titel: Re: Formularfelder temporär entsperren
Beitrag von: MzKlMu am August 12, 2019, 12:02:26
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.
Titel: Re: Formularfelder temporär entsperren
Beitrag von: mYcr0ft am August 12, 2019, 12:41:15
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
Titel: Re: Formularfelder temporär entsperren
Beitrag von: MzKlMu am August 12, 2019, 13:14:08
Hallo,
ZitatJeder Kunde (hier Rewe, Lidl etc) bekommt eine eigene Tabelle. Somit wollte ich die Übersichtlichkeit gewährleisten.
Mit Verlaub, aber das ist Unsinn.
Die Stammdaten kommen alle in eine Tabelle. Und da kaommen nur die Stammdaten rein, weder Preise noch Intervalle. Dazu sind extra Tabellen notwendig.

ZitatIch glaube ich muss mir mal ein paar Bücher leihen und das mal neu beginnen
Ja, das ist eine gute Idee.
Hier noch was zum Einstieg:
https://www.hdm-stuttgart.de/~riekert/lehre/db-kelz/
und
https://www.access-tutorial.de/
Titel: Re: Formularfelder temporär entsperren
Beitrag von: Beaker s.a. am August 12, 2019, 17:50:34
@mYcr0ft
ZitatDie Stammdaten kommen alle in eine Tabelle.
So wie ich die Daten gesehen habe, eher zwei; - Kunden (Rewe, Lidl usw.)
und Filialen. Sollte es dann noch bei einem Kunden mehrere Abrechnungs-
stellen geben, müssten die noch dazwischen,
Kunden -> Abrechnungstellen -> Filialen (jeweils mit einer 1:n Beziehung).
Schau dir auch dieses mächtige Tool mal an: http://www.buch.andreasstern.de/adamo.php (http://www.buch.andreasstern.de/adamo.php)
Nach dem Lesen von Klaus' Links kannst du damit bestimmt zu einem Modell
kommen, bei dem dir hier dann gerne weiter geholfen wird.
gruss ekkehard