Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: isis361 am März 15, 2022, 19:42:43

Titel: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: isis361 am März 15, 2022, 19:42:43
Hallo zusammen,
ok, bin ein absoluter Anfänger, Kurs ist 10 Jahre her und nie in der Praxis angewendet. Daher vermutlich eine völlige Anfängerfrage aber mein Hirn hat gerade einen völligen Knoten im System.

Fahrzeugliste mit bis zu 5 Kennzeichen.
Teilbereich 1 Mitarbeiterdatensatz mit Pers.-Nr., Vorname und Name
Teilbereich 2 Kennzeichen mit bis zu 5 Kennzeichen
Teilbereich 2 Angaben zu verschiedenen anderen erforderlichen Daten (dieser besteht aus verschiedenen Tabellen mit Beziehungen zur Mitarbeitertabelle, funktioniert auch in der Suchabfrage ohne Probleme)

Ich hänge jetzt an dem Problem mit den Kennzeichen. Ich möchte in der Suchabfrage nur einmal das Kennzeichenfeld haben und dort auch nur nach Teilstücken des Kennzeichen suchen können.
Wie löse ich dieses am Besten? Bisher stehen alle Daten gemeinsam in einer Tabelle, benötige ich eine extra Tabelle oder wie müsste ich das Suchfeld aufbauen. Bisher wirft er mir leider nur die Datensätze aus die 2 Kennzeichen oder mehr haben.

Vielen Dank für die Hilfe.
isis361
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: DF6GL am März 16, 2022, 08:14:25
Hallo,

ich befürchte, es steht da einiger Aufwand an Vorbereitungen an, was die Basis einer DB anbelangt:

--  Aufteilung zueinander gehörenden Daten in einzelne Tabellen unter Berücksichtigung und Anwendung der Normalisierungsregeln.


-- Einstellen der Beziehungen (Primärschlüssel, Fremdschlüssel) zwischen den Tabellen.

-- Beachten von Benennungs-Regeln. (Vermeiden von Sonder- und Leerzeichen in Namen. Reservierte Wörter nicht benutzen. Über alle Tabellen hinweg eindeutige Feldnamen definieren.)


-- Abfragen, Formulare/Berichte  erst nach vollständiger Tabellenkonstruktion angehen.



Ein Screenshot des (ganzen) Beziehungsfensters mit allen Tabellen und den darin sichtbaren Feldern wäre sehr informativ.

Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: isis361 am März 16, 2022, 16:38:43
Vielen Dank für die Antwort, mit dem Bild hatte ich gestern schon versucht. Leider ist mir das nicht gelungen.

Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: MzKlMu am März 16, 2022, 16:45:08
Hallo,
Zitat von: undefinedLeider ist mir das nicht gelungen.
Man kann völlig problemlos Bilder hier anhängen.
Es ist mir nicht gelungen ist eine wenig hilfreiche Beschreibung Deiner Versuche.
Woran ist es denn gescheitert ?
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: isis361 am März 16, 2022, 19:13:22
Ich hatte es mit copy und paste versucht.

https://www.dropbox.com/s/ahlcpwhfv4nfoij/eingabeformular-8ce79eec.png?dl=0
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: isis361 am März 16, 2022, 19:17:10
Leider sind hier auf der Arbeit viele Funktionen nicht verfügbar und daher muss ich über Umwege gehen und bin nun bei dieser Möglichkeit angekommen.

