collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 61
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14136
  • stats Beiträge insgesamt: 68396
  • stats Themen insgesamt: 9212
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Datensatzherkunft in Endlosformular  (Gelesen 1253 mal)

Offline Ausgefuchst

  • Newbie
  • Beiträge: 13
Datensatzherkunft in Endlosformular
« am: April 12, 2018, 09:59:47 »
Guten morgen geschätzte Access-o-Mania Community,

trotz elend langer Suche im Netz bin ich noch auf keine zufriedenstellende Lösung für mein Problem gestoßen. Im Endeffekt wird es vermutlich ein einfach zu lösendes Problem sein, aber ich steh grade mit beiden Beinen auf dem Schlauch^^

Zustand :

Access 2013

Es existiert ein Formular in dem ein Unterformular angelegt wurde. Das UFo ist als Endlosformular ausgeprägt. Die für diesen Fall relevanten Felder sind 2 Textfelder. Textfeld1 enthält ähnlich dem Autowert eine Zahl. Diese startet bei 1 und wird fortlaufend um 1 pro Datensatz erhöht. Das 2 Textfeld soll zur einfachen Darstellung eines Wortes genutzt werden.

Wenn im Textfeld1 die Zahl 1 steht soll im Textfeld2 der Text "HZ" zu sehen sein, in allen anderen Fällen >1 soll "NZ" zu lesen sein.

Problem :

Da es sich um ein Endlosformular handelt wir sämtlicher Code auf Formularebene für alle Datensätze ausgeführt. Ich habe schon eine Sub in eine Funktion umgewandelt um die als Datensatzherkunft des Textfeldes1 zu nutzen. Das hat nicht funktioniert, da ich durch die Angabe der Funktion als Datensatzherkunft das Feld gebunden habe, ergo ließ mich die VBA dort keinen Wert ändern.
Also habe ich die Funktion als Datensatzherkunft eines unsichbaren Feldes genommen -  siehe da es geht, aber wieder mal werden alle Datensätze gleich gekennzeichnet. Egal ob in Textfeld1 eine 1 steht oder nicht.

Bisher eingesetzte Funktion :


Public Function hz_nz(x As Long) As String

If x = 1 Then
        'als x wird beim einsetzen in die Datensatzherkunft Textfeld1 angegeben

        Forms!Zaehler!Zaehlwerk_U.Form!txt_hz_nz = "HZ"
Else
        Forms!Zaehler!Zaehlwerk_U.Form!txt_hz_nz = "NZ"
        Forms!Zaehler!Zaehlwerk_U.Form!txt_zahl.Visible = True
End If

End Function


Die ideale Lösung wäre für mich eine Methode Access dazu zu bewegen die VBA für jeden Datensatz einzeln durchzuführen und das auch seperat anzuzeigen.

Die Function ist getestet und wird bei mehren Datensätzen auch mehrfach durchlaufen. Aber das Ergebniss "HZ" oder "NZ" des letzten abgearbeiteten Datensatzes ist dann so dominant das es in allen Textfeldern steht.

Ich hoffe ich konnt emein Problem vernünftig erklären und möchte mich schonmal in voraus für eure Mühe bedanken!

Beste Grüße

Fabian
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7504
Re: Datensatzherkunft in Endlosformular
« Antwort #1 am: April 12, 2018, 10:33:46 »
Hallo,
das Vorhaben ist in der Form komplett überflüssig. Es braucht auch kein Textfeld2 in der Tabelle, das kannst Du dort ersatzlos löschen.
Erstelle ein berechnetes Feld in einer Abfrage.
Feldname: Wenn(Zahlenfeld =1;"HZ";"NZ")Als Eintrag in der 1.Zeile einer leeren Spalte der Abfrage.
Als Feldname kannst Du einen frei gewählten Text verwenden. Das Formularfeld wird dann an dieses Abfragefeld gebunden.
Das Zahlenfeld ist das Feld das die Zahl enthält.
Zitat
Da es sich um ein Endlosformular handelt wir sämtlicher Code auf Formularebene für alle Datensätze ausgeführt.
Das ist ein Irrtum, da das Feld an kein Tabellen/Abfragefeld gebunden ist, wird die Funktion für keinen Datensatz ausgeführt. Das wird nur so oft angezeigt wie Datensätze im Endlosufo sind.
Sichtbar bzw. unsichtbar ist aber in einem Endlosformular generell nicht möglich. egal mit welcher Methode.
« Letzte Änderung: April 12, 2018, 10:59:23 von MzKlMu »
Gruß
Klaus
 
Folgende Mitglieder bedankten sich: Ausgefuchst

Offline Ausgefuchst

  • Newbie
  • Beiträge: 13
Re: Datensatzherkunft in Endlosformular
« Antwort #2 am: April 12, 2018, 11:53:10 »
Hallo Klaus,
vielen Dank für die schnelle und hilfreiche Antwort!

Die Abfrage steht und liefert auch die entsprechenden Werte zurück.

Allerdings nach Verknüpfung mit dem Textfeld erscheint  #Name?

