Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: fo_juergen am Dezember 29, 2011, 15:38:38

Titel: MS SQL 2005 express DateTime Felder mit VBA beschreiben
Beitrag von: fo_juergen am Dezember 29, 2011, 15:38:38
Hallo Forumsmitglieder,

habe eine Problem mit dem schreiben des aktuellen Datums und der Zeit in ein DateTime - Feld
in einer MS SQL 2005 Datenbank,das Feld MWCounter wird geschrieben, aber das Feld MWDateTime mit Datum und Zeit nicht.

Der gleiche String funktioniert aber bei einer MySql Datenbank, sind die Datetime Formate von MySQL und MS SQL verschieden?


Mein Code:
strDate = Format(Now, "\#yyyy\-mm\-dd hh:mm:ss#")

strSql = "insert into dbo_T_LoggingData(MWCounter,MWDateTime) " & _
            "values(" & Wert1 & ", " & strDate & ");"
DoCmd.SetWarnings False
DoCmd.RunSQL strSql
DoCmd.SetWarnings True

Gruß Jürgen
Titel: Re: MS SQL 2005 express DateTime Felder mit VBA beschreiben
Beitrag von: DF6GL am Dezember 29, 2011, 16:08:33
Hallo,

versuch mal:

strDate = Format(Now, "yyyymmdd hh:mm:ss")


und

"values(" & Wert1 & ", '" & strDate & "');"
Titel: Re: MS SQL 2005 express DateTime Felder mit VBA beschreiben
Beitrag von: fo_juergen am Dezember 29, 2011, 16:37:40
@DF6GL,

danke für die schnelle Antwort, schreibt immer noch keine Werte in die Tabelle...?

kann es an dem SQL Server liegen?
Titel: Re: MS SQL 2005 express DateTime Felder mit VBA beschreiben
Beitrag von: fo_juergen am Dezember 29, 2011, 16:44:06
Hallo

mit folgendem Code kommt auch eine Fehlermeldung, siehe Anhang

strDate = Format(Now, "yyyymmdd hh:mm:ss#")
       strSql = "insert into dbo_T_LoggingData(MWCounter,MWDateTime) " & _
            "values(" & Wert1 & ", " & strDate & ");"
           
        DoCmd.SetWarnings False
        DoCmd.RunSQL strSql
        DoCmd.SetWarnings True


     

[Anhang gelöscht durch Administrator]
Titel: Re: MS SQL 2005 express DateTime Felder mit VBA beschreiben
Beitrag von: daolix am Dezember 29, 2011, 16:46:37
ohne mich auszukenne aber fehlt da nicht ein \ als vorletztes Zeichen in der Iso-Formatierung?

strDate = Format(Now, "\#yyyy\-mm\-dd hh:mm:ss\#")
Titel: Re: MS SQL 2005 express DateTime Felder mit VBA beschreiben
Beitrag von: DF6GL am Dezember 29, 2011, 16:47:56
Hallo,

was sagen die "Warnings" ?

Lass die mal eingeschaltet..

Wenn es dann geht, ersetze Docmd.RunSQL durch Currentdb.Execute.


Weiterhin solltest Du ein ADP-Projekt erstellen und auf den MS-SQL-Server direkt zugreifen

Falls Du ODBC-Verknüpfung aktuell verwendest ,  wird das Datumsformat aber vermutlich so aussehen:


strDate = Format(Now, "\#yyyy\-mm\-dd hh:mm:ss\#")
Titel: Re: MS SQL 2005 express DateTime Felder mit VBA beschreiben
Beitrag von: fo_juergen am Dezember 29, 2011, 17:25:52
Hallo,

die warnings ausgeschaltet, keine Fehlermeldung.

verwende ODBC - Verknüpfung zum MS-SQL-Server

@DF6GL
ZitatWeiterhin solltest Du ein ADP-Projekt erstellen und auf den MS-SQL-Server direkt zugreifen

welche Vorteile hat ein direkter zugriff?
Titel: Re: MS SQL 2005 express DateTime Felder mit VBA beschreiben
Beitrag von: DF6GL am Dezember 29, 2011, 19:18:02
Hallo,

dann aktiviere noch die Bestätigungs-Meldungen in den Optionen bei Bearbeiten/Suchen

Titel: Re: MS SQL 2005 express DateTime Felder mit VBA beschreiben
Beitrag von: database am Dezember 29, 2011, 22:09:42
Hallo,

hier - strDate = Format(Now, "\#yyyy\-mm\-dd hh:mm:ss\#") - kommt 2x 'mm' vor, was m.E. Probleme verursachen wird.

versuch statt dessen mal folgende Sytax:

strDate = Format(Now, "yyyy\-mm\-dd hh:nn:ss")

bzw.

strDate = Format(Now, "yyyymmdd hh:nn:ss")

oder auch

strDate = Format(Now, "mm\/dd\/yyyy hh:nn:ss")


EDIT: die Rauten müssen raus - es funktionieren alle Varianten der Formatierung
Titel: Re: MS SQL 2005 express DateTime Felder mit VBA beschreiben
Beitrag von: daolix am Dezember 30, 2011, 01:14:41
Zitat von: DF6GL am Dezember 29, 2011, 16:08:33
Hallo,

versuch mal:

strDate = Format(Now, "yyyymmdd hh:mm:ss")


und

"values(" & Wert1 & ", '" & strDate & "');"



Diesem Vorschlag von DF6GL jetzt folgend sollte dein code etwa so ausschauen:

strDate = Format(Now, "yyyymmdd hh:mm:ss")
       strSql = "insert into dbo_T_LoggingData(MWCounter,MWDateTime) " & _
            "values(" & Wert1 & ", '" & strDate & "');"
           
        DoCmd.SetWarnings False
        DoCmd.RunSQL strSql
        DoCmd.SetWarnings True


Man beachte hier die eingefärbten Hochkommas: "values(" & Wert1 & ", '" & strDate & "');"

Titel: Re: MS SQL 2005 express DateTime Felder mit VBA beschreiben
Beitrag von: fo_juergen am Januar 01, 2012, 22:38:30
Hallo,

Problem gelöst, VBA - Code war korrekt, lag an meinem SQL Server.

Danke für die Hilfe.
Titel: Re: MS SQL 2005 express DateTime Felder mit VBA beschreiben
Beitrag von: database am Januar 02, 2012, 21:08:43
Hallo,

ZitatCode war korrekt, lag an meinem SQL Server

und das obwohl der SQL-Server die Rauten nicht anerkennt  ::)