(https://www.dropbox.com/s/ej7enkfinef1xy1/Abfrageformular-04f41a9b.png?dl=0)

https://www.dropbox.com/s/jj8clqxzzxbe9s5/Beziehungen-63f0d0fa.png?dl=0

Das wären die Vorlagen für das Eingabeformular und das Abfrageformular und die bisher bestehenden Beziehungen.
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: DF6GL am März 16, 2022, 22:25:17
Hallo,

mein vorheriger Beitrag gilt nach wie vor.

Bevor die Tabellen nicht entspr. der Normalisierungsregeln aufgebaut werden, brauchen wir hier nicht weiter zu diskutieren.

Welche Aufgabe soll die DB denn bewältigen?

Ich vermute, es soll sich um eine (kleine) Fuhrpark-(Fahrzeug-)Verwaltung handeln.

Als absolutes Minimum an Tabellen sollte sein:


tblFahrzeuge     (neben dem obligatorischen Primärschlüssel (FZID) als Autowert alle Attribute, die ein Fahrzeug ausmachen und definieren (z.B.: FG_Nummer, Hersteller, Modell, Anschaffungsdatum ,etc.),  zusätzlich Fremdschlüssel für Nachschlagetabellen --->  Hersteller, Besitzer(Personen), etc. )


tblPersonen   (neben dem obligatorischen Primärschlüssel (PersID) als Autowert alle Attribute, die eine Person bestimmen, z. B. Vorname, Nachname, PLZ, Wohnort, Strasse, Führerschein_Nummer , etc.)


weitere Nachschlagetabellen, die ich jetzt außen vorlasse.


Die mehrfachen Kennzeichen-Felder erschließen sich mir nicht, außer dass es erforderlich ist, eine Historie über die FZ-Kennzeichen zu führen, die einem FZ nacheinander zugeteilt wurden. Dann:

tblFz_Kennzeichen 
FzKzID (PK. Autowert)
FzKz_FZID  (FK, zu Tabelle tblFahrzeuge)
FzKz_Kennzeichen (Text)
FzKz_VergabeDatum (Datum/Uhrzeit)




Selbiges gilt für die ParkplatzNr, wenn die zeitlich wechselnd sein kann.



Arbeitsplatz und Einfahrtberechtigung gehören m. E. in tblPersonen aufgenommen


Welche Daten sollen als Anlage erfasst werden?

Welche Bedeutung hat tblEinfahrtberechigung?  Gibt es mehrere unterschiedliche solcher Berechtigungen  (ganztägig, Zeitbereich, Mitfahrer-Erlaubnis , ?? )

Was ist "Freischaltung" und "Gruppierung" ?



Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: isis361 am März 17, 2022, 16:21:23
Ok, ich versuche es mal genauer zu erklären.

Die hauptsächliche Nutzung der Datenbank wird die Suchfunktion nach den Kennzeichen der Mitarbeiter sein. Es soll möglichst schnell der Mitarbeiter ausfindig gemacht werden der zu einem Fahrzeug gehört (für die Mitarbeiter vom Empfang). Sie soll jedoch auch in der Lage sein, nach den anderen Kriterien zu filtern um z.B. zu sehen wer in welches Werk fahren darf, wer wo parken darf, wer welche Art der Freischaltung hat etc. (für andere Abteilungen).

Es ist also eher eine Kennzeichenliste als Fahrzeugliste. Sie ist hauptsächlich für die privaten Fahrzeuge der 3500 Mitarbeiter, daher auch bis zu 5 Kennzeichen.
Dienstfahrzeuge und Poolfahrzeuge möchte ich darin aber auch erfassen, u.a. wegen der Einfahrtberechtigung in die Werke, nicht jedes darf in jedes Werk fahren.

tblWerk: Es gibt 10 verschiedene Werke in denen die Mitarbeiter arbeiten und parken, sowohl in Wort als auch Zahl geschrieben. Um unterschiedliche Schreibweisen zu verhindern hatte ich diese als extra Tabelle angelegt.

tblParkmarke: Es gibt bisher 3 verschiedene Arten dieser Marken die unterschiedliche Berechtigungen haben.

tblEinfahrtberechtigungen: Bisher ist die Einfahrt in 4 verschieden Werke möglich, jedoch in den unterschiedlichsten Kombinationen. Soll aber zukünftig ausgedehnt werden evtl. auch für die Parkplätze, die nicht im umzäunten Gelände liegen.

tblFreischaltungArt: Bisher 3 verschieden Arten der Freischaltung, Karte, Tag oder durch Knopfdruck vom Empfang

tblGruppierung: Es gibt 8 verschieden Gruppen die, aufgrund ihrer Arbeit, Freischaltungen zu den Schranken haben.

ParkplatzNr: Gilt tatsächlich nur für den Mitarbeiter im Gelände, daher gehört es zu den Mitarbeiterdaten.

Arbeitsplatz wechselnd: ist ein Ja/Nein Feld für die Mitarbeiter die in mehreren Werken im Einsatz sind, diese haben dann eigentlich ein festes Werk als Arbeitsplatz können aber auch in den anderen Werken als Vertretung im Einsatz sein.

Bemerkungen, erteil am, erteilt durch sind auf den Mitarbeiter und die Einfahrtgenehmigung bezogenen Daten.

Die Einzeltabellen sind eher für die Filterung gedacht. Die Sekretariate der Werke oder die für die Freischaltung der Mitarbeiter zuständigen Personen gleichen ihre Daten mit diesen dann ab. Um hier unterschiedliche Schreibweisen zu vermeiden oder später schneller neue Werke etc. hinzufügen zu können habe ich die alle separat angelegt. und über die ID mit Autowert verknüpft.

Anlage war erstmal nur eine Idee im Hinterkopf, um dort später vielleicht Dokumente anzuhängen, in denen weiter Daten für die Genehmigungen stehen. Wird aber vermutlich nicht notwendig sein.

Erschließt sich das jetzt etwas besser?
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: Beaker s.a. am März 17, 2022, 16:41:34
Hallo,
Also nach der Beschreibung kommen da schon so ein Dtzd. Tabellen
zusammen. Am Besten postest du ein komplettes Bild des Beziehungsfensters,
worum Klaus auch schon gebeten hatte.

gruss ekkehard
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: isis361 am März 17, 2022, 16:55:00
Die Links zur Dropbox in der der die Bilder liegen hatte ich bereits gepostet. Weiß leider nicht wie ich das hier sonst hinbekommen soll.

(https://www.dropbox.com/s/ej7enkfinef1xy1/Abfrageformular-04f41a9b.png?dl=0)


Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: MzKlMu am März 17, 2022, 17:25:16
Hallo,
@ekkehard
Das Beziehungsbild gibt es schon in #5
Ich habe das hier noch als Bild angehängt.

@isis361
Zitat von: undefineddaher auch bis zu 5 Kennzeichen.
Die Kennzeichen gehören in eine extra Tabelle je Kennzeichen ein Datensatz mit einem Fremdschlüssel zum Mitarbeiter. Wahrscheinlich sind da auch noch 2 Datumsfelder sinnvoll (von-bis), denn man muss auch frühere Kennzeichen zuordnen können.
Auch der Arbeitspaltz ist mit Von-bis in einer extra Tabelle zu erfassen.
Die jetzige Tabelle "tblKennzeichen" ist in "tblPersonen" umzubenennen, denn in dieser Tabelle gibt es nur die reinen Personendaten und keine Kennzeichen.
Verzichte unbedingt auf Leer und Sonderzeichen (außer dem _) in den Feldnamen.
Die ID Felder nicht einfach ID nennen, sondern mit einem Bezug zur Tabelle. Es ist vorteilhaft, wenn es in einer DB über alle Tabellen keine gleichen Feldnamen gibt.
Und natürlich RI einstellen.
Das war es mal vorläufig, da gibt es bestimmt noch mehr zu ändern. Mache das mal, dann neues Beziehungsbild hier zeigen.

Sind die Einfahrten der Person zugeordnet oder dem Kennzeichen ?
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: isis361 am März 17, 2022, 17:48:20
Hallo, Klaus,

ok, diesen Denkansatz hatte ich auch schon. War mir nur nicht sicher ob der jetzt richtig ist oder nicht.

Die Einfahrten sind gesplittet zugeordnet. Bei der Karte ist es der Mitarbeiterausweis, beim Tag hat das Fahrzeug (Poolfahrzeug) die Berechtigung, bei den Dienstwagen ist es unterschiedlich, einige haben noch Tags andere schon Karte.
Unterschiedlich auch noch in den Werken, in einem Werk darf die Freischaltung nur über die Karte, also persönlich zugeordnert, erfolgen in den Anderen ist es egal, da kann sich auch das Fahrzeug unabhängig vom Fahrer reinlassen.

Ist leider ein sehr schwieriges Thema und über die Jahre und Systeme gewachsen.
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: MzKlMu am März 17, 2022, 17:50:37
@isis361
Bitte meinen Beitrag in #10 noch mal lesen, habe noch einiges ergänzt.
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: Beaker s.a. am März 17, 2022, 17:52:15
Hallo,
@kKlaus
Ja, habe ich mir gerade angesehen. Bin kein Freund externer Links. Bei
Dropbox hab' ich's dann aber mal "gewagt".

@isis361
Das die KZ in eine Extratabelle gehören, hat Klaus bereits erwähnt.
ZitatArbeitsplatz wechselnd: ist ein Ja/Nein Feld für die Mitarbeiter die in mehreren Werken im Einsatz sind, diese haben dann eigentlich ein festes Werk als Arbeitsplatz können aber auch in den anderen Werken als Vertretung im Einsatz sein.
Das würde ich anders lösen
1. die Beziehung Mitarbeiter - Werk mit einer n:m-Tabelle abbilden
2. darin ein Ja/Nein-Feld "StandardWerk" (dabei musst du nur sicherstellen, dass
nur 1 DS markiert sein darf)
Das Feld "Arbeitsplatz wechselnd" hätte dann nur noch informativen Charakter, ist
aber eigentlich unnötig.

Ganz wichtig! In den Beziehungen ist "Referentielle Integrität" einzustellen.

gruss ekkehard
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: Beaker s.a. am März 17, 2022, 17:55:15
Hat sich gerade mit euren letzten Antworten überschnitten.
Der letzte Post von isis bestätigt meine Annahme, dass da noch einiges an Tabellen
notwendig sein wird. Die eine oder andere n:m vermute ich.
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: isis361 am März 17, 2022, 18:40:41
Vielen Dank für die Infos, die werden mir sicher weiterhelfen. Ich werde das jetzt alles noch einmal neu aufbauen und schauen was sich daraus dann an weiteren Fragen ergibt. :-)

Vielleicht erklärt mir ja noch jemand wie das mit den Bildern hier so einfach funktionieren soll. Dazu bin ich scheinbar wirklich zu blöd.....
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: isis361 am März 17, 2022, 18:43:12
Vielen Dank für die ganzen Infos! Ich denke die werden mir sicher weiterhelfen. Werde das jetzt alles noch einmal neu aufbauen und es als Übung nutzen. Mal sehen welche Fragen ich dann noch haben werde.

Was sich mir allerdings immer noch nicht erschließt ist dass Thema mit den Fotos hier einstellen. Vielleicht kann mir jemand erklären wie das so einfach geht. Dafür bin ich scheinbar echt zu blöd.
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: isis361 am März 29, 2022, 19:07:00
Mein Kennzeichenproblem ist gelöst! Vielen Dank noch einmal für die Hilfe!
Eingabeformular läuft auch perfekt mit dem UFO für die Kennzeichen.

Leider hänge ich nun bei dem Formular für die Abfrage und dem Suchkriterium des Werkes.

Die Mitarbeitertabelle ist mit der Tabelle für die Werke über 1:n vom Arbeitsplatz zum Primärschlüssel der tbl Werke verbunden. Inhalt der der tblWerke sind 13 verschiedene Werke. Wenn ich im Abfrageformular die ersten 3 Datensätze anwähle werden mir als Ergebnis auch die Werke aus der Tabelle ausgeworfen die dort in den Zeilen 10 - 13 stehen.
Genauer gesagt, wenn ich z.B. Werk 1 wähle werden mir auch die Einträger aus den Zeilen 10,11,12 und 13 angezeigt. Wenn ich Werk 2 wähle bekomme ich auch den Eintrag aus Zeile 12 angezeigt. Wenn ich Werk 3 wähle bekomme ich auch den Eintrag aus Zeile 13 angezeigt.

Ist das verständlich ausgedrückt? Was habe ich falsch gemacht oder wie müsste ich es anders machen?
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: MzKlMu am März 29, 2022, 19:14:34
Hallo,
womit wir wieder beim Bild wären.
Zeige bitte ein Bild des aktuellen Beziehungsfenster.
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: isis361 am März 29, 2022, 20:10:35
Würde ich ja gerne wenn mir jemand erklärt wie ich das machen muss.
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: HB9876 am März 29, 2022, 20:22:19
ZitatWürde ich ja gerne wenn mir jemand erklärt wie ich das machen muss.
Einen screen shot machen und beim Antworten als Anhang (Bild Einfuegen).
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: isis361 am März 29, 2022, 20:42:59
Zitat von: HB9876 am März 29, 2022, 20:22:19
ZitatWürde ich ja gerne wenn mir jemand erklärt wie ich das machen muss.
Einen screen shot machen und beim Antworten als Anhang (Bild Einfuegen).

Wenn ich auf Bild einfügen gehe bekomme ich nur die Möglichkeit angezeigt, eine url einzugeben.
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: isis361 am März 29, 2022, 20:53:42
https://www.dropbox.com/s/wpr0v8aj7fe3lo6/screenshot%202022-03-29%20204617-aa77d0c9.jpg?dl=0

Also wieder auf diesem Umweg.
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: DF6GL am März 30, 2022, 08:53:47
Hallo,


was ist denn so schwierig, auf die gezeigten Buttons zu klicken?

Ich glaube nicht, das der aktuelle Tabellenaufbau jetzt die Anforderungen abdeckt.


Zudem sind die Beziehungen zu überarbeiten und  1:n-Beziehungen vom Typ 1 einzustellen.

Der jetzige Zustand läßt keine Mehrfachzuordnungen zu und auch keine historische Verfolgbarkeit.





Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: isis361 am März 30, 2022, 19:33:39
Hallo Franz,

vielen Dank für die Erklärung mit dem Bild. Bei der Schnellantwort habe ich diese Funktion nicht, lediglich die über Bild einfügen oben. Da ich meistens diese Art der Antwort genutzt habe ist mir der Punkt Attachments and other options bisher nicht wirklich aufgefallen.

Screenshot 2022-03-30 190006.jpg

Die 1:n Beziehungen sind alle auf Typ 1 eingestellt. Bei diesem trifft pro Mitarbeiter nur 1 Möglichkeit aus der Tabelle zu.
Lediglich die tblKennzeichen ist eine RI im Typ 3. Da jedem Mitarbeiter ja mehrere Kennzeichen zugeordnet werden sollen.

Eine Historische Verfolgbarkeit ist eigentlich nicht erforderlich. Wenn ein Mitarbeiter ausgeschieden ist wird der Datensatz gelöscht und muss auch nicht mehr nachverfolgbar sein.

So sieht das Suchformular aus darunter die Abfrageliste mit allen Mitarbeiterdaten die dann gefiltert werden soll.

Suchformular mit Liste aller Mitarbeiter.jpg

Mein Problem ist nun bei der Auswahl der Kennzeichen. Wenn ich Werk 1 auswähle bekomme ich mehr Daten angezeigt. Es sind die Daten auch der tblWerke die dort in den Zeilen 10, 11, 12 und 13 stehen.

Suchformular Auswahl Kennzeichen.jpg

Suchformular Ausgabe 1.jpg



Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: DF6GL am März 30, 2022, 19:51:34
Hallo,

ZitatDie 1:n Beziehungen sind alle auf Typ 1 eingestellt. Bei diesem trifft pro Mitarbeiter nur 1 Möglichkeit aus der Tabelle zu.

Stelle zusätzlich referenzielle Integrität ein...



ZitatLediglich die tblKennzeichen ist eine RI im Typ 3. Da jedem Mitarbeiter ja mehrere Kennzeichen zugeordnet werden sollen.


Typ 3 bedeutet nicht die Möglichkeit der Zuordnung mehrerer Kennzeichen pro Mitarbeiter. 1:n-Beziehung sagt dies aus. Stelle also hier auch wie bei den anderen Beziehungen Typ 1 ein.



Lt. den Beziehungen kann ein Mitarbeiter nur zu einem Werk gehören, kann aber mehrere Kennzeichen besitzen.  Wenn also ein Mitarbeiter zu einem bestimmten Werk gefiltert wird, werden so viele DS geliefert, wie dieser MA Kennzeichen besitzt.

Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: isis361 am März 30, 2022, 21:04:20
Typ 3 ist umgestellt.

Stelle zusätzlich referenzielle Integrität ein...             
Ich erhalte die Meldung: Für Beziehung ist dieselbe Anzahl an Feldern mit denselben Datensatztypen erforderlich.

Lt. den Beziehungen kann ein Mitarbeiter nur zu einem Werk gehören, kann aber mehrere Kennzeichen besitzen.  Wenn also ein Mitarbeiter zu einem bestimmten Werk gefiltert wird, werden so viele DS geliefert, wie dieser MA Kennzeichen besitzt.
Genau so möchte ich das haben. Dieses gilt auch für die anderen Filter der FreischaltungsArt, Gruppierung, und Parkmarke.
Parkmarke.jpg

Bei dem Werk wirft er jedoch nicht nur Werk 1 aus.
Werke falsch.jpg

Die Werke sind so in der Tabelle angelegt. Er wirft bei den Werken 1 zusätzlich die Daten von R,M,9,8 aus
Bei Werk 2 sind es die Daten von R
Bei Werk 3a sind es die Daten M
Ab Werk 3 b passt wieder alles
Werke falsch.jpg
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: DF6GL am März 31, 2022, 08:42:20
Hallo,


ZitatIch erhalte die Meldung: Für Beziehung ist dieselbe Anzahl an Feldern mit denselben Datensatztypen erforderlich.

Dann behebe doch diesen Fehler!


ZitatBei dem Werk wirft er jedoch nicht nur Werk 1 aus.

Siehe obenstehenden Hinweis.


Lad die DB hier hoch, komprimiert/repariert und gezippt.

Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: isis361 am März 31, 2022, 19:40:18
Ist halt nicht immer einfach wenn man alles nur nebenher machen kann und sich nur mal ne Stunde damit beschäftigen kann. Teilweise Tage dazwischen sind und sich immer wieder neu reindenken muss.

Die Beziehungen habe ich jetzt geändert und auch DB angehängt.
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: MzKlMu am März 31, 2022, 20:01:30
Hallo,
die Beziehungen sind immer noch falsch.
Du hast immer noch die 5 Kennzeichen Felder drin, das ist untauglich.
Was hast Du eigentlich aus den bisherigen Hinweisen mitgenommen?
Das Anlagefeld ist auch keine gute Lösung.
Es fehlt RI und in den Feldnamen gibt Leer und Sonderzeichen die unbedingt vermieden werden sollten.
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: isis361 am März 31, 2022, 20:41:38
Sorry ich hab das falsche Bild erwischt.
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: DF6GL am April 02, 2022, 09:22:10
Hallo,

habe die Db an vielen Stellen auf Vordermann gebracht.  Die Makros zur Formularnavigation sind geblieben. Die sollten aber besser in VBA-Code konvertiert werden.



Änderungen

-am Code , speziell der Filterungen und NULL-Zuweisung an die Suchfelder.
-an Abfrage  , Formular-Verweise entfernt.
-an Beziehungen, PK in tblMitarbeiterDaten geändert, Beziehungen zu tblKennzeichen angepasst.
-Leerzeichen aus Feldnamen entfernt.
-Datentyp für "ErfasstAm" auf Datum/Uhrzeit geändert.
-FK-Schlüsselnamen an entspr. PKs angepasst.
-Suchfunktion (Filter) nur für Werk (Arbeitsplatz) eingebaut. Warum heißt "Werk" auch "Arbeitsplatz" ?
 Die restliche Filter kannst Du selbst versuchen, nach diesem Muster einzubauen.

- tblParkplatzNr fehlt
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: isis361 am April 10, 2022, 17:13:10
Vielen Dank Franz!

Ich werde mir das in den nächsten Tagen in Ruhe anschauen und dann weiter daran arbeiten!

Viele Grüße
Simone
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: isis361 am April 26, 2022, 20:22:34
Hallo Franz,

hatte nun endlich Zeit weiter daran zu arbeiten.

-am Code , speziell der Filterungen und NULL-Zuweisung an die Suchfelder.
Vielen Dank, das hat mir sehr weiter geholfen.

-an Abfrage  , Formular-Verweise entfernt.
Die Abfragen werde ich vermutlich gar nicht benötigen wie ich das derzeit sehe.

-an Beziehungen, PK in tblMitarbeiterDaten geändert, Beziehungen zu tblKennzeichen angepasst.
Langsam werde ich mit den Abkürzungen für die PK warm :-) und bei der Verknüpfung hab ich wohl einen Denkfehler gehabt.