=DomWert([Zaehlerart];[qry_art])
'=DomWert ([Spaltenname der Abfrage];[Name der Abfrage])

Würdest du mir bitte noch über diese Schwelle helfen?

Grüße
Fabian
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7504
Re: Datensatzherkunft in Endlosformular
« Antwort #3 am: April 12, 2018, 12:07:29 »
Hallo,
wo habe ich in meinem Vorschlag etwas von Domwert gezeigt ?  ::)

Das ist ersatzlos überflüssig. Binde das Formularfeld an das Abfragefeld (Steuerelementinhalt) "Zaehlerart", fertig.
« Letzte Änderung: April 12, 2018, 12:21:48 von MzKlMu »
Gruß
Klaus
 

Offline Ausgefuchst

  • Newbie
  • Beiträge: 13
Re: Datensatzherkunft in Endlosformular
« Antwort #4 am: April 12, 2018, 13:26:12 »
Danke,

ich habs jetzt!

Aber wo ein Problem ist, sind natürlich noch mehr.. :-\

Ist es möglich den Speicherort zu wechsel? Ich möchte das der Inhalt des Textfeldes3 in ein anderes Feld in der Tabelle geschrieben wird, sobald die Zahl in Textfeld1 größer ist als 1.

Grüße
Fabian
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7504
Re: Datensatzherkunft in Endlosformular
« Antwort #5 am: April 12, 2018, 13:34:11 »
Hallo,
wie bereits gesagt, ist ein Tabellenfeld überflüssig. Das kannst Du alles in der Abfrage machen. Wozu soll das in eine Tabelle ?
Daten die sich aus Zusammenhängen ergeben, werden nicht in einer Tabelle gespeichert, sondern im Regelfall in einer Abfrage ermittelt.
Mir scheint, da ist eher das Datenmodell zu überprüfen.
Kannst Du mal was zum tieferen Sinn des Vorhabens verraten ?
Gruß
Klaus
 

Offline Ausgefuchst

  • Newbie
  • Beiträge: 13
Re: Datensatzherkunft in Endlosformular
« Antwort #6 am: April 13, 2018, 07:33:50 »
Hallo,

naja ich kanns probieren. Das Datenmodell scheint soweit eigentlich in Ordnung.

Es handelt sich um eine (Wasser)Zählerverwaltung. Dabei hat jeder Zähler eine ein eindeutige Nummer zur Identifikation. Diese Zähler wiederrum haben bis zu 2 Tochterdatensätze.

Da hierbei der 1. entscheidend ist wird er über eine Abfrage auch der Muttertabelle gezogen. Der 2. Datensatz hat nur informativen Charakter. Deshalb soll seine Nummer in einem Feld in der Tochtertabelle abgelegt werden.

Da das mitzählende Feld ja im gleichen Formular ist dachte ich an etwas wie ..

Wenn Zahlenfeld =1 speichere in Spalte X
Wenn Zahlenfeld >1 speichere in Spalte Y

Grüße
Fabian
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7504
Re: Datensatzherkunft in Endlosformular
« Antwort #7 am: April 13, 2018, 08:20:34 »
Hallo,
ich habe es nicht ganz verstanden.
Zeige bitte mal ein Bild des Beziehungsfensters.
Gruß
Klaus
 

Offline Ausgefuchst

  • Newbie
  • Beiträge: 13
Re: Datensatzherkunft in Endlosformular
« Antwort #8 am: April 13, 2018, 09:29:44 »
Ich habs gelöst bekommen!  Über eine Wenn anweisung im Steuerelementinhalt. Die Beziehung kann und darf ich nicht veröffentlichen.

Vielen Dank für die Hilfe :)

EDIT:

Ich habe in den Steuerelementinhalt  =WENN(Zahlenfeld=1;Zaehlernummer;NZ_NR) eingegeben und dabei nicht bedacht dass   access mir dadurch die Eingabe verweigert.

EDIT2:

Es gibt mir im Moment zwar die gewünschten Daten aus der Tabelle aus, lässt aber nicht zu das ich neue Daten einspeise. Kennst du da eine Möglichkeit?
« Letzte Änderung: April 13, 2018, 11:12:43 von Ausgefuchst »
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1965
Re: Datensatzherkunft in Endlosformular
« Antwort #9 am: April 13, 2018, 15:51:37 »
Hallo,
Zitat
Die Beziehung kann und darf ich nicht veröffentlichen.
Suboptimal, wie das Datenmodell zu sein scheint, dürfte sich schwer
jemand finden, der das kopieren möchte.
Zitat
Kennst du da eine Möglichkeit?
Ohne Kenntnis des DM wird auch kaum jemand etwas dazu sagen
können.
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7504
Re: Datensatzherkunft in Endlosformular
« Antwort #10 am: April 13, 2018, 16:00:09 »
HZallo,
wenn sich aus einem Beziehungsbild Firmeninternas ableiten lassen hat man ohnehin was falsch gemacht. Aus Feldnamen sollte man keinen Inhalt erkennen können. Aus einem Feld mit dem Namen "Postleitzahl" z.B. kannst Du ja nicht auf die eigentliche PLZ schließen.
Da ich das Ganze nicht wirklich verstanden habe muss die Tabellenstruktur erklärt werden. Und da ist halt das Bild der Beziehungen am geeignetsten.
Gruß
Klaus
 

