Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

ISODatum in Abfrage VBA Laufzeitfehler

Begonnen von Frank77, Januar 16, 2012, 12:53:30

⏪ vorheriges - nächstes ⏩

Frank77

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]);"


Selbstständig = Selbst und Ständig

database

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

HTH

Beaker s.a.

#2
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.
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

DF6GL

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.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

database

Hallo,

@Beaker s.a.

Wie macht man denn Textformatierungen in Codeabschnitten?

Gar nicht - da gibts keine Formatierungen  :'(

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Frank77

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

Selbstständig = Selbst und Ständig