-Leerzeichen aus Feldnamen entfernt.
Stimmt da waren noch 2 drin die ich dann auch gesehen habe.

-Datentyp für "ErfasstAm" auf Datum/Uhrzeit geändert.
Bin ich noch nicht sicher wie das mit der Eingabe letztendlich laufen wird da auch viele Datierungen gar nicht mehr auf ein Datum festgelegt werden können. Darüber muss ich noch nachdenken wenn wir die eingeben und sich herausstellt was Sinn macht.

-FK-Schlüsselnamen an entspr. PKs angepasst.
Vielen Dank!

-Suchfunktion (Filter) nur für Werk (Arbeitsplatz) eingebaut. Warum heißt "Werk" auch "Arbeitsplatz" ?
 Die restliche Filter kannst Du selbst versuchen, nach diesem Muster einzubauen.
Sehr schön, das hat mir sehr weitergeholfen und ich habe die Anderen jetzt auch am Laufen. Gute Frage, hab den Titel jetzt angepasst. Meistens sprechen wir von Werk auch wenn es eigentlich der Arbeitsplatz in dem Werk wäre.

- tblParkplatzNr fehlt
Ich denke nicht das die erforderlich ist. Nur wenige Mitarbeiter haben einen zugewiesenen Parkplatz und einige eine Parkscheibe mit einer Nummer. Das sind dann Mitarbeiter bezogene Daten daher würde ich die eher im Datensatz selbst belassen.

