MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > SQL
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 16.04.2018, 07:42   #1
Mokkie
MOF Koryphäe
MOF Koryphäe
Standard T-SQL : MSSQL 2016 - Datum von Access nach MS SQL

Schönen guten Morgen,

ich versuce Daten aus Access in meine MS SQL Tabelle zu bekommen.

Code:

INSERT INTO dbo_Zv ( ZV_ID, TRANSART_ID, CARDTYPE_ID, ZVERROR_ID, TERMINAL_ID, Mandatsref, PaymentDate, PaymentTime, Pan, Payment, BillNo, Trace, TraceRef, Month, RgNo )
SELECT ZV.ZV_ID, TRANSART_ID, CARDTYPE_ID, ZVERROR_ID, TERMINAL_ID, Mandatsref, Format([ZV_DATE],"yyyy/mm/dd") AS myDate, ZV_TIME, ZV_PAN, ZV_TURNOVER, ZV_BILLNR, ZV_TRACE, ZV_TRACERef, ZV_MONTH, RG_VALUE
FROM ZV;
Ich bekomme nur Fehlermeldungen, was mach ich denn da mit dem datum falsch?
ODBC Aufruf fehlgewschlagen, die steht aber, kann ja die Tabellen ohne weiteres öffnen. Ich denke ich mach da mit dem Datum was falsch.
Ich habe den String auch schon soweit egändert, dass ich nur bis mydate anfügen will, funktioniert aber auch nicht. Selbe Fehlermeldung.
Das feld PaymentDate ist vom Typ
Code:

Date
, Datime hatte ich aber auch schon probiert.

__________________

Gruß, Babsi
Mokkie ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.04.2018, 08:19   #2
hcscherzer
MOF Guru
MOF Guru
Standard

Mal so versucht?
Code:

Format([ZV_DATE],"yyyy-dd-mm")

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.04.2018, 08:28   #3
Mokkie
Threadstarter Threadstarter
MOF Koryphäe
MOF Koryphäe
Standard

Hallo Hans-Christian,

ja, das hatte ich auch schon probiert. Sorry, hätte ich mit aufführen sollen.
KLappt trotzdem nicht.

__________________

Gruß, Babsi
Mokkie ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.04.2018, 09:50   #4
Mokkie
Threadstarter Threadstarter
MOF Koryphäe
MOF Koryphäe
Standard

Ich habe jetzt die Accesstabelle nach SQl exportiert.
Hm. finde ich zwar nicht so schön und ich will wissen wiesoe das nicht geklappt hat.

Aus dem Feld, wo eigentlichz nur ein Datum drin steht wurde ein

Zitat:

datetime

gemacht. Wieso denn nicht Date?

__________________

Gruß, Babsi
Mokkie ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.04.2018, 19:07   #5
Josef P.
MOF Guru
MOF Guru
Standard

Hallo!

Zitat:

Code:

INSERT INTO dbo_Zv ( ZV_ID, ..., PaymentDate, ...)
SELECT ZV.ZV_ID, ... , Format([ZV_DATE],"yyyy/mm/dd") AS myDate,...
FROM ZV;

Warum konvertierst du das Datum in einen String, um ihn dann an ein Datumsfeld zu übergeben?
Mit einem aktuellen ODBC-Treiber ("Native Client ...") sollte der Date-Datentyp im SQL-Server eigentlich schon als Datum erkannt werden.
Wie sieht der Datentyp von PaymentDate in der verknüpften Tabelle (im Entwurf) aus?

Zitat:

Aus dem Feld, wo eigentlichz nur ein Datum drin steht wurde ein datetime

Die enthaltenen Daten werden vom Assistenten vermutlich nicht berücksichtigt, sonst könnte noch die Frage aufkommen: warum macht er aus dem Textfeld, in dem nur Postleitzahlen stehen, kein Zahlenfeld?
Es wird nur der Datentyp vom Feld berüksichtigt werden. Das Feld ist auch in der Access-Tabelle ein DateTime, da es Date in Jet/ACE nicht gibt.

mfg
Josef

