Neuigkeiten:

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

Mobiles Hauptmenü

Rückgabe des Checkboxwertes in einem anderen Formular

Begonnen von Rainer 1984, Oktober 13, 2011, 17:22:49

⏪ vorheriges - nächstes ⏩

Rainer 1984

Hallo Accessianer,

im Formular "Artikelkategorien" lege ich mittels einer Checkbox zu jeder einzelnen Artikelkategorie fest, ob diese bestandsgeführt ist oder nicht.
Im Formular "Artikelstamm", in dem Artikel eingepflegt werden, soll mir nach Auswahl der entsprechenden Artikelkategorie im Textfeld "Bestandsgeführt?" als Info die Aussage "Ja" oder "Nein" angezeigt werden.

Ich habe versucht, das über DomWert zu regeln. Doch das besagte Textfeld bleibt leer. Jetzt weiß ich nicht, ob DomWert bei einer Checkboxrückgabe überhaupt die richtige Wahl ist.
Ich benutze DomWert an mehreren Stellen meiner Datenbank - bisher ohne Probleme.

Für eine Hilfe wäre ich dankbar.

Viele Grüße

Rainer

edgar.basler

Ich würde dies mit einer "kleinen" VBA-Routine machen:

if me.artikelkategorie = true then
  me.bestandsgeführt = "Ja"
else
  me.bestandsgeführt = "Nein"
end if

und diese Routine bei den Ereignissen "Formular anzeigen" und bei "artikelketgorie aktualisieren" einbauen.

Rainer 1984

Hallo Edgar,

zuerst mal vielen Dank für Deine Antwort.

Ließe sich das auch irgendwie über DomWert verwirlichen?

Viele Grüße

Rainer

MzKlMu

#3
Hallo,
Du kannst auch ein ganz normales Textfeld an die Checkbox binden. Dann steht 0 bzw. -1 im Feld. Wenn Du dann dieses Textfeld mit
ZitatJa/Nein
formatierts, hast Du was Du willst auch ohne VBA.


Übrigens, die häufige Verwendung von DomWert deutet auf ein falsches Datenmodell hin. DomWert gehört zu den Befehlen die man vermeiden sollte.
Gruß Klaus

Rainer 1984

Hallo MzKlMu,

ZitatDu kannst auch ein ganz normales Textfeld an die Checkbox binden.
Verstehe ich nicht ganz.
Im Formular "Artikelkategorien" ist eine Checkbox.
Im Formular "Artikelstamm" ist das Textfeld, das automatisch "Ja" oder "Nein" anzeigen soll. Meinst Du etwa dieses?

Viele Grüße

Rainer

MzKlMu

#5
Hallo,
Du kannst doch in der Datenherkunft (Abfrage) für das Formular "Artikelstamm" die Tabelle mit den Artikelkategorien mit aufnehmen. Mit der Beziehung, die ja existieren muss. Dann hättest Du auch die Checkbox zur Anzeige im Formular "Artikelstamm". Aber nicht anzeigen, sondern ein Feld erstellen und an die Checkbox binden. Dieses Feld kannst Du mit Ja/Nein formatieren.

Anbei noch ein schnelles, einfaches Beispiel.
Alles ganz einfach, ohne eine einzige Zeile VBA. Und vor allen Dingen ohne Domwert.
Im Formular "Artikelstamm" kannst Du auch ganz einfach per Kombi die Kategorien zuweisen. Das Ja/Nein Feld passt sich automatisch an.

[Anhang gelöscht durch Administrator]
Gruß Klaus

Rainer 1984

#6
Hallo MzKlMu,

zunächst mal kannte ich Abfragen aus dem (kompletten) Formular heraus gar nicht, da ich bisher immer nur Abfragen aus Kombifeldern gemacht habe.

Im Formular "Artikelstamm" habe ich über 20 Felder. Wenn ich auch nur ein Feld im Abfragegenerator nicht aufgeführt habe, erscheint ein grünes Dreieck in diesem Feld mit der Fehlermeldung "Das Feld existiert nicht in der Feldliste". Erst das nachträgliche Aufführen im Abfragegenerator beseitigt diese Fehlermeldung. Ich vermute daher, es müssen ALLE Felder im Abfragegenerator aufgeführt sein.

Habe momentan mit einigen Problemen zu kämpfen, z.B.:

1. Beim Öffnen des Formulars "Artikelstamm" sind Textfelder und Beschriftungsfelder, die früher eingegraut waren, nicht eingegraut, obwohl die entsprechenden Codes einwandfrei funktioniert haben. Die Codes sind natürlich doppelt vorhanden (Beim Laden des Formulars und nach Aktualisierung).

2. Beim Öffnen des Formulars "Artikelstamm" haben jetzt Checkboxen auf einmal innen eine graue Farbe. Normalerweise sind sie innen weiß. Erst wenn Eingaben gemacht werden, werden sie weiß.

3. Und zu allem Überfluss: Es erscheinen immer noch nicht die Werte "Ja" oder "Nein".  :o

Ach so, noch was:
ZitatDomWert gehört zu den Befehlen die man vermeiden sollte.
Das ist mir neu - warum eigentlich?  :o

Oje, da habe ich eine gewaltige Lawine losgetreten. Ich wollte doch eigentlich etwas ganz einfaches haben.
Früher in Excel war der dazu entsprechende "SVerweis" ein Kinderspiel.  ;)

