Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Baluga am Juli 26, 2011, 09:05:04

Titel: Aktuell markiertes Feld auslesen
Beitrag von: Baluga am Juli 26, 2011, 09:05:04
Hallo,

ich habe ein Formular mit einem Unterformular erstellt. Als Daten werden im Unterformular die ID's aus dem Hauptformular eingegeben.
Aus Platzgründen kann ich mir leider aber nicht den ganzen Datensatz anzeigen lassen, sondern nur die ID.
Da es beim Zahlen eintippen schonmal zu Drehern kommt, möchte ich nun gerne ein "Kontrollfeld" haben. Das heißt, ich möchte gerne im HF ein Feld, in dem mir der passende Datensatz des aktiven Feldes im UF angezeigt wird.
Ich hoffe, dass war verständlich erklärt und jemand hat eine Idee zur Umsetzung.

Gruß
Baluga
Titel: Re: Aktuell markiertes Feld auslesen
Beitrag von: DF6GL am Juli 26, 2011, 10:15:42
Hallo,

mhmm, verbal schon, logisch nicht..


"Als Daten werden im Unterformular die ID's aus dem Hauptformular eingegeben"

Warum?

"Aus Platzgründen kann ich mir leider aber nicht den ganzen Datensatz anzeigen lassen, sondern nur die ID."

WO fehlt der Platz (HF oder UFO?)



"möchte gerne im HF ein Feld, in dem mir der passende Datensatz des aktiven Feldes im UF angezeigt wird."

ein ganzer Datensatz in einem Feld?



Ist das HF gebunden?




Fall 1)  ungebundenes HF:

Binde das Form zunächst an die Tabelle, aus der die Daten angezeigt werden sollen.
Erstelle Textfelder mit Bindung an die entspr. Tabellenfelder

Mit der Ereignisprozedur  "Nach Aktualisierung" des ID-Feldes im UFO wird die Recordsource des HF eingestellt auf den gefilterten DS mit dem ID-Wert:


Sub ID_Afterupdate()
Me.Parent.Recordsource="Select * from TabelleHF where Id=" & Me!id
End Sub



Fall 2) gebundenes HF.

Erstelle ein weiteres UFO-Steuerelement ("UFO2") im HF für die Anzeige eines Formulares, das die  den benötigten Felder aus der "Datentabelle" anzeigt.

Über besagte Ereignisprozedur (im Unterformular) stellst Du die Recordsource dieses UFOs ein:


Sub ID_Afterupdate()
Me.Parent!UFO2.Form.Recordsource="Select * from DatenTabelle where Id=" & Me!Id
End Sub


Alternativ könnte auch ein Recordset herhalten, mit dem man ungebundene Textfelder im HF mit Daten aus dem "ID-Datensatz" füttert.


Titel: Re: Aktuell markiertes Feld auslesen
Beitrag von: Baluga am Juli 26, 2011, 14:47:26
Hallo,

"Als Daten werden im Unterformular die ID's aus dem Hauptformular eingegeben"
"Warum?"
Da einige ID's Bestandteile von Anderen ID's sind.

"Aus Platzgründen kann ich mir leider aber nicht den ganzen Datensatz anzeigen lassen, sondern nur die ID."
"WO fehlt der Platz (HF oder UFO?)"
Mir fehlt vorallem im UF der Platz, im HF hätte ich noch Platz um mir einen Datensatz anzeigen zu lassen.

"möchte gerne im HF ein Feld, in dem mir der passende Datensatz des aktiven Feldes im UF angezeigt wird."
"ein ganzer Datensatz in einem Feld?"   "Ist das HF gebunden?"
Nein, es muss nicht in einen Feld sein, wie schon gesagt habe noch Platz für einen Datensatz.
Ja, das HF ist gebunden.

Ich habe den Fall 2 getestet, aber leider nicht hinbekommen. Es werden mir immer alle Datensätze angezeigt. Auch wird bei einer neuen Dateneingabe das zweite UF nicht aktualisiert.


Die Vorgehensweise finde ich ja schon mal gut, da ich so, alle Daten habe. Aber da ich nur den besagten Platz für einen Datensatz habe, wäre hier eine Filterung auf das aktive Feld im ersten UF wichtig.
Wie kann ich das umsetzen?
Titel: Re: Aktuell markiertes Feld auslesen
Beitrag von: DF6GL am Juli 26, 2011, 15:26:02
Hallo,


