Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Frank77 am Januar 16, 2012, 12:53:30

Titel: ISODatum in Abfrage VBA Laufzeitfehler
Beitrag von: Frank77 am Januar 16, 2012, 12:53:30
Hallo !

Ich habe da ein Problem mit einer Funktion ISODatum  
Leider weiß ich nicht genau was diese Funktion bewirkt und finde online sehr wenig darüber
Den Aufbau des Strings habe ich aus einem Beispiel in dem es funktioniert  wenn ich die Abfrage bei mir starte erhalte ich

Den Laufzeitfehler  3085

Undefinierte Funktion ISODatum in Ausdruck  

Keine Ahnung was ich da falsch mache
Gruß Frank


   sSQL = "SELECT Sum([BestandAnzahl]*[BestandVorzeichen]) AS LagerbestandGesamt, tblBestandsaenderungen.BestandArtIDRef, tblBestandsaenderungen.BestandInventur, tblBestandsaenderungen.BestandDatum" & _
        " FROM tblBestandsaenderungen" & _
        " WHERE tblBestandsaenderungen.BestandArtIDRef = " & lngArtikelID & "" & _
        " AND tblBestandsaenderungen.BestandInventur=False" & _
        " AND tblBestandsaenderungen.BestandDatum<=ISODatum([txtDatumAktuelleInventur]);"


Titel: Re: ISODatum in Abfrage VBA Laufzeitfehler
Beitrag von: database am Januar 16, 2012, 13:08:11
Hallo,

der Fehler liegt hier:

AND tblBestandsaenderungen.BestandDatum<=ISODatum([txtDatumAktuelleInventur]);"

Unabhängig davon, dass die Funktion nicht richtig aufgerufen wird, dürfte diese (ISODatum) unter diesem Namen nicht geben.

schreibe stattdessen mal:

Dim strDatum as String
strDatum = Format([txtDatumAktuelleInventur], "\#yyyy\-mm\-dd\#")

....
...

" AND tblBestandsaenderungen.BestandDatum<= " & strDatum


sieh mal hier:

http://www.donkarl.com?FAQ6.8 (http://www.donkarl.com?FAQ6.8)

HTH
Titel: Re: ISODatum in Abfrage VBA Laufzeitfehler
Beitrag von: Beaker s.a. am Januar 17, 2012, 00:22:23
Hallo Peter,
ZitatUnabhängig davon, dass die Funktion nicht richtig aufgerufen wird,
Bist Du sicher? Ich kenne die Funktion nicht, denke aber, wenn die als Parameter nur ein Datum erwartet, sollte das schon funzen.
Allerdings denke ich auch, dass da noch ein paar " reingehören:
AND tblBestandsaenderungen.BestandDatum<=[u]" &[/u] ISODatum([txtDatumAktuelleInventur])
Falls ich falsch liege, freue ich mich über Belehrung/Berichtigung.
gruss ekkehard


@Moderatoren:
Wie macht man denn Textformatierungen in Codeabschnitten?
Wollte eigentlich die unterstrichenen Zeichen rot machen, ging aber auch nicht.
Danke für Aufklärung.
Titel: Re: ISODatum in Abfrage VBA Laufzeitfehler
Beitrag von: DF6GL am Januar 18, 2012, 10:02:26
Hallo,

mein Senf:




Wenn
"...AND tblBestandsaenderungen.BestandDatum<=ISODatum([txtDatumAktuelleInventur]);"

funktionieren soll, dann muss:
-- die Funktion ISODatum() in einem Standard- (Allgemein-) Modul stehen und einen String der Form #2012-12-31# liefern
-- der Funktionsparameter ein Tabellenfeld sein , was vermutlich nicht der Fall ist (sieht eher nach einem Formular-Textfeld aus) und database mit "nicht richtig aufgerufen " gemeint hat.


Wenn

"...AND tblBestandsaenderungen.BestandDatum<=" & ISODatum([txtDatumAktuelleInventur])

funktionieren soll, so muss

-- die Funktion  (mindestens)  im Klassenmodul des Formulares, in dem [txtDatumAktuelleInventur] zu finden ist, stehen.
    Dabei wäre  ....ISODatum(Me![txtDatumAktuelleInventur]) vorzuziehen.

-- die Funktion einen String der Form #2012-12-31# zurück liefern.
Titel: Re: ISODatum in Abfrage VBA Laufzeitfehler
Beitrag von: Beaker s.a. am Januar 18, 2012, 20:51:13
Hallo Franz,
Zitat-- die Funktion ISODatum() in einem Standard- (Allgemein-) Modul stehen und einen String der Form #2012-12-31# liefern
Davon war ich ausgegangen.
Zitat-- der Funktionsparameter ein Tabellenfeld sein , was vermutlich nicht der Fall ist (sieht eher nach einem Formular-Textfeld aus) und database mit "nicht richtig aufgerufen " gemeint hat.
Auch davon war ich ausgegangen, aber, jetzt, wo Du es sagst ... (typischer Fall von "wer lesen kann...)
Dann muss ich natürlich auch dem Rest Deiner Ausführungen Recht geben.
gruss ekkehard
Titel: Re: ISODatum in Abfrage VBA Laufzeitfehler
Beitrag von: database am Januar 19, 2012, 12:19:58
Hallo,

@Beaker s.a.

Wie macht man denn Textformatierungen in Codeabschnitten?

Gar nicht - da gibts keine Formatierungen  :'(
Titel: Re: ISODatum in Abfrage VBA Laufzeitfehler
Beitrag von: Beaker s.a. am Januar 19, 2012, 12:30:42
Hallo Peter,
ZitatWie macht man denn Textformatierungen in Codeabschnitten?

Gar nicht - da gibts keine Formatierungen 
Schade.
Wäre manchmal hilfreich, um so kleine Abweichungen (fehlende ' oder . + !) hervor zu heben.
Na ja, man kann nicht alles haben  ;)
gruss ekkehard
Titel: Re: ISODatum in Abfrage VBA Laufzeitfehler
Beitrag von: Frank77 am Januar 19, 2012, 21:26:36
Hallo euch allen !

Danke für eure zahlreichen  antworten
In den Beispiel das ich da aufarbeitet hatte habe ich übersehen das in einem extra Modul das hier stehen muss da klappt das auch

Aber GROSSES danke nochmal für eure Antworten  da kann ich noch einiges lernen

Gruß Frank
Public Function ISODatum(strDatum As Date) As String
    ISODatum = Format(strDatum, "\#yyyy\-mm\-dd\#")
End Function