Ich muss jetzt noch versuchen, den oder die Fehler zu finden, sollte es nicht klappen, werde ich eine Datei erstellen mit den beiden Tabellen und Formularen und sie dann mal posten.

Viele Grüße

Rainer

MzKlMu

#7
Hallo,
Zitatzunächst mal kannte ich Abfragen aus dem (kompletten) Formular heraus gar nicht, da ich bisher immer nur Abfragen aus Kombifeldern gemacht habe.
Formular und Berichte sollten immer auf Abfragen beruhen, in der Regel auf gespeicherten Abfragen. Da nur dann sichergestellt ist, dass die Sortierung stimmt.
ZitatIch vermute daher, es müssen ALLE Felder im Abfragegenerator aufgeführt sein.
Das ist richtig und auch logisch. Das Feld auf dem Formular muss auch in der Datenherkunft sein, wo soll der Inhalt sonst herkommen?

ZitatWarum gehört DomWert gehört zu den Befehlen die man vermeiden sollte?
Domwert bremst die DB aus. Mit Domwert wird aus der DB eine lahme Ente. In der Häufigkeit wie Du es zu verwenden scheinst, erst recht. Und dann noch Domwert auf unindizierte Felder angewendet, wird aus der lahmen Ente eine einbeinige lahme Ente. Die Problem nehmen mit steigenderer Datensatzzahl deutlich zu.

ZitatFrüher in Excel war der dazu entsprechende "SVerweis" ein Kinderspiel.
Wer von Excel nach Access umsteigt und dabei an SVerweis denkt hat schon den ersten gewaltigen Denkfehler gemacht. Access erfordert kein SVerweis (bzw. DomWert) bzw. nur in ganz wenigen Ausnahmefällen.
Bei Access erfolgt das alles über eine sinnvolle Tabellenaufteilung und deren Beziehungen untereinander. Die Werte aus beteiligten Tabellen werden nicht über DomWert geholt, sondern ausschließlich über Abfragen, die die beteiligten Tabellen mit deren Beziehungen enthalten.

Access ist mit Excel auch nicht ansatzweise vergleichbar. Access erfordert ein völlig anderes Tabellnkonzept als Excel. Es ist nicht möglich eine Excelstruktur ohne Änderung der Tabellen nach Access zu portierten.

Ich behaupte jetzt einfach mal, alle Deine Domwert Formeln sind zu 100% überflüssig, korrekter Aufbau der DB vorrausgesetzt.
Wie Du an meinem obigem Beispiel siehst, sind die Inhalte aus beiden Tabellen im Formular, ohne DomWert.

Wer DomWert einsetzt/ einsetzen muss, hat entweder
- ein falsches Datenmodell
oder
- nutzt die serienmäßigen Eigenschaften von Access gar nicht aus und programmiert Dinge die man nicht braucht.
Oder beides.

Wenn Du ein Beispiel machst, baue mal Domwert mit ein, so wie Du es benutzt.
Gruß Klaus

Rainer 1984

Hallo MzKlMu,

zuerst mal vielen Dank für die Infos, vor allem über die Nachteile vom DomWert.  :o

Habe jetzt zwei Datei-Ausschnitte beigefügt - die eine ohne Formularabfrage, die andere mit Formularabfrage.

Dabei sind mir folgende Unterschiede beim Öffnen vom Formular "Artikelstamm" aufgefallen, wie bereits beim Posting gestern erwähnt:
1. Der Code unter "Beim Anzeigen" (Formular) wird ignoriert, wenn neuer Datensatz angezeigt wird. Dabei sind Textfeld und Beschriftungsfeld von "Bemerkungen" nicht eingegraut.
2. Die Checkbox des neu angezeigten Datensatzes ist bläulichgrau und nicht weiß.

Ob es noch weitere Veränderungen gibt, kann ich (noch) nicht sagen, wie kann man diese abstellen?

Viele Grüße

Rainer

[Anhang gelöscht durch Administrator]

MzKlMu

Hallo,

- die Checkbox Sperre braucht einen Standardwert
- Das Kombi zur Auswahl der Kategorie hatte nur eine Spaltenbreite (0cm)
- Das Feld "Bestandsgeführt" war ungebunden
- Das Feld "Bestandsgeführt" hatte kein Formateintrag

Den Code "Beim Anzeigen" habe ich vereinfacht (nur eine Zeile), es muss dann nur eine Codestelle gepflegt werden.

DB anbei, Access2003 Format, mit A2010 bin ich nicht so vertraut.

[Anhang gelöscht durch Administrator]
Gruß Klaus

Rainer 1984

Hallo MzKlMu,

vielen Dank für Deine Antwort!!!
Habe es mir noch nicht angeschaut, werde erst im Laufe der Woche dazu kommen und mich dann melden.

Viele Grüße

Rainer

Rainer 1984

Hallo MzKlMu,

so, da bin ich wieder.

Habe die Korrekturen durchgeführt, funktioniert einwandfrei.  :)
Werde sämtliche lahme Enten (DomWerte) durch diese Formularabfragen ersetzen.  ;D

ZitatDen Code "Beim Anzeigen" habe ich vereinfacht (nur eine Zeile), es muss dann nur eine Codestelle gepflegt werden.
Dieser Befehl "Call" ist ja clever...  :o

Nochmals vielen Dank für Deine ausführliche und geduldige Hilfe!!!  :)

Viele Grüße

Rainer