![]() |
|
![]() |
#1 |
![]() MOF Koryphäe |
![]() 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; 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 __________________ Gruß, Babsi |
![]() |
![]() ![]() |
![]() |
#2 |
![]() MOF Guru |
![]() 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. |
![]() |
![]() ![]() |
![]() |
#3 |
Threadstarter
![]() ![]() MOF Koryphäe |
![]() Hallo Hans-Christian,
ja, das hatte ich auch schon probiert. Sorry, hätte ich mit aufführen sollen. KLappt trotzdem nicht. __________________ Gruß, Babsi |
![]() |
![]() ![]() |
![]() |
#4 |
Threadstarter
![]() ![]() MOF Koryphäe |
![]() 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 __________________ Gruß, Babsi |
![]() |
![]() ![]() |
![]() |
#5 |
![]() MOF Guru |
![]() Hallo!
Zitat: Code: INSERT INTO dbo_Zv ( ZV_ID, ..., PaymentDate, ...) SELECT ZV.ZV_ID, ... , Format([ZV_DATE],"yyyy/mm/dd") AS myDate,... FROM ZV; 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 ![]() 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 __________________ Live Meeting: Virtueller Access-StammtischNeues Video: Filterformular mit Add-In erstellen Code-Bibliothek für Access-Entwickler • SQL-Text für Filterbedingung erstellen • FilterForm-Assistent AccUnit - Testen von Access-Anwendungen Geändert von Josef P. (16.04.2018 um 19:19 Uhr). |
![]() |
![]() ![]() |
![]() |
#6 |
Threadstarter
![]() ![]() MOF Koryphäe |
![]() Hallo Josef,
Zitat: Warum konvertierst du das Datum in einen String, um ihn dann an ein Datumsfeld zu übergeben? 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) 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 |
![]() |
![]() ![]() |
![]() |
#7 |
![]() MOF Guru |
![]() 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; mfg Josef __________________ Live Meeting: Virtueller Access-StammtischNeues Video: Filterformular mit Add-In erstellen Code-Bibliothek für Access-Entwickler • SQL-Text für Filterbedingung erstellen • FilterForm-Assistent AccUnit - Testen von Access-Anwendungen Geändert von Josef P. (17.04.2018 um 11:25 Uhr). |
![]() |
![]() ![]() |
![]() |
#8 |
Threadstarter
![]() ![]() MOF Koryphäe |
![]() 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; __________________ Gruß, Babsi |
![]() |
![]() ![]() |
![]() |
#9 |
Threadstarter
![]() ![]() MOF Koryphäe |
![]() O.K. ich habs jetzt erst mal hinbekommen.
Bei einem delete z.B. Dbname.SchemaName.TabellenName dann ging's __________________ Gruß, Babsi |
![]() |
![]() ![]() |
![]() |
#10 |
![]() MOF Profi |
![]() Den SchemaName explizit anzugeben ist grundsätzlich zu empfehlen. Der Dbname sollte allerdings nicht nötig sein.
Es liegt wohl alles an meiner Code: ODBC;DRIVER=ODBC Driver 13 for SQL Server;SERVER=AFC-MSSQL2016V;UID=Administrator;Trusted_Connection=Yes; 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 |
![]() |
![]() ![]() |
![]() |
#11 |
Threadstarter
![]() ![]() MOF Koryphäe |
![]() Hallo Sonic8,
ah, O.K. Ich werde das einbauen. Melde mich dann wieder __________________ Gruß, Babsi |
![]() |
![]() ![]() |
![]() |
#12 |
Threadstarter
![]() ![]() MOF Koryphäe |
![]() Hallo Josef,
O.K. sorry, irgendwie habe ich deinen Beitrag übersehen. Ich habe gedacht, ACCESS ist in der Form: tag/Monat/Jahr und an den SQL kann ich nur Jahr/Monat/Tag übergeben, deswegen der Versuch mir Format, das eben umszustellen. Ich habe das jetzat alles mal geändert, und versuche die Felder so einzulesen wie sie sind, ich bekomme aber immer noch die selbe Meldung, Zitat: Microsoft ODBC DRIVER 13[SQL Server] for SQL Ungültiger Spaltenname ZV_DATE Ich stze mal den SQL Srtring mit rein: Code: INSERT INTO dbo.Zv ( ZV_ID, TRANSART_ID, CARDTYPE_ID, ZVERROR_ID, TERMINAL_ID, Mandatsref,ZvDate, ZvTime, ZvPan, ZvTurnover,ZvBillNr, ZvTrace, ZvTraceRef, ZvIntime, ZvUnique, ZvMonth, RgValue) SELECT ZV_ID, TRANSART_ID, CARDTYPE_ID, ZVERROR_ID, TERMINAL_ID, Mandatsref, ZV_DATE , ZV_TIME, ZV_PAN, ZV_TURNOVER, ZV_BILLNR, ZV_TRACE, ZV_TRACERef,ZvIntime,ZV_UNIQUEKEY ,ZV_MONTH, RG_VALUE FROM ZV; __________________ Gruß, Babsi |
![]() |
![]() ![]() |
![]() |
#13 |
Threadstarter
![]() ![]() MOF Koryphäe |
![]() Hallo Sonic8,
der String sind nun wie folgt aus: Code: ODBC;DRIVER=ODBC Driver 13 for SQL Server;SERVER=AFC-MSSQL2016V;UID=Administrator;Trusted_Connection=Yes;DATABASE=abc; __________________ Gruß, Babsi |
![]() |
![]() ![]() |
![]() |
#14 |
Threadstarter
![]() ![]() MOF Koryphäe |
![]() Hallo Josef,
bezüglich deines beitrags #7 Ja, das war's oh man, ![]() ![]() ![]() ![]() Josef, hab dank ![]() __________________ Gruß, Babsi |
![]() |
![]() ![]() |
![]() |
#15 |
Threadstarter
![]() ![]() MOF Koryphäe |
![]() Hallo Josef,
es hat geklappt, mit dem Anfügen der Accessdaten an die SQL-Tabelle. Alle Daten sind sauber rüber. Ich muss das Datum überhaupt nicht anfassen, SQl rafft das so ![]() O.K. das ist schon ewig her, damal mit MySql war es anders.(damals ensprciht ewtas 12 Jahre) Hallo sonic8, ich versuche jetzt mal eine Pass Through, melde mich dann noch mal. Vielen Dank! __________________ Gruß, Babsi |
![]() |
![]() ![]() |