Access 2007 Bericht mit Where Klausel

26/02/2009 - 11:54 von Wazlav Gizycki | Report spam
Hallo Group,

zu meiner Prüfung als IFK habe ich ein Projekt ain Access (mit VBA)
Leider komme ich damit nicht weiter und möchte euch um Hilfe bitten.
Es geht um eine Inveturdatenbank für ein kleines
Arbeitsmateriallager.

Ich habe mittels einer Kreuztabellenabfrage die Daten aus der Tabelle
artikel ausgesucht

Hier ist die Kreuzabellen Abfrage.(bericht_BELASTUNG_GUTSCHRIFT)

TRANSFORM Nz(Sum([db_lager_artikel].[BETRAG]),0) AS BETRAG
SELECT [db_lager_regal]![BEZ] AS REGAL
FROM ((db_lager_artikel INNER JOIN db_lager_regal ON
db_lager_artikel.NR_REGAL=db_lager_regal.REGAL_NR) INNER JOIN
db_lager_bewegung_art ON
db_lager_artikel.NR_BEWEGUNG_ART=db_lager_bewegung_art.BEW_NR) INNER
JOIN db_lager_aktion ON
db_lager_bewegung_art.NR_AKTION=db_lager_aktion.AKT_NR
GROUP BY [db_lager_regal]![BEZ]
PIVOT db_lager_bewegung_art.BEZEICHNUNG;

Der Bericht funktioniert soweit. Ich bekomme alle Daten aus der
Tabelle und zwar was in jedes Regal rein und was Rausgenommen wurde.

Den Bericht rufe ich auf indem ich ein Button mit der
DoCmd.OpenReport Funktion belegt habe.
Vorher selektiere ich im gleichen Formular noch ein Anfangsdatum und
ein Enddatum Damit ich nicht
Alle Datensàtze auf einmal bekomme. Die Daten übergebe ich zum einen
als Überschrift für den Bericht mit openArgs.

strOpenArgs = " von KW: " & strElementeStart(0) & " bis KW: " &
strElementeEnde(0) & " Datum: " & Format(strElementeStart(1),
"dd.mm.YYYY") & "-" & Format(strElementeEnde(2), "dd.mm.YYYY")

Dann bastele ich eine Where Klausel mit dem Anfangsdatum und Enddatum
für den Inhalt.
strWhere = "db_lager_artikel.DATUM BETWEEN Format('" &
strElementeStart(1) & "', dd.mm.YYYY) AND Format('" & strElementeEnde
(2) & "', dd.mm.YYYY)"

dann rufe ich den Bericht auf und übergebe beim Aufruf die Variablen.

DoCmd.OpenReport "DRUCK_BELASTUNG_GUTSCHRIFT", acViewPreview,
"bericht_BELASTUNG_GUTSCHRIFT", strWhere, acDialog, strOpenArgs

Beim Aufruf meckert Access erst mal dass es das Feld Datum nicht als
gültiges Datenbankfeld erkennt???

Dann habe ich noch ein Problem, in der Kreuztabellenabfrage kann ich
nur eine Spalte als wert bestimmen,
ich nehme die Betràge.
In der Tabelle Artikel habe ich aber zu den Betràgen auch die
Stückzahlen gespeichert.

Im Moment steht im Bericht nur: Im Regal 1 ist ein BETRAG von 25,90
vorhanden.

Ich würde aber gerne reinschreiben:
Also dass man im Bericht sieht: im Regal 1 befinden sich 10(MENGE)
Blöcke im wert von 25,90 also quasi zwei Spalten mit dem attribut wert
belegen, was aber anscheinend nicht geht.

Ich kann auch keine temporàren Tabellen erstellen, weil hier die
Datenbanktabellen zentral auf einem mySQL server drauf sind, und ich
über ODBC drauf zugreife.

Könnt ihn mir da vielleicht helfen? Trete seit Tagen auf der Stelle.
Wàre für jeden Tipp dankbar.
Habe mit Berichten nicht so viel Erfahrung.

Vielen Dank!
 

Lesen sie die antworten

#1 Jens Schilling
26/02/2009 - 14:09 | Warnen spam
Hallo, Wazlav

Wazlav Gizycki wrote:
Ich habe mittels einer Kreuztabellenabfrage die Daten aus der Tabelle
artikel ausgesucht



Warum eine Kreuztabelle - ist das Bedingung ?

Beim Aufruf meckert Access erst mal dass es das Feld Datum nicht als
gültiges Datenbankfeld erkennt???



Datum ist ein reserviertes in Access, diese Verwendung solltest Du
vermeiden; mehr Info's dazu findest u.a. in der Hilfe oder aber auch hier :

http://office.microsoft.com/de-de/a...31031.aspx


Wàre für jeden Tipp dankbar.



Schau Dir ein paar Beispiele an - hier kannst Du eines finden, dass Deinen
Anforderungen recht nahe zu kommen scheint:

http://www.office-loesung.de/ftopic..._0_asc.php

( vorletzter Beitrag auf der 1. Seite )

Ansonsten sollte auch in der Nordwind ein àhnliches Beispiel enthalten sein,
bzw. làsst sich auf den englischsprachigen Seiten zum Office unter den
Business-Templates auch eine Demo namens "Inventory" finden.

http://office.microsoft.com/en-us/t...41033.aspx


Gruss
Jens
______________________________
FAQ: http://www.donkarl.com

Ähnliche fragen