Makros hab ich inzwischen auch in VBA gewandelt, auch wenn ich da noch nicht ganz zufrieden mit bin.

Derzeit hänge ich allerdings an der passenden VBA zum öffnen des Eingabeformulares für die Mitarbeiterdaten.

Kann ich die Frage dazu hier stellen oder sollte ich einen neuen Beitrag in Formulare öffnen?
Problem
Ich möchte, wenn ich auf der Auswahlseite Datensatz erstellen wähle, dass sich das Eingabeformular mit einem neuen Datensatz öffnet.
1 Startmaske.jpg
Programmierung hinter dem Button
Private Sub btnDatensuche_Click()
DoCmd.OpenForm "frmabfMADatenundKennz"
End Sub

Wenn ich aber vom Suchformular über die Auswahl auf den Mitarbeiterdaten gehe möchte ich das genau dieser Datensatz geöffnet wird.
2 Suchformular.jpg
Programmierung
Private Sub Nachname_Click()
DoCmd.OpenForm _
FormName:="frmMitarbeiterdatenEingabe", _
WhereCondition:="PersonalNummer = " & Me!PersonalNummer
End Sub

3 Eingabe Mitarbeiterdaten.jpg
Bei dem Eingabeformular möchte ich, dass wenn ein neuer Datensatz geöffnet es verschiedene Vorgaben gibt die bereits eingetragen sind. Eine Bearbeitung soll erst möglich sein wenn der Button Datensatz bearbeiten gewählt wird. Es soll bewusst gespeichert werden und nicht einfach in die Tabelle geschrieben werden.

