Neuigkeiten:

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

Mobiles Hauptmenü

Aktuell markiertes Feld auslesen

Begonnen von Baluga, Juli 26, 2011, 09:05:04

⏪ vorheriges - nächstes ⏩

Baluga

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

DF6GL

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.



Baluga

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?

DF6GL

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.

Baluga

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?

DF6GL

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ß.

Baluga

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.

MzKlMu

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.
Gruß Klaus

Baluga

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?

MzKlMu

#9
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.
Gruß Klaus

Baluga

Ok, werde morgen mal eine zusammenbauen.

Baluga

Hallo,
hier dann mal die Datenbank zu spielen!

[Anhang gelöscht durch Administrator]

MzKlMu

Hallo,
bitte nach Access2003 konvertieren. Ich (und andere) haben noch kein Access2007.
Beschreibe bitte dann noch mal im Zusammenhang das Problem.
Gruß Klaus

DF6GL

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.



Baluga

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]