" nicht hinbekommen"

vermutlich ist ein Fehler drin...


Was hast Du denn wie und wo gemacht?


"Auch wird bei einer neuen Dateneingabe das zweite UF nicht aktualisiert."

Da mußt Du mit einer weiteren Prozedur dafür sorgen, dass das passiert:

Im Unterform:

Sub Form_Afterupdate()
ID_Afterupdate
End Sub

Poste mal konkret (copy&paste) den dazu benutzten (kompletten) Code.
Titel: Re: Aktuell markiertes Feld auslesen
Beitrag von: Baluga am Juli 26, 2011, 15:56:18
Hallo,

bei UF1 nach Aktualisierung:
Private Sub
Me.Parent!NameUF1.Form.RecordSource = "SELECT * FROM NameUF2 WHERE NameID=" & Me!NameID
Forms![NameHF]![NameUF2]![NameID].Requery
End Sub

Das UF2 ist gleich UF1 (Feldnamen sind identisch, nur Formname ist unterschiedlich).
Außerdem habe ich UF2 mit UF1 über die ID verknüpft.

Wo liegt mein Fehler?
Titel: Re: Aktuell markiertes Feld auslesen
Beitrag von: DF6GL am Juli 26, 2011, 16:14:05
Hallo,

ist das copy&paste-Code?


Me.Parent!NameUF1.Form.RecordSource = "SELECT * FROM NameUF2 WHERE NameID=" & Me!NameID


Hier kann nur eine Tabelle(name)  stehen


Forms![NameHF]![NameUF2]![NameID].Requery

für was soll das gut sein?  Wobei NameUF2  der Name eines UFO-Steuerelementes sein muß.
Titel: Re: Aktuell markiertes Feld auslesen
Beitrag von: Baluga am Juli 26, 2011, 18:55:44
Hallo,
nun verstehe ich gar nichts mehr.

Ja, das war copy & paste! Habe nur die Namen ausgetauscht.

Mir ist nun aufgefallen, dass ich aber einen Fehler (zur obigen Anleitung) ein gebaut habe.
Mein Code nun:
Me.Parent!NameUF2.Form.RecordSource = "SELECT * FROM NameUF1 WHERE NameID=" & Me!NameID

"Hier kann nur eine Tabelle(name)  stehen"
Was bedeutet das? Hier steht nur eine Tabelle.


Mit dem geänderten Code werden nun Änderungen auch aktualisiert, allerdings nur von vorhandenen Datensätzen. Neu angelegte werden nicht angezeigt, erst wenn ich manuell aktualisiere.
Weiterhin werden mir immer noch alle Datensätze angezeigt.


Forms![NameHF]![NameUF2]![NameID].Requery
So wurde mir erklärt, dass man Unterformulare aktualisiert.
Titel: Re: Aktuell markiertes Feld auslesen
Beitrag von: MzKlMu am Juli 26, 2011, 19:36:03
Hallo,
ZitatForms![NameHF]![NameUF2]![NameID].Requery
So wurde mir erklärt, dass man Unterformulare aktualisiert.
Nein, so aktualisiert man Felder. NameID wäre hier ein Feldname auf einem Ufo.
Forms![NameHF]![NameUF2].Form.RequeryAktualisiert das Ufo.
Eigentlich kann der Code von Dir gar nicht funktionieren, nach From darf nur ein Tabellen/Abfragename stehen. Oder ist NameUF2  eine Abfrage?

Das beste wird wohl sein, Du lädst die DB mit einer Fehlerbeschreibung hier mal hoch.
Titel: Re: Aktuell markiertes Feld auslesen
Beitrag von: Baluga am Juli 26, 2011, 20:00:42
Hallo,
UF2 basiert auf einer Abfrage.

Die Datei hochladen geht leider nicht (möchte mein Chef nicht).

Wie bekomme ich es denn hin, dass nur ein Datensatz angezeigt wird?
Titel: Re: Aktuell markiertes Feld auslesen
Beitrag von: MzKlMu am Juli 26, 2011, 20:29:18
Hallo,
ZitatDie Datei hochladen geht leider nicht (möchte mein Chef nicht).
Du sollst ja hier nicht die Originaldatei hochladen, sondern ein extra erstelltes Beispiel, abgemagert auf das Problem. Nur mit einigen Spieldaten, keine echte Daten.
Das sollte doch auch der Chef erlauben, zumal er ja eine besser DB (hoffe ich jedenfalls ;D) bekommt.

