Forums Neueste Beiträge
 

Bericht mit SQL Abfrage als Datenquelle

03/03/2009 - 18:02 von Wazlav Gizycki | Report spam
Hallo Group,

ich versuche scoh nseit ein paar Tagen ein Bericht mit dem Befehl:
DoCmd.OpenReport "DRUCK_BELASTUNG_GUTSCHRIFT", acViewPreview, strSQL,
strWhere, acPreview, strOpenArgs

Das ist die Query

strSQL = 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]

das ist die WHERE Klausel

strWhere = "db_lager_artikel.DATUM BETWEEN " & Format(strElementeStart
(1), "dd.mm.YYYY") & " AND " & Format(strElementeEnde(2),
"dd.mm.YYYY") & " GROUP BY db_lager_bewegung_art.BEZEICHNUNG"

also irgendwie bekomme ich das nicht hin. Es klappt einfach nicht,
kann mir vielleicht jemand sagen, wie ich den Bericht aufrufen kann?
Ich habe echt shcon alles mögliche versucht? Aber bisher noch kein
vernünftiges Ergebnis.

Vielleicht kennt ja einer ein gutes Beispiel. Außedem brauche ich ein
Tipp wie ich denn die Zeilen an die Felder im Bericht übergeben kann.

Danke schonmal.

Lieben Gruß
 

Lesen sie die antworten

#1 Josef Keidler
03/03/2009 - 20:09 | Warnen spam
Hallo


Auch auf die Gefahr das ich mich wiederhole:
Ich bin der Dümmste hier aber

strWhere = "db_lager_artikel.DATUM BETWEEN " & Format(strElementeStart
(1), "dd.mm.YYYY") & " AND " & Format(strElementeEnde(2),
"dd.mm.YYYY") & " GROUP BY db_lager_bewegung_art.BEZEICHNUNG"



diese WHERE Klausel gefàllt mir gar nicht.





Format(strElementeStart (1), "dd.mm.YYYY")


Für Abfragen das falsche Datumsformat.

Geklaut aus dieser news-Group:
#####################################################
Aber ich bràuchte das Datum in einem SQL-String



Für SQL musst du immer das Datum in einen "String" umwandeln.
Hier helfen zwei kleine Funktionen weiter, die der KnowHow.mdb (siehe
Signatur) entnommen wurde

Wenn der Uhrzeit-Teil (wie bei der Funktion SQLDatum) fehlt, wird immer
Mitternacht (0 <Null> Uhr 0 <Null> Minuten und 0 <Null> Sekunden)
angenommen, wenn der UhrzeitTeil benötigt wird, so muss die Funktion
DateTimeForSQL verwendet werden. (Siehe auch Access-FAQ
http://www.donkarl.com Punkt 3.13)

Function SQLDatum(Datumx) As String
'Macht aus irgendeinem gültigen Datum einen String #yyyy-mm-dd# (ISO-Norm
Datum)
If IsDate(Datumx) Then
    SQLDatum = Format(CDate(Datumx), "\#yyyy\-mm\-dd\#", vbMonday,
vbFirstFourDays)
Else
    SQLDatum = ""
End If
End Function

Function DateTimeForSQL(dteDate) As String
'Datum incl. Uhrzeit für SQL und INI-Files als String

'  DateTimeForSQL = Format(CDate(dteDate), "\#yyyy\-mm\-dd h:nn:ss AM/PM
\#", vbMonday, vbFirstFourDays)
  DateTimeForSQL = Format(CDate(dteDate), "\#yyyy\-mm\-dd hh:nn:ss\#",
vbMonday, vbFirstFourDays)

End Function



####################################################

strElementeStart(1)


ist hoffentlich eine Funktion, als String kann das
wohl nicht funktionieren.

und die Group By klausel ist doppelt (auch in der Query vorhanden)

Mit freundlichen Grüßen
Josef Keidler

Ähnliche fragen