Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Neueste Beiträge

#41
Access Programmierung / Re: Stringzuweisung erzeugt Fe...
Letzter Beitrag von Beaker s.a. - Januar 07, 2026, 18:24:11
Hallo Philip,
Danke. Es gibt zwar bei mir in dem Zusammenhang kein CDate(), aber dadurch
bin ich drauf gekommen warum es im Test (anscheinend) funzt und im Code
relevanten Code nicht. Man sieht im Direktfenster die Quote vorn und hinten
nicht.

Bin dadurch aber auch auf die ursprüngliche Ursache des Fehlers gestossen.
Man wird doch irgendwie alt. Bei der Idee das Matchdate als String zu verwenden
(wird an einen SQL-Builder weitergereicht) hatte ich die SQLDatum-Funktion völlig
vergessen.

Ist also alles in Ordnung, muss nur ein paar kleine Änderungen an vorgelagertem
Code durchführen.

Dank nochmal für eure Anteilnahme.

gruss ekkehard
#42
Access-Hilfe / Problem beim Öffnen einer AC-D...
Letzter Beitrag von MaxP - Januar 07, 2026, 16:13:32
Hallo zusammen und frohes Neues,

seit Anfang des Jahres habe ich das Problem, dass beim Öffnen einer Accecc-Datei (A2003) von meiner NAS, egal ob als Desktop-Verknüpfung oder direkt die Datei im Explorer, die Meldung "Datei öffnen - Sicherheitswarnung" aufpoppt. Es wird darauf hingewiesen, dass die Datei außerhalb des lokalen Netzwerks sei. Und das, ohne das ich etwas verändert habe. Word u. Exel 2003 sind davon nicht betroffen.

Obwohl ich schon immer unter Internet/Sicherheit/Lokales Intranet die IP-Adresse meiner NAS als Zone hinzugefügt habe. Das hat auch bis Ende 2025 immer ohne Sicherheitswarnung funktioniert.

Außerdem erhalte ich im Explorer keine Voransicht von PDF-Dateien mehr. Beim Öffnen von Zip-Dateien kommen auch Sicherheitswarnungen.

Hat jemand eine Idee, was ich noch tun kann, um die Abfrage zu verhindern?
(Und bitte nicht die Empfehlung AC upzugraden)

Gruß
Max

#43
Access Programmierung / Re: Stringzuweisung erzeugt Fe...
Letzter Beitrag von PhilS - Januar 06, 2026, 18:29:47
Zitat von: Beaker s.a. am Januar 06, 2026, 17:51:39sMatchdate kommt so
Zitat#2025/11/15 00:00:00#
in der Prozedur an, die den Fehler produziert.
Mir ist unklar, welche Prozedur du hier genau meinst und ob du den obigen Wert als String oder als Datum meinst.
Warum letzteres relevant ist:
? cdate("#2025/11/15 00:00:00#")
=> Type mismatch Error

? cdate("2025/11/15 00:00:00")
=> 15.11.2025

#44
Access Programmierung / Re: Stringzuweisung erzeugt Fe...
Letzter Beitrag von Normalo0815 - Januar 06, 2026, 18:05:41
Hallo,

Format nicht so yyyy\/mm\/dd sondern so yyyy\-mm\-dd

Siehe auch
https://www.donkarl.com?FAQ6.8
#45
Access Programmierung / Re: Stringzuweisung erzeugt Fe...
Letzter Beitrag von Beaker s.a. - Januar 06, 2026, 17:51:39
Hallo,
Vielen Dank für eure Antworten.
Sorry, habe leider vergessen zu erwähnen, dass wenn ich den String in einer
Testprozedur zusammensetze, Public Function testSQL()
    Dim dDate As Date
    Dim sSQL As String
    dDate = "15.11.2025"

 sSQL = "SELECT Min(T.Spieltag) AS DateFrom " & vbCrLf & _
            "FROM (" & vbCrLf & _
            "   SELECT TOP " & 50 & " Q.Spieltag " & vbCrLf & _
            "   FROM qSpieltage AS Q " & vbCrLf & _
            "   WHERE Q.Spieltag < " & SQLDateString(dDate) & vbCrLf & _
            "   ORDER BY Q.Spieltag DESC" & vbCrLf & _
            ") AS T"