Geändert von Josef P. (16.04.2018 um 19:19 Uhr).
Josef P. ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.04.2018, 09:06   #6
Mokkie
Threadstarter Threadstarter
MOF Koryphäe
MOF Koryphäe
Standard

Hallo Josef,

Zitat:

Warum konvertierst du das Datum in einen String, um ihn dann an ein Datumsfeld zu übergeben?

Aber das ist doch korrekt :"yyyy/mm/dd" so denke ich.

Ich weiß jetzt nicht was für einen Treiber ich habe, schau ich noch nach, aber das Datum in Access liegt doch in deutscher Form vor und auf dem SQL ist es nicht so, da muss ich es doch ändern, oder? Also im Moment wird da gar nichts erkannt. Da wird nur Blödsinn in die Tabellen geschrieben.

Ich habe die felder auf dem SQL server noch mal geändert:
Code:

ZvDate	datetime	
ZvTime	time(7)
Es sind zwei Felder in der Accestabelle, eines enthält nur ein Datum das aneder nur die Zeit.
Ich habe jetzt die Datenbtypen auf dem SQL noch mal in
datetime und time geändert und füge gerade noch mal an.
Ich warte aufs Ergebniss. Wenn ich die Abfrage über jet laufen lasse funktioniert es, Pass Through geht nicht und zwar bekomme ich Fehlermeldungen ab ZvDate, also dem Datumsfeld.

Ich schau noch wegen dem Treiber.
Danke erst mal...

__________________

Gruß, Babsi
Mokkie ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.04.2018, 11:23   #7
Josef P.
MOF Guru
MOF Guru
Standard

Wenn du das Datum als String für einen SQL-String haben willst, benötigst du Format.
du schreibst aber eine SQL-Anweisung, in der direkt auf das Datenfeld verwiesen wird. Daher muss keine Umwandlung in String erfolgen. Das sollte der ODBC-Treiber auch so können.

Code:

INSERT INTO dbo_Zv ( ZV_ID, ..., PaymentDate, ...)
SELECT ZV.ZV_ID, ... , ZV_DATE AS myDate,...
FROM ZV;
Bezüglich "über pass-through": wie willst du in einer PT-Abfrage auf die Access-Tabelle (ZV) zugreifen?

mfg
Josef

Geändert von Josef P. (17.04.2018 um 11:25 Uhr).
Josef P. ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.04.2018, 11:33   #8
Mokkie
Threadstarter Threadstarter
MOF Koryphäe
MOF Koryphäe
Standard

Es liegt wohl alles an meiner
ODBC Verbinung
Code:

ODBC;DRIVER=ODBC Driver 13 for SQL Server;SERVER=AFC-MSSQL2016V;UID=Administrator;Trusted_Connection=Yes;
Mit der stimmt was nicht. Muss die denn anders sein als bei den Tabellen?

__________________

Gruß, Babsi
Mokkie ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.04.2018, 12:57   #9
Mokkie
Threadstarter Threadstarter
MOF Koryphäe
MOF Koryphäe
Standard

O.K. ich habs jetzt erst mal hinbekommen.

Bei einem delete z.B. Dbname.SchemaName.TabellenName
dann ging's

__________________

Gruß, Babsi
Mokkie ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.04.2018, 12:26   #10
sonic8
MOF Profi
MOF Profi
Standard

Zitat: von Mokkie Beitrag anzeigen

Bei einem delete z.B. Dbname.SchemaName.TabellenName
dann ging's

Den SchemaName explizit anzugeben ist grundsätzlich zu empfehlen. Der Dbname sollte allerdings nicht nötig sein.

Zitat: von Mokkie Beitrag anzeigen

Es liegt wohl alles an meiner
ODBC Verbinung

Code:

ODBC;DRIVER=ODBC Driver 13 for SQL Server;SERVER=AFC-MSSQL2016V;UID=Administrator;Trusted_Connection=Yes;

Genau. Dort fehlt Database. Damit wird zu der Standard-Datenbank für den jeweiligen User verbunden.
Das erklärt, warum du oben den DBName gebraucht hast. - Das sollte in den meisten Fällen besser im Connection String definiert sein.

__________________

Neues Access 2019 Feature angekündigt: Modern Charts
sonic8 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:58 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.