Ich habe da jetzt einiges an VBA, jedoch ist das noch nicht ganz so funktionsfähig wie es sein sollte. Dafür fehlt mir einfach die Erfahrung um das wirklich alles so ans Laufen zu bekommen.
Derzeit sieht die Programmierung so aus:
Option Compare Database
Option Explicit
Private bolsichern As Boolean


Private Sub btnDatensatzbearbeiten_Click()
Me.AllowEdits = True

End Sub

Private Sub btnDatensatzspeichern_Click()
If MsgBox("Wirklich speichern?", vbYesNo) = vbYes Then
bolsichern = True
DoCmd.RunCommand acCmdSaveRecord
End If
End Sub

Private Sub btnErsterDatensatz_Click()
DoCmd.GoToRecord , , acFirst
End Sub



Private Sub btnLetzterDatensatz_Click()
DoCmd.GoToRecord , , acLast

End Sub

Private Sub btnnächsterDatensatz_Click()
DoCmd.GoToRecord , , acNext

End Sub

Private Sub btnNeuerDatensatz_Click()
DoCmd.GoToRecord , , acNewRec
End Sub

Private Sub btnvorherigerDatensatz_Click()
DoCmd.GoToRecord , , acPrevious
If Me.CurrentRecord = 1 Then MsgBox "Erster Datensatz erreicht"
End Sub

