Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Feld in Formular abfragen

Begonnen von ReneK, Dezember 14, 2015, 17:26:28

⏪ vorheriges - nächstes ⏩

ReneK

Hallo.

Ich addiere in einem Formular ein paar Eingaben, und lasse mir die Summe in einem freien Feld "Summe" anzeigen.
Wenn der Wert des Feldes >x ist, soll ein Ja/Nein Feld (Feldname "Einzelgroessen") in der Tabelle, auf das das Formular zugreift, enabled werden (also Haken rein).

So hab ich es probiert... ich bekomm es nicht hin.


Private Sub Summe_AfterUpdate()
    If Forms("Tab_Erf_Groessen1 Unterformular").Summe > 0 Then
        Me!Einzelgroessen.Enabled = True
      Else
        Me!Einzelgroessen.Enabled = False
End Sub


Ich bitte um einen kurzen Tipp, Danke.



MaggieMay

Hi,

wenn "Summe" ein berechnetes Feld ist, so wird das AfterUpdate-Ereignis wohl nicht eintreten, sondern du musst da ansetzen, worauf die Berechnung basiert, also bei den Feldern die dazu verwendet werden. Außerdem sollte das Setzen der Eigenschaft auch im Formularereignis "Beim Anzeigen" noch berücksichtigt werden.

Und so etwas sollte unbedingt vermieden werden:
Private Sub [b][color=green]Summe[/color][/b]_AfterUpdate()
    If [color=red]Forms("Tab_Erf_Groessen1 Unterformular")[/color].[b][color=green]Summe [/color][/b]> 0 Then

wobei ein Unterformular auf diese Weise auch gar nicht angesprochen werden kann.

Man darf doch sicher davon ausgehen, dass es nur ein Steuerelement namens "Summe" gibt, also ersetze den Code durch folgende Zeilen:
Private Sub Summe_AfterUpdate()
    If Me!Summe > 0 Then
Freundliche Grüße
MaggieMay

ReneK

Hallo Maggie.
Danke für die Hilfe.

Vielleicht muss ich ausholen:
Ich habe sechs Tabellen. Kundenstamm, Artikelstamm, Erfassung.Block, Erfassung.Groessenraster1, Erfassung.Groessenraster2, Erfassung.Groessenraster3.
Über die ID verknüpf ich die Tabellen, und lasse in Unterformularen die Raster anzeigen.

Die Eingabe der Daten funktioniert wunderbar, solange ich in allen Formularen etwas eintrage.

Wenn in ein Formular keine Werte eingegeben werden, funktioniert aber meine Abfrage nicht mehr, weil die Tabellen in Beziehung stehen, und wenn in einer Tabelle die ID nicht drin steht, wird der Datensatz nicht angezeigt. Mhh.
Also muss ich, wenn ich in 1, 2 oder 3 etwas eingebe, in jede Tabelle einen Dummy reinkriegen (so meine Überlegung).

Hmmm. Das Feld "Summe" ist für mich nur eine Kontrolle. Eine Zusammenfassung.
Ich habe ca. 40 Felder in diesem Raster, und wenn in ein Feld von diesen 40 einen Wert eingegebe, soll der Haken automatisch gesetzt werden = Raster wird benutzt.

Daher bin ich auf die Idee gekommen dieses Summenfeld zu bilden.
Eine richtige rechnerische Summe in dem Sinne ist das gar nicht, und die gibt es auch nicht in der Tabelle.
Ich hätt es auch Hüttenkuckuck und nicht Summe nennen können.

OK... aber auch folgendes funktioniert nicht.

