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-Key: 301820

Url: https://administrator.de/contentid/301820

Printed on: April 16, 2024 at 19:04 o'clock

Member: Biber
Biber Apr 14, 2016 at 09:45:29 (UTC)
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
Member: ukulele-7
ukulele-7 Apr 14, 2016 at 10:09:46 (UTC)
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.
Mitglied: 117553
117553 Apr 14, 2016 updated at 10:37:53 (UTC)
Goto Top
Hallo Biber,

hab jetzt nur mit zwei Spalten... nur so zum probieren.
unbenannt
Mitglied: 117553
117553 Apr 14, 2016 at 10:22:36 (UTC)
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
Mitglied: 117553
117553 Apr 14, 2016 at 10:52:23 (UTC)
Goto Top
und

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

...syntaktisch falsch...
Member: Tommy70
Tommy70 Apr 14, 2016 updated at 11:25:23 (UTC)
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
Mitglied: 117553
117553 Apr 14, 2016 at 11:29:10 (UTC)
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)
Member: ukulele-7
ukulele-7 Apr 14, 2016 updated at 11:41:05 (UTC)
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 )
Member: Tommy70
Solution Tommy70 Apr 14, 2016 at 11:47:30 (UTC)
Goto Top
Dann Probier es mal so

Wenn(IstNull([Aufnahme1]);0;[Aufnahme1])+Wenn(IstNull([Aufnahme2]);0;[Aufnahme2])+Wenn(IstNull([Aufnahme3]);0;[Aufnahme3])
Mitglied: 114757
Solution 114757 Apr 14, 2016 updated at 11:56:45 (UTC)
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
Mitglied: 117553
117553 Apr 14, 2016 at 12:05:09 (UTC)
Goto Top
Herzlichen Dank!
endlich funktioniert es....