Private Sub btnWechselSuchen_Click()
DoCmd.BrowseTo acBrowseToForm, "frmabfMADatenundKennz"
End Sub

Private Sub btnzurückAuswahl_Click()
DoCmd.BrowseTo acBrowseToForm, "frmAuswahlmenü"
End Sub

Private Sub Form_AfterUpdate()
bolsichern = False
End Sub


Private Sub Form_Current()
Me.AllowEdits = False
End Sub


Private Sub Form_Open(Cancel As Integer)
If Me.NewRecord Then
DoCmd.GoToRecord , , acNewRec
Me!IDPM_f = Me!IDPM_f.ItemData(1)
Me!IDFS_f = Me!IDFS_f.ItemData(2)
Me!IDGP_f = Me!IDGP_f.ItemData(9)
Me!IDEP_f = Me!IDEP_f.ItemData(7)
Else
DoCmd.OpenForm _
FormName:="frmMitarbeiterdatenEingabe", _
WhereCondition:="PersonalNummer = " & Me!PersonalNummer
End If
End Sub

Wobei if/else garantiert nicht laufen kann. Da bin ich jetzt echt hängen geblieben.

Mag mir nochmal jemand helfen?

Vielen Dank!
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: DF6GL am April 27, 2022, 16:04:45
Hallo,