Offline Ausgefuchst

  • Newbie
  • Beiträge: 13
Re: Datensatzherkunft in Endlosformular
« Antwort #11 am: April 18, 2018, 08:37:49 »
Guten Morgen,
entschuldigt die verspätete Antwort, ich bin nicht die ganze Woche im Büro.

Im Anhang die Beziehungen.

Vielen Dank schonmal im vorhinein für die Hilfe.

Viele Grüße
Fabian
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23515
Re: Datensatzherkunft in Endlosformular
« Antwort #12 am: April 18, 2018, 08:52:47 »
Hallo,

Zitat
Da hierbei der 1. entscheidend ist wird er über eine Abfrage auch der Muttertabelle gezogen. Der 2. Datensatz hat nur informativen Charakter. Deshalb soll seine Nummer in einem Feld in der Tochtertabelle abgelegt werden.

Das ist nach wie vor unverständlich.   Erkläre bitte genauer und anhand der realen Feldnamen, was hier eigentlich passieren soll und wofür das gut sein soll.

In der Tabelle "Zaehlerstand" sind historisch die Zählerstande eines Zählwerks abgelegt.  Alle diese Einträge sind gleichberechtigt.

Auf was genau ist die Bedeutung des Feldes "Status" bezogen?

Wenn keine Zählerstand-Historie erforderlich ist, ist die Tabelle "Zaehlerstand" überflüssig. Die Felder können (müssen) dann in Tabelle "Zaehlwerk" verschoben werden. Die Daten aus dem "Informationseintrag" finden sich in zusätzlichen Feldern in Tabelle "Zaehlwerk" wieder.


btw:  Sonderzeichen unbedingt vermeiden  ("Name/Firma")  und die ID-Felder eindeutig (über die gesamte DB) benennen, z. B. "ZaehlerID" in Tabelle "Zaehler"

Offline Ausgefuchst

  • Newbie
  • Beiträge: 13
Re: Datensatzherkunft in Endlosformular
« Antwort #13 am: April 18, 2018, 09:08:15 »
Die Zählerstandtabelle ist hierfür recht unbedeutend, im Feld Status steht jedoch eine Zahl entsprechend des momentanen aufendhaltsortes (lager,verbaut. etc)

Die Tabelle Zählerstände ist für eine spätere verwendung nötig.

Was genau jetzt passieren soll :

Ein Unterformular über die Tabelle "Zaehlwerk" wurde erstellt und zeigt die enthaltenen Felder + die ZAEHLERNUMMER.
Die Zählernummer wird im ersten Textfeld des Formulars angezeigt. Das Feld Zaehlwerksnr ist immer mit 1 oder 2 belegt.
Wenn das Feld gleich 1 ist, soll im Textfeld Zählernummer die ZAEHLERNUMMER angezeigt werden. Ist es jedoch 2 soll NZ_NR angezeigt werden.

Das Anzeigen funktioniert bis jetzt bestens. Jedoch lässt er mich nichts in die Felder eintragen, weil sie gebunden sind.

Steuerelementinhalt des Textfeldes "=WENN(Zahlenfeld=1;Zaehlernummer;NZ_NR)"

Ich hoffe ich habs jetzt etwas deutlicher erklären können.

Grüße
Fabian

 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23515
Re: Datensatzherkunft in Endlosformular
« Antwort #14 am: April 18, 2018, 09:33:09 »
Hallo,

ohne auf den Sinn/Zweck weiter einzugehen, ist es unmöglich ,  ein berechnetes Feld manuell zu editieren.

Soll heißen, das Konzept ist an dieser Stelle suboptimal.

 

Listenfeld Datensatzherkunft

Begonnen von JunoBoard Tabelle/Abfrage

Antworten: 2
Aufrufe: 1726
Letzter Beitrag Dezember 22, 2010, 16:59:05
von Juno
Datensatzherkunft über mehr als zwei Ebenen

Begonnen von Rainer 1984Board Formular

Antworten: 2
Aufrufe: 2028
Letzter Beitrag August 28, 2011, 16:25:07
von Rainer 1984
Datensatzherkunft / Gebundene Spalte falsch?

Begonnen von HannesBoard Formular

Antworten: 16
Aufrufe: 7236
Letzter Beitrag April 11, 2012, 22:36:26
von Beaker s.a.
Listenfeld Datensatzherkunft dynamisch

Begonnen von BiesdorferBoard Formular

Antworten: 1
Aufrufe: 972
Letzter Beitrag Oktober 22, 2015, 14:09:51
von MaggieMay
Datensatzherkunft Kombinationsfeld aus m:n Beziehung

Begonnen von NoFear70Board Formular

Antworten: 6
Aufrufe: 1926
Letzter Beitrag April 04, 2016, 15:41:12
von NoFear70