Ich habe nämlich trotz mehrmaligem Durchlesen keinen Durchblick was Du eigentlich genau willst.
Titel: Re: Aktuell markiertes Feld auslesen
Beitrag von: Baluga am Juli 26, 2011, 20:35:16
Ok, werde morgen mal eine zusammenbauen.
Titel: Re: Aktuell markiertes Feld auslesen
Beitrag von: Baluga am Juli 28, 2011, 19:54:26
Hallo,
hier dann mal die Datenbank zu spielen!

[Anhang gelöscht durch Administrator]
Titel: Re: Aktuell markiertes Feld auslesen
Beitrag von: MzKlMu am Juli 28, 2011, 20:11:01
Hallo,
bitte nach Access2003 konvertieren. Ich (und andere) haben noch kein Access2007.
Beschreibe bitte dann noch mal im Zusammenhang das Problem.
Titel: Re: Aktuell markiertes Feld auslesen
Beitrag von: DF6GL am Juli 28, 2011, 20:24:19
Hallo.

ich habe da Schwierigkeiten, die Aufgabe der DB herauszulesen und die Datenverhältnisse zu interpretieren...


Bevor überhaupt an Formularen was gemacht werden soll, müssen der Tabellenaufbau und die Tabellenbeziehungen auf Vordermann gebracht werden.


Titel: Re: Aktuell markiertes Feld auslesen
Beitrag von: Baluga am Juli 30, 2011, 11:23:01
Hallo,
hier die Datenbank in der 2003er-Version.

Aufgabe:
Im HF werden Datensätze angelegt. Diese Datensätze können aber auch Bestandteil eines Datensatzes im HF sein.
Sollte dieser Fall eintreffen, werden diese dann im UF eingetragen. (Wie eine Zutatenauflistung!)
In meinem Original kann ich aus Platzgründen allerdings nur die ID (hier LOT) und die Menge (hier Menge) eintragen. Alle anderen Felder wurden gesperrt und unsichtbar gemacht.
Wenn man nun aber immer nur Zahlen eingibt, kann es schon mal zu einem Zahlendreher kommen, der jedoch nicht unbedingt auffällt. Um das zu vermeiden hätte ich gerne im HF ein "Kontrollfeld". Dort soll mir der aktuell makierte Datensatz aus dem UF angezeigt werden (am besten direkt bei der Eingabe). Wichtig wären die Felder LOT, Formblatt und Artikel. So könnte ich dann sehen, ob meine Eingabe auch korrekt ist.


"Bevor überhaupt an Formularen was gemacht werden soll, müssen der Tabellenaufbau und die Tabellenbeziehungen auf Vordermann gebracht werden"
Ohh, was stimmt mit meinen Tabellen und Beziehungen nicht? Habe doch alles miteinander verknüpft und es läuft auch alles so wie ich das möchte!
Was habe ich falsch gemacht oder kann ich noch verbessern?


Und dann...
...habe ich da noch eine andere Frage.
Die Frage habe ich schonmal vor einiger Zeit gestellt, aber es nicht umgesetzt bekommen. Vielleicht hat jemand anhand der Beispieldatei eine Idee.
Ich habe die Tabellen tblKontakte und tblProdukte. Für die abhängigen Kombifelder benötige ich diese Daten allerdings in einer Tabelle (tblArtikel). Ich habe das manuell gemacht, geht das auch anders?

Danke für Eure Hilfe.
Baluga



[Anhang gelöscht durch Administrator]
Titel: Re: Aktuell markiertes Feld auslesen
Beitrag von: DF6GL am Juli 30, 2011, 12:11:21
Hallo ,


mmhmm...  ???

Du beschreibst da aber keine Aufgabe der DB ("was soll die DB leisten") ....


"Im HF werden Datensätze angelegt. Diese Datensätze können aber auch Bestandteil eines Datensatzes im HF sein."

Wie ist das zu verstehen?

DS können zwar in einem Form EINGEBEN werden, ANGELEGT werden die DS aber in Tabellen... Und: Wenn im HF "angelegt" (angezeigt) , dann sind sie zwangsläufig auch Bestandteil eines Datensatzes im HF...


"Sollte dieser Fall eintreffen, werden diese dann im UF eingetragen."