es wäre besser, die aktuelle DB hier hochzuladen (komprimiert/repariert und gezippt) und daran an Hand der genauen Formular- und Steuerelementnamen zu erklären, was wann und wo passieren soll.


Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: isis361 am April 27, 2022, 21:07:29
Hallo Franz,

ok, ich hätte sie gestern gleich einstellen sollen. Hatte ich noch überlegt.

Das Absprünge vom Formular Auswahlmenü laufen so wie ich es mir vorstelle.

Suchfunktionen laufen auch alle. Hier wäre es lediglich schön, wenn man die Textfelder und Dropdownfelder bei der Suche aufeinander aufbauen lassen könnte. Bei den Dropdownfeldern funktioniert das, nicht jedoch in Kombi mit den Textfeldern.
Außerdem muss ich noch an dem Format für das PDF arbeiten und es soll auch einen Export der gefilterten Daten in Excel geben. Damit werde ich mich befassen wenn ich den Rest im Griff habe.

Mein Problemkind ist derzeit das Eingabeformular.
Es wird der Musterdatensatz geöffnet.
Die Daten sind nicht zu bearbeiten.
Der Wechsel zur Suchfunktion und zum Auswahlmenü klappt.
Daten löschen und Eingabe abbrechen funktionieren.
Datensatz bearbeiten funktioniert auch.
Die Punkte Neuen Datensatz anlegen, Datensatz bearbeiten und Speichern laufen jedoch noch nicht sauber.
Zwischendurch hat das Speichern jedoch schon perfekt funktioniert, bei einer der Erweiterungen habe ich dann aber irgendwo einen Wurm eingebaut den ich leider selbst nicht finde.
Bei Neuem Datensatz anlegen gibt er zwar die Vorgaben aus, die ich ihm gegeben habe, jedoch kann man im Ufo die Kennzeichen nicht mehr eingeben, das Feld fehlt. Dieses gilt auch wenn man auf Datensatz bearbeiten geht. Da kann man nur die Kennzeichen bearbeiten, die da sind, jedoch keine weiteren eingeben.
In der Tabelle hatte ich diverse leere Datensätze stehen, wann er die gespeichert hab weiß ich nicht. Im Suchformular werden die neuen Datensätze nicht angezeigt.

Die Datensatz Navigation gibt zwar die Meldung aus erster und letzter Datensatz aber wenn man dann versehentlich doch noch einen Datensatz weiter klickt bekommt man den Laufzeitfehler 2105 Sie können nicht zum angegebenen Datensatz springen. Ist aber nicht tragisch und ich überlege eh noch diese Button wieder zu löschen.

Ich bin sicher, jemand der sich da auskennt findet meine Fehler sehr schnell. Mir mangelt es einfach an Erfahrung und Übung. Allerdings ist mein Interesse geweckt und ich werde mich mit diesem Thema sicher noch intensiver befassen.

Viele Grüße und vielen Dank
Simone
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: DF6GL am April 28, 2022, 11:50:42
Hallo,

Tipp:

Wirf zunächst alle Ereignisprozeduren weg, die mit "speichern" zu tun haben.

Schreibe in JEDEN Modulkopf "Option Explicit" hinzu.

Setze die Eigenschaft "Bearbeitungen zulassen" in allen Formularen auf "Ja".

Vermeide "DoCmd.SetWarnings False" und behandle Fehler-/Hinweismeldungen mit einem Errorhandler-Codeblock.  (On Error Goto MyErr, ...) 

Vermeide grundsätzlich "Bearbeiten" und "Speichern" im Unterformularen.  Einstellung von "AllowEdits" im HFO reicht völlig. Diese Eigenschaft sollte nicht im Form-Current-Ereignis gesetzt werden.

Soll heißen, erstelle die Forms ohne die Ablaufsteuerungen und teste dann, ob die Daten richtig verarbeitet werden (anhand der Logik aus den Beziehungen.) Wenn das der Fall ist, kann man sich an Gimmicks machen. Beachte aber, dass beim Wechsel in das UFO schon der HFO-DS automatisch gespeichert wird.

Vermeide Access-interne Makros. z. B. "DoCmd.RunCommand acCmdUndo"  und benutze stattdessen "Me.Undo", evtl. mehrmals hintereinander; oder z. B Me.Dirty= False"  anstelle der Runcommand-Konstanten zum Speichern.

