2.6k Aufrufe
Gefragt in Datenbanken von Einsteiger_in (83 Punkte)
Hallo Könner,
in meiner EK-db habe ich aus einer Abfrage ein Unterformular "Einkäufe" mit den Feldern "Einzelpreis" sowie "mal" (für die Anzahl der jeweils gekauften Artikel) und dann "VK-Preis" den ich in der Abfrage mit "VKPreis: [Einzelpreis]*[mal]" errechne und ins Formular übernehme.
In den Formularfuß habe ich eine Summierung der VK-Beträge eingerichtet mit der Formel: "=Summe([VKPreis])"
Das funktioniert auch ganz prima sowohl als Unterformular für die einzelnen Händler und EK-Tage als auch per Einzelformular für die Gesamte VK-Summe über einen bestimmten Zeitraum.
Nun meine Frage:
Was muß ich wie und wo eingeben um neben der VK-Summe im Formularfuß noch in einem Feld (auch ein Textfeld?) die Anzahl der Artikelpositionen (Datensätze) anzuzeigen?
Da komm ich momentan nicht klar.
Da sollte also etwa stehen "Gesamtsumme: 32,98 €" – "Positionen: 5" wenn es 5 Datensätze sind. Da ich bisher nur mit den Assistenten arbeite und von SQL oder VBA null Ahnung habe, würde ich sehr um eine verständliche Anleitung bitten.

Für alle Hilfe schon mal ein Dankeschön

Gruß Gringo

7 Antworten

0 Punkte
Beantwortet von kjg17 Profi (34.4k Punkte)
Hallo Gringo,

das Zählen der Datensätzen für ein bestimmtes Feld ist eigentlich eine Standard-Funktion von Access. Für deinen Anwendungsfall wirst du dazu die Informationen in der Hilfe von Access unter Zählen / Zählen in Berichten finden.

Gruß
Kalle
0 Punkte
Beantwortet von marie Experte (2k Punkte)
Hi Gringo,

intX = DomAnzahl("*", "DeineTabelle")

Gruß marie
0 Punkte
Beantwortet von Einsteiger_in (83 Punkte)
Hallo und erst mal Danke für eure Bemühungen :-)

@Kalle,
tut mir leid, ich steig da nicht ganz durch :-(
So weiß ich z.B. nicht was mit Diagrammfeld der abf gemeint ist (2.ter Absatz in der Hilfe) wo ich die gewünschten Tabellen zusammenführen soll. Ich bin halt auf access noch der totale Anfänger und bring mir das nur aus Spaß an der Freud daheim selbst bei, weil ich es einfach schade finde ein Programm mit diesen Möglichkeiten ungenutzt zu lassen. Mit Word, Excel und Outlook komm ich ja schon einigermaßen klar.
Vielleicht sollte ich doch mal einen VHS-Kurs für access belegen. Bin seit Februar des Jahres in Rente und hab da nun ja evtl. die Zeit dazu.
Oder gibts ne bessere Methode?

@Marie,
auch dir herzlichen Dank. Habe deine Formel in ein Texfeld im Formularfuß der tbl mit Namen "tbl-Kopf4-Branche" testweise reinkopiert und diesen Namen in das vorgesehene Feld "Deine Tabelle". Ich erhalte trotzdem die Fehlermeldung #Name?
Was stimmt da noch nicht?
Ich hab dieses Probeformular direkt von der Tabelle übernommen ohne jede Änderung oder Zwischentabelle um dieses Zusammenzählen der Datensätze zu testen.
Ach (falls wichtig) Office-pro-2003 ist meine Version.

Gruß Gringo
0 Punkte
Beantwortet von marie Experte (2k Punkte)
Also, du erstellst zum beispiel ein kleines Bezeichnungsfeld auf deinem Formular, wo die Anzahl hinsoll, dann schreibst Du den Code wo er hinsoll: Wenn sich die Anahl nicht ändert zum beispiel beim Öffnen des Formulares:

Private Sub Form_Open(Cancel As Integer)
Me.Bezeichnungsfeld6.Caption = DCount("*", "Abfrage1")
End Sub


Wobei "Bezeichnungsfeld6" der Name deines Bezeichnungsfeldes sein muss und anstelle von "Abfrage1" schreibst Du den Namen deiner Tabelle oder Abfrage.

Gruß Marie
0 Punkte
Beantwortet von marie Experte (2k Punkte)
Kannst natürlich auch anderen text dazuschreiben, also zum beispiel:

Private Sub Form_Open(Cancel As Integer)
Me.Bezeichnungsfeld6.Caption = "Positionen: " & DCount("*", "Abfrage1")
End Sub


Nochmal Gruß Marie
0 Punkte
Beantwortet von Einsteiger_in (83 Punkte)
Hallo @all,

nach längeren herumprobieren bin ich auf eine ganz einfache Lösung für mein Problem gekommen:
Ich habe links neben dem Textfeld "=Summe([VKPreis])" im Formularfuß des Unterformulars ein zweites Textfeld gesetzt und in der Formel "Summe" in "Anzahl" geändert. (Die Spalte/Feld "VKPreis" entspricht der Anzahl der Datensatzpositionen)
Jetzt hab ich genau was ich wollte – im Hauptformular steht nun in Zwei Textfeldern z.B. "Bon-Positionen: 14" und "Kassen-Endbetrag: 16,51€"

@Marie
Der Denkanstoß für meine Lösung kam durch deinen Code, obwohl ich den so nicht anwenden konnte.
Ich will dir auch nochmals danken für den Zeitaufwand um mir etwas beibringen zu wollen das ich so schnell nicht nachvollziehen kann (siehe meine Anfrage - null Ahnung von SQL bzw. VBA)
Daher auch nicht wissend wo der Code
dann schreibst Du den Code wo er hinsoll
denn nun eingetragen wird.
Ich sitz hier wirklich alleine am Rechner und kann selbst bei solchen Kleinigkeiten kein direktes Feedback durch Nachfragen bekommen. Würdet ihr mir einen VHS-Kurs empfehlen oder evtl. ein Online-Seminar?
Hat da irgendwer Erfahrungen und könnte was empfehlen?

Wie sich meine obige Lösung beim Filtern nach verschiedenen Händlern oder bestimmten Artikeln noch auswirkt muß ich allerdings auch erst noch sehen.

Sollten meine Fragen zu einfach für euch sein (man setzt ja wohl schon einiges voraus hier, wenn sich jemand mit access beschäftigt) habt ihr vielleicht doch nen Tipp wo ich meine Kenntnisse vertiefen kann.

Danke, Gruß und ein schönes verlängertes WE

Gringo
0 Punkte
Beantwortet von marie Experte (2k Punkte)
Hi Gringo,
frag uns einfach ein Loch in den bauch und probier aus, da lernst Du es am schnellsten. :-)

Gruß Marie

PS:

Daher auch nicht wissend wo der Code
Zitat:
dann schreibst Du den Code wo er hinsoll
denn nun eingetragen wird.


Damit habe ich gemeint dorthin wo du ihn haben möchtest: Entweder ereigniscode "beim Öffnen" des Formulares, wenn der Text nicht geändert werden muss während das Formular offen ist, oder beim Aktivieren oder bei Änderung oder wann auch immer Du möchtest, dass die Anzahl aktualisiert wird.

Du solltest Dir das in der Hilfe mal durchlesen wann welches Ereignis eintrifft. Und wie gesagt, einfach ausprobieren. mach Dir eine MSG-Box mit "Hallo hier" und probier aus wann sie erscheint. Und frag einfach konkret was Du nicht verstanden hast.
...