wieder WARUM?



"aus Platzgründen "
lass mal Platzgründe weg, die sind vermutlich nur ein Phantom-Problem...


"Wenn man nun aber immer nur Zahlen eingibt"

Wenn diese Zahlen aus tblRückverfolgung  stammen und in tblLOT eingetragen werden sollen, ist das
a) mit z. B. Kombifeldern lösbar.
b) völlig überflüssig, weil "RückverfolgungID" als einziger "Eintrag" (als Referenez auf einen DS aus "tblRueckverfolgung" ausreicht.


Warum stellst Du Beziehungen vom Verknüpfungstyp 3 her?



zur anderen Frage:

Eröffne dazu eine separaten Thread und beschreibe dort die akt. Situation umfassend(!) und verständlich anhand eines Beispiels.

Titel: Re: Aktuell markiertes Feld auslesen
Beitrag von: Baluga am August 03, 2011, 14:30:31
Hallo,

ich versuche es nochmal zu erklären:

Die Datenbank soll eine Chargenrückverfolgung organisieren.

Über das HF werden Artikel eingegeben. Hierbei kann es sich um Rohwaren (Lieferanten), Zwischenprodukten oder Endprodukten handeln. Die ID ist die Chargennummer und ist fortlaufend. Wird allerdings manuell eingegeben, da die Eingabe nicht immer nach der Reihe ist.
Bei Rohwaren werden keine Daten ins UF eingegeben. In die Zwischen- und Endprodukte fließen jedoch Rohwaren. Um die entsprechenden Chargen festzuhalten, werden die Chargennummern (ID's) der Rohwaren in das UF in das Feld LOT eingegeben.

Das funktioniert auch alles wunderbar, deswegen weiß ich auch nicht wieso meine Verknüpfungen nicht in Ordnung sind!?
Was stimmt mit Verknüpfungstyp 3 nicht?

In der Beispieldatei habe ich zur Anschauung alle Felder im UF sichtbar gelassen. Dort kann man sehen, welches Formblatt und welcher Artikel hinter der ID im Feld LOT steckt.
In der Originaldatei ist das jedoch nicht möglich, da ich dort nur die Felder LOT und Menge sichtbar habe.
Die Platzgründe sind daher kein Phantom-Problem.
Natürlich könnte ich dort mit Kombifeldern hantieren, jedoch müsste jedesmal das Feld extra angeklickt werden. Ich möchte jedoch weiterhin die Daten zügig eingeben.

Wie bereits erwähnt, hätte ich gerne, dass immer der aktive Datensatz aus dem UF im HF angezeigt wird.

Ist das irgendwie umsetzbar?
Titel: Re: Aktuell markiertes Feld auslesen
Beitrag von: DF6GL am August 03, 2011, 17:44:25
Hallo,

mhmmmm, viel mehr blicke ich es jetzt immer noch nicht, welche Absicht da dahintersteckt.

Rückverfolgung ist ok, aber Dein Problem...

Du kannst zu jeder Rückverfolgung(sID) einen oder mehrere Artikel mit gleicher oder unterschiedlicher LOT-Nr eingeben.

(Das "Formblatt" lassen wir mal aussen vor, dieses Feld gehört nur in Artikel und nicht in die RV-Tabelle und LOT-Tabelle, wenn das Formblatt nicht von einer Chargennummer abhängt und sich nur auf einen Artikel bezieht.. Selbst dann wäre der Tabellenaufbau noch nicht korrekt.)


"hätte ich gerne, dass immer der aktive Datensatz aus dem UF im HF angezeigt wird."

Warum?  Das UF hat nur Artikel und LOT-Nr als "eigene" Daten... Wenn Du die zusätzlich auch noch im HF anzeigst, brauchst Du doch auch (redundanten) Platz..

Titel: Re: Aktuell markiertes Feld auslesen
Beitrag von: Baluga am August 04, 2011, 09:25:19
Hallo,

was stimmt denn nicht mit meinem Tabellenaufbau???
Titel: Re: Aktuell markiertes Feld auslesen
Beitrag von: DF6GL am August 04, 2011, 15:10:16
Hallo,

(mindestens) die Redundanzen (gleiche Felder in mehreren Tabellen)

Wenn Du nicht mal genau die Datenverhältnisse und Deine Absichten  beschreibst, bleib ich bei meiner Meinung.