SqlDebug sSQL
End Function
als Ergebnis
ZitatSELECT Min(T.Spieltag) AS DateFrom
FROM (
   SELECT TOP 50 Q.Spieltag
   FROM qSpieltage AS Q
   WHERE Q.Spieltag < #2025/11/15#
   ORDER BY Q.Spieltag DESC
) AS T
erhalte.
Im Direktfenster:
Zitat?SQLDateString("15.11.2025")
#2025/11/15#
sMatchdate kommt so
Zitat#2025/11/15 00:00:00#
in der Prozedur an, die den Fehler produziert.
Public Function SQLDateString( _
        ByVal dValue As Date, _
        Optional ByVal bIncludeTime As Boolean = False) As String
       
    If bIncludeTime Then
        SQLDateString = "#" & Format$(dValue, "yyyy\/mm\/dd hh:nn:ss") & "#"
    Else
        SQLDateString = "#" & Format$(dValue, "yyyy\/mm\/dd") & "#"
    End If
End Function
Dies funzt sowohl mit "15.11.2025" als auch mit Date(). Da kommt doch wohl die
explizite Typumwandlung durch VBA ins Spiel. Der übergebene Wert ist auf jeden
Fall ein Ausdruck, der ein gültiges Datum übergibt. I.Ü.  habe ich diese schon
x-mal in meinen DBn verwendet.

gruss ekkehard


#46
Access Programmierung / Re: Stringzuweisung erzeugt Fe...
Letzter Beitrag von Knobbi38 - Januar 06, 2026, 14:13:10
@PhilS

Sicherlich hast du schon so etwas gemacht :) , nur hatte ich das nicht mehr ganz parat.

Für die Ersetzungen in SQL Strings hatte ich da gar nicht an so eine aufwendige Funktion mit den Formatieroptionen gedacht, da reicht auch oft ein einfaches Replace. Wenn man wirklich Formatierungen benötigt, kann man dieses ja schon vorher bei der Parameterübergabe machen.

Aber warum nicht ... ?  ;)

Grüße
Knobbi38
#47
Access Programmierung / Re: Stringzuweisung erzeugt Fe...
Letzter Beitrag von PhilS - Januar 06, 2026, 14:00:09
Zitat von: Knobbi38 am Januar 06, 2026, 13:42:39Man könnte sich dafür auch eine Funktion mit variabler Anzahl an Parametern schreiben, was das Ganze noch etwas vereinfacht.
Dazu hatte ich mal was geschrieben...
-> Eine printf oder String.Format Funktion für VBA
#48
Access Programmierung / Re: Stringzuweisung erzeugt Fe...
Letzter Beitrag von Knobbi38 - Januar 06, 2026, 13:42:39
Hallo Ekkehard,

für solche Fälle verwende ich gerne so eine Codestruktur:
  Dim sSQL As String
 
    Const SQL_MIN = _
        "SELECT Min(T.Spieltag) AS DateFrom" _
        & " FROM ( " _
        & "   SELECT TOP {0} Q.Spieltag" _
        & "   FROM qSpieltage AS Q" _
        & "   WHERE Q.Spieltag < {1} " _
        & "   ORDER BY Q.Spieltag DESC" _
        & ") AS T"
 
  sSQL = Replace(SQL_MIN, "{0}", CStr(lLastN))
  sSQL = Replace(sSQL, "{1}", SQLDateString(sMatchDate))
 
  Debug.Print "SQL > "; sSQL
Ist zwar etwas aufwendiger, aber relativ einfach zu handhaben, auch weil hier gut CP angewendet werden kann. Man könnte sich dafür auch eine Funktion mit variabler Anzahl an Parametern schreiben, was das Ganze noch etwas vereinfacht.

Knobbi38
#49
Access Programmierung / Re: Stringzuweisung erzeugt Fe...
Letzter Beitrag von PhilS - Januar 05, 2026, 18:26:07
Ich denke, der Fehler kann eigentlich nur bei diesem Teil entstehen:
... SQLDateString(sMatchDate) ...
Erwartet diese Funktion einen Date-Datentyp als Argument? Das Prefix "s" lässt vermuten, dass das nicht gegeben ist.
#50
Access Programmierung / Stringzuweisung erzeugt Fehler
Letzter Beitrag von Beaker s.a. - Januar 05, 2026, 18:17:02
Hallo,
Kann mir jemand sagen, warum dieser Code direkt, also bereits OHNE
Zuweisung an einen RS den Fehler 13, Typen unverträglich erzeugt?
ZitatsSQL = _
            "SELECT Min(T.Spieltag) AS DateFrom " & vbCrLf & _
            "FROM (" & vbCrLf & _
            "   SELECT TOP " & lLastN & " Q.Spieltag " & vbCrLf & _
            "   FROM qSpieltage AS Q " & vbCrLf & _
            "   WHERE Q.Spieltag < " & SQLDateString(sMatchDate) & vbCrLf & _
            "   ORDER BY Q.Spieltag DESC" & vbCrLf & _
            ") AS T"
Die Variablen lLastN und sMatchDate sind korrekt befüllt, sSQL als String
deklariert.
Danke.

gruss ekkehard