1.9k Aufrufe
Gefragt in Datenbanken von
Hallo zusammen,
ich habe ein Problem und würde mich freuen wenn mir jemand helfen könnte.
Ich habe eine Tabelle mit einer Datumsspalte und mehreren Spalten in denen nur die Zahlen 1 bis 4 je zeile vorkommen. Nun mein Problem, ich habe eine Abfrage die mit der Funktion zwischen [] und[] ein Datum gefiltert wird und an ein Endlosformular ausgegeben wird. In dem Formular habe ich eine Ungebundenes Textfeld je Spalte in der ich nun nur die 1 gezählt haben möchte.

Ich hoffe jemand kann mir da weiterhelfen

mit Gruß Uwe

5 Antworten

0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo babapapas,

Für die Bestimmung der Felder mit 1en, würde ich pro Feld
sum(iif(feldx=1,1,0)) as
feldx1anz.
definieren. Warum du allerdings den Umweg über ungebundene Felder im
Formular gehst, verstehe ich nicht. Falls du ein konkreteres Bsp brauchst, melde dich noch
mal.

Gruß Ralf
0 Punkte
Beantwortet von
Hallo Ralf,
mir ist kein anderer Weg bekannt !!.
Ein Konkretes Bsp. wäre sehr gut.
Ich habe die Deine Formel in den Steuerelementinhalt eingegeben, aber ein Ergebnis habe ich nicht erhalten. Alledings auch keine Fehlermeldung.

Würde mich freuen wenn ich dieses Problem lösen könnte.
Ich suche bereits seit einer Woche danach.

vielen Dank
und Gruß Uwe
0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo Uwe,

ok, ich mach einmal paar Annahmen.
1. Du hast eine Tabelle "tblTest" z.B. der Form

ID vom Typ Autowert
Datum vom Typ date
feld1 vom Typ zahl
feld2 vom Typ zahl
feld3 vom Typ zahl

mit den Inhalten:

datum feld1 feld2 feld3
01.01.2010 1 2 3
01.02.2010 1 3 2
01.03.2010 2 1 3
01.04.2010 3 2 1

dann bringt die Abfrage

SELECT
Sum(IIf([feld1]=1,1,0)) AS feld1_1anz,
Sum(IIf([feld2]=1,1,0)) AS feld2_1anz,
Sum(IIf([feld3]=1,1,0)) AS feld3_1anz
FROM tblTest
WHERE (((datum) Between #1/1/2010# And #3/31/2010#));

das Ergebnis

feld1_1anz feld2_1anz feld3_1anz
2 1 0


Wenn das dein Problem im ersten Schritt löst, könnten wir uns noch mal über die Realisierung in einem Formular unterhalten.

Gruß
Ralf
0 Punkte
Beantwortet von
Hallo Ralf,
Deine Annahmen sind soweit korrekt, allerdins sind es ungefähr 100 Spalten.
Aber, da ich gerade erst anfange mich mit Access zu beschäftigen, ist es für mich etwas schwer zu verstehen wo ich Deine Formel einstellen soll ?.

Ich muß Dir noch mitteilen, dass ich im Formular alle Datensätze einer Spalte sehen muß. Und nur die Anzahl der 1er im Textdeld ausgegeben haben möchte.

Ich würde mich freuen wenn Du mir da weiter helfen würdest.

Mit Gruß
Uwe

PS:
Es handelt sich hierbei um ein Fahrzeugdispositionsprogramm
Die Spaltennamen sind die Internen Fahrzeugnummern.
Die Ziffern bedeuten: 1 Das Fahrzeug ist in der Werkstatt
2 Das Fahrzeug ist Verplant (Insp. etc.)
3 Das Fahrzeug ist frei
4 Das Fahrzeug ist im Einsatz
Die Tabelle ist für 5 Jahre im Verraus erstellt und die Ziffer 4 ist für die Wochentage Mo-Fr vorgegeben.
Wenn das Fahrzeug in die Werkstatt gegeben wird, dann ändert man die 4 in eine 1 um, so, das man für den gewählten zeitraum sehen kann, wie lange das Fz in der Werkstatt steht.
0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo Uwe,

wenn du "gerade anfängst" mit dem Programm, vielleicht ein Tipp zu Beginn. Mit deinen 100 Spalten legst du dich fest mit der ANzahl der Fahrzeuge. Entweder hast du die Anzahl der Felder für die Fahrzeuge üppig gewählt und kennst schon alle Fahrzeug-IDs oder du musst später, wenn das 101te Fahrzeug dazu kommt deine Tabelle und deine Programme anpassen. Beides wäre für mich ein Alptraum. Ich würde das Ganze mit drei Tabellen lösen:

Tabelle1 "Fahrzeuge" mit den Feldern
Fahrzeugnummer
und weitere Felder zum Fahrzeug (Fabrikat, Kaufdatum, Verkaufdatum, etc.)

Tabelle2 "Einsatzarten" mit den Feldern
ID (für die Werte 1-4)
Bezeichnung (für die Beschreibung der IDs)

Tabelle3 "Fahrzeugeinsatz" mit den Feldern
Datum
EinsatzID
FahrzeugID

Hier kannst du jetzt alle Daten eintragen, die du auch in deiner großen Tabelle hast, und - die Auswertung ist viel leichter. Überlege dir das mal.

Gruß
Ralf
...