Feld "42" (das ist der richtige Feldname (einer von den 40) wird angemeckert (Fehler beim kompilieren, erwartet Then oder GoTo), aber ich kann "CTL42" auswählen.
Aber da tut sich nichts.

Change, Dirty, After Update.. funktioniert nicht.

Private Sub Ctl42_Change()
    If Me.Ctl42 > 0 Then
        Me!Einzelgroessen.Enabled = True
      Else
        Me!Einzelgroessen.Enabled = False
    End If
End Sub


Was mach ich falsch? Ich seh es nicht.

MzKlMu

Hallo,
Zitatund wenn in einer Tabelle die ID nicht drin steht, wird der Datensatz nicht angezeigt. Mhh.Also muss ich, wenn ich in 1, 2 oder 3 etwas eingebe, in jede Tabelle einen Dummy reinkriegen (so meine Überlegung).
Wenn Du für die Verknüpfung der Tabellen in der Abfrage einen RIGHT oder LEFT JOIN verwendest, siehst Du auch die Datensätze die keine ID enthalten. Einen Dummy braucht es da nicht.

Was ist den der Unterschied der 3 Tabellen "Groesenraster1 - ...3".
Sind hier wirklich 3 Tabellennotwendig ?
ZitatIch habe ca. 40 Felder in diesem Raster, und wenn in ein Feld von diesen 40 einen Wert eingegebe,
Was sind das für 40 Felder ?
Eine Tabelle mit 40 Feldern ist für eine Datenbank eher ungewöhnlich.

Ich denke hier sollte mal das Datenmodell geprüft werden.
Gruß Klaus

ReneK

Hallo.

Das mit der Abfrage war schonmal ein guter Tipp  :o  ;D
Ich will mal meine Daten kontrollieren, ob alles da ist was ich brauche.

Zur Erklärung der Raster:
Die Kleidung die Du trägst hat eine bestimmte Größe.
Im Pulli z.B. XL. Das Größenraster für diese Pulliware fängt z.B. bei XS an und hört bei XL auf. Das sind dann bei mir schonmal 6 Felder (XS S M L XL, z.B.). Jetzt gibt es noch andere Produktgruppen wie z.B. Sakkos (42 44 46 48....122, 25,5 26,5...35,5... usw), oder Jeanshosen (30/32, 32/32,...46/46)... also Du siehst da kommen massig Felder zusammen. In eine Tabelle passen die Daten nicht rein, und in einen Bericht auch nicht.
Nachher werden diese Daten zu Excel exportiert und dort weiter verwurstet.

Erstmal Danke.

MaggieMay

Hi.Private Sub Ctl42_Change()
Wenn das ein generierter (nicht manuell eingetippter) Prozedurkopf ist, so existiert ja offensichtlich ein Steuerelement namens "ctl42". Aber das Change-Ereignis scheint mir hier nicht angebracht zu sein, besser ist AfterUpdate.
(Im Change-Ereignis musst du die Text-Eigenschaft des Steuerelements ansprechen.)

PS:
Was du da als "Felder" vorstellst, ist alles ein Datenfeld, nämlich die Größe. Die Struktur sollte also tatsächlich überarbeitet werden. Die Darstellung im Formular oder Bericht ist eine andere Sache.
Freundliche Grüße
MaggieMay

MzKlMu

#6
Hallo,
ZitatIm Pulli z.B. XL. Das Größenraster für diese Pulliware fängt z.B. bei XS an und hört bei XL auf. Das sind dann bei mir schonmal 6 Felder (XS S M L XL, z.B.). Jetzt gibt es noch andere Produktgruppen wie z.B. Sakkos (42 44 46 48....122, 25,5 26,5...35,5... usw), oder Jeanshosen (30/32, 32/32,...46/46)... also Du siehst da kommen massig Felder zusammen.
das Vorhaben ist in der Form völlig falsch, die Betonung liegt auf völlig. Hier sind weitere Tabellen erforderlich. Eine Tabelle für die Größen und eine Tabelle zur Zuordnung der Größe zum Artikel. In die Größentabelle sollte noch ein Feld das kennzeichnet für welche Kleidungsart die Größe zutreffend ist. Hier sind wahrscheinlich auch noch weitere Tabellen notwendig, da eine Größenangabe für mehrerer Kleidungsarten zutreffend ist. Bei einer korrekt aufgebauten DB wirst Du zur Erfassung der Größen der Kleidungsstücke nicht mehr als 4-5 Felder brauchen, egal wie viele Größen es gibt. Auch in der Zukunft, sollten mal weitere Größen dazu kommen.

Das bisherige Datenmodell ist mehr Excel als Access und für eine Datenbank untauglich.
Gruß Klaus

ReneK

Hallo.

Ich kann mir vorstellen, dass Ihr das sicher richtiger macht als ich, aber das kann ich mit meinen Mitteln nicht umsetzen  :-\

Da das für mich "nur" eine Erfassunghilfe ist, und die Leute, die das sonst in Excel machen müssten, die Eingaben in einer Stand Alone Access DB nicht verhunzen können, ergebe ich in meinem Schicksal, und kann ruhiger schlafen.

Weil, im Endergebnis bekomme ich (wahrscheinlich  ;)) das raus, was der nächste braucht  :-[

Aber danke für die konstruktive Kritik. Angenommen.
Würdet Ihr 1-2 Tage neben mir sitzen bräuchte ich dann auch nicht so doofe Fragen hier stellen   ::)

Beaker s.a.

Hallo Rene,
Zitatsoll ein Ja/Nein Feld (Feldname "Einzelgroessen") in der Tabelle, auf das das Formular zugreift, enabled werden (also Haken rein).
Me!Einzelgroessen.Enabled = True
Enabled setzt keinen Haken, sondern schaltet das Control zur Bearbeitung frei. Den Haken setzt:
Me!Einzelgroessen.Value = True
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)