Wirf Format-Angaben und Standardwerte aus den Tabellen.  Nutze stattdessen die Eigenschaften im Formular. 


Zitatdie Meldung aus erster und letzter Datensatz
brauchst Du nicht löschen, Fang den Zustand (Fehlermeldung, bzw. Hinweis) mit einem Errorhandler ab und reagiere entspr.

Z. B.:

Private Sub btnnächsterDatensatz_Click()

On Error GoTo MyErr

If Me.CurrentRecord < Me.Recordset.RecordCount Then
  DoCmd.GoToRecord , , acNext
End If

Exit_Sub:
Exit Sub

MyErr:

If Err.Number = 2105 Then

'MsgBox Err.Description
 Resume Exit_Sub
End If

End Sub
Titel: Re: Suchabfrage zu Mehrfacheinträgen bei einem Datensatz
Beitrag von: isis361 am April 29, 2022, 20:45:24
Hallo Franz,

ich hab dann mal versucht meine Hausaufgaben zu machen. :-)


Wirf zunächst alle Ereignisprozeduren weg, die mit "speichern" zu tun haben.
Gemacht, alles noch einmal ganz von Vorne angefangen, nicht nur speichern. Festigt den Umgang und ist gut zur Übung und dem Verstehen.


Schreibe in JEDEN Modulkopf "Option Explicit" hinzu.
-Erledigt.

Setze die Eigenschaft "Bearbeitungen zulassen" in allen Formularen auf "Ja".
-Auch gemacht.

Vermeide "DoCmd.SetWarnings False" und behandle Fehler-/Hinweismeldungen mit einem Errorhandler-Codeblock.  (On Error Goto MyErr, ...)
-Hab ich umgeschrieben, etwas anders wie Dein Vorschlag, mit dieser MyErr Variante werde ich noch nicht warm.


Vermeide grundsätzlich "Bearbeiten" und "Speichern" im Unterformularen.  Einstellung von "AllowEdits" im HFO reicht völlig. Diese Eigenschaft sollte nicht im Form-Current-Ereignis gesetzt werden.
-Ich habe die Funktionen im UFO gelöscht und von Current auf Form_Load gesetzt oder sollte es besser unter Form_Open stehen oder wo ist das am sinnvollsten?


Soll heißen, erstelle die Forms ohne die Ablaufsteuerungen und teste dann, ob die Daten richtig verarbeitet werden (anhand der Logik aus den Beziehungen.) Wenn das der Fall ist, kann man sich an Gimmicks machen. Beachte aber, dass beim Wechsel in das UFO schon der HFO-DS automatisch gespeichert wird.
-Genau dieses Speichern beim Wechsel bereitet mir noch Probleme mit dem Me.Undo bei Änderungen nicht speichern. Wobei im Normalfall nach dem Anlegen des Datensatzes entweder das Kennzeichen oder die Mitarbeiterdaten geändert werden. Nur sehr selten mal beides, dann eher alles löschen. Trotzdem sollte er bei Eingabe abbrechen auch im UFO die Angaben zurücksetzten und nicht wie derzeit nur im HF. Da muss ich noch nacharbeiten, ebenso beim Löschen, 3 Fenster zur Popup sind eindeutig zu viel.

Vermeide Access-interne Makros. z. B. "DoCmd.RunCommand acCmdUndo"  und benutze stattdessen "Me.Undo", evtl. mehrmals hintereinander; oder z. B Me.Dirty= False"  anstelle der Runcommand-Konstanten zum Speichern.
-Erledigt, scheint auch so zu laufen.


Wirf Format-Angaben und Standardwerte aus den Tabellen.  Nutze stattdessen die Eigenschaften im Formular.
-Standardwerte sind aus den Tabellen raus, hatte da probiert und vergessen die wieder zu löschen nachdem ich den richtigen Ansatz für die VBA hatte. Meinst Du mit den Format-Angaben die Eingabe des Kennzeichen? Die holt er sich tatsächlich noch aus Daten Eingabeformat der Tabelle. Da muss ich noch schauen wie ich das anders einstelle.

Hatte diese Woche wirklich Zeit mich damit zu beschäftigen. Leider hab ich nächste Wochen schon wesentlich weniger Zeit und danach 5 Wochen fast gar keine. Ich hoffe ich habe dann nicht wieder alles vergessen was ich bisher verstanden habe. Das ist sicherlich für einen Profi alles noch weit entfernt davon gut zu sein, aber für ist das erstmal ok. Hatte ja vor ein paar Wochen noch nicht mal im Ansatz Ahnung von dieser ganzen Materie...

Vielen Dank für Deine Geduld und Hilfe!!!! Wenn der Bodensee nicht so groß wäre würde ich Dir ja glatt in 4 Wochen ne XXL Tafel Schokolade vorbeibringen wenn ich auf Fototour in Schaffhausen bin.

LG
Simone