117553
Goto Top

Access: Spalten ist Anzahl Wenn größer NULL

Hallo zusammen,

kurze Frage, wahrscheinlich mega simpl aber komm einfach nicht drauf auch mit google nicht.

habe in Access 35 Spalten (Aufnahme1....), ich möchte in einer zusätzlichen Spalte das Ergebnis haben, welches die Anzahl der "35 Spalten" zählt wenn si größer 0 beinhalten.

Mein Versuch mit...
- Kreuztabelle ist gescheitert: Error zuviele Spalten
- innerhalb der Tabelle eine errechnete Spalte ( =Anzahl(Wenn... Und) das mochte er garnicht so recht

denke hier kommt man nur mit VBA weiter, brauche hilfe face-sad
und dann über docmd Update Tabelle...

mfg
Markus

Content-ID: 301820

Url: https://administrator.de/forum/access-spalten-ist-anzahl-wenn-groesser-null-301820.html

Ausgedruckt am: 11.04.2025 um 23:04 Uhr

Biber
Biber 14.04.2016 um 11:45:29 Uhr
Goto Top
Moin Pilger83,


Zitat von @117553:


habe in Access 35 Spalten (Aufnahme1....), ich möchte in einer zusätzlichen Spalte das Ergebnis haben, welches die Anzahl der "35 Spalten" zählt wenn si größer 0 beinhalten.

Mein Versuch mit...
- Kreuztabelle ist gescheitert: Error zuviele Spalten
- innerhalb der Tabelle eine errechnete Spalte ( =Anzahl(Wenn... Und) das mochte er garnicht so recht
Hmmja, kann sein, dass die Mimik mit "Kreuztabelle" auf ein internes Limit kommt. dann fällt es hat raus als Strategie.
Aber die zweite Strategie sollte funktionieren.
Kannst du denn da deine nicht funktionierende Abfrage mal posten, ggf. auch mit Fehlermeldung?

Grüße
Biber
ukulele-7
ukulele-7 14.04.2016 um 12:09:46 Uhr
Goto Top
Dein Tabellendesign ist kaputt. Access ist kein Excel da arbeitet man am besten mit einem relationalen Datenbankmodell und nicht mit VBA oder Formeln sondern mit TSQL soweit Access das beherscht.
117553
117553 14.04.2016 aktualisiert um 12:37:53 Uhr
Goto Top
Hallo Biber,

hab jetzt nur mit zwei Spalten... nur so zum probieren.
unbenannt
117553
117553 14.04.2016 um 12:22:36 Uhr
Goto Top
Hallo ukulele,

also SQL ist natürlich auch noch eine Super Idee. Nur versuch mich jetzt auf eine Möglichkeit zu spezialisieren ;) ausser du hast eine passenden SQL Lösung parat face-smile
117553
117553 14.04.2016 um 12:52:23 Uhr
Goto Top
und

=COUNT([Spalte1], [Spalte2], [Spalte3]) funktioniert auch nicht

...syntaktisch falsch...
Tommy70
Tommy70 14.04.2016 aktualisiert um 13:25:23 Uhr
Goto Top
Hallo,

welche Version von Access verwendest du? Denn seit Version 2010 gibt es diese Funktion direkt als Feldtyp.
Einfach ein neues Feld hinzufügen und dann im Spaltenkopf Feld berechnen wählen.

Tom
117553
117553 14.04.2016 um 13:29:10 Uhr
Goto Top
Hey Tom,

oh ja ganz wichtig genau, nutze 2010!

stimmt genau, das Feld nutze ich auch momentan, nur es happert dann an dem Ausdruck, hier bekomm ich die Fehler (siehe oben)
ukulele-7
ukulele-7 14.04.2016 aktualisiert um 13:41:05 Uhr
Goto Top
Also Access beherscht ja TSQL in weiten Teilen, dir stehen diese Möglichkeiten also schon zur Verfügung. Nur bei dem Tabellendesign ist das sehr aufwendig und es berechnet sich nicht von allein sondern muss bei Veränderungen neu ausgeführt werden.
UPDATE	tabelle
SET		spalte_ergebnis =
( CASE WHEN isnull(spalte1,0) > 0 THEN 1 ELSE 0 END ) +
( CASE WHEN isnull(spalte2,0) > 0 THEN 1 ELSE 0 END ) +
-- [...]
( CASE WHEN isnull(spalte35,0) > 0 THEN 1 ELSE 0 END )
Tommy70
Lösung Tommy70 14.04.2016 um 13:47:30 Uhr
Goto Top
Dann Probier es mal so

Wenn(IstNull([Aufnahme1]);0;[Aufnahme1])+Wenn(IstNull([Aufnahme2]);0;[Aufnahme2])+Wenn(IstNull([Aufnahme3]);0;[Aufnahme3])
114757
Lösung 114757 14.04.2016 aktualisiert um 13:56:45 Uhr
Goto Top
Als berechneter Ausdruck geht:
Wenn(IstNull([Aufnahme1]);0;1)+Wenn(IstNull([Aufnahme2]);0;1)+Wenn(IstNull([Aufnahme3]);0;1)+Wenn(IstNull([Aufnahme4]);0;1)
usw.

Gruß jodel32
117553
117553 14.04.2016 um 14:05:09 Uhr
Goto Top
Herzlichen Dank!
endlich funktioniert es....