URL: https://www.overclockers.at/coding-stuff/sql_datenbank_statement_ausfuehrung_unter_vb_146965/page_1 - zur Vollversion wechseln!
AUSFÜHRUNG:
Code:Public Sub CopyDB(source As Database, target As ADODB.Connection) Dim tdf As TableDef Dim fld As Field Dim sql As String, tn ' Alle Tabellen in der Zieldatenbank anlegen For Each tdf In source.TableDefs If UCase(Left(tdf.Name, 4)) <> "MSYS" Then sql = "" ' Feldliste erstellen For Each fld In tdf.Fields Select Case fld.Type Case dbBoolean: tn = "BIT" Case dbByte, dbBigInt, dbInteger, dbLong: tn = "INTEGER" Case dbDate, dbTime, dbTimeStamp: tn = "DATETIME" Case dbDecimal, dbDouble, dbFloat, dbCurrency, dbNumeric, dbSingle: tn = "DOUBLE" Case dbChar, dbText, dbMemo: tn = "TEXT" Case dbGUID, dbBinary, dbVarBinary, dbLongBinary: tn = "BINARY" Case Else: Err.Raise vbObjectError, "frmODBCConvert::CopyDB", "Illegal data field type" End Select sql = sql & IIf(sql <> "", ", ", "") & fld.Name & " " & tn Next fld sql = "CREATE TABLE " & tdf.Name & " (" & sql & ")" Debug.Print sql target.Execute sql -> FEHLER!! (bzw. vorher schon) End If Next tdf End Sub
Code:Set con = New ADODB.Connection con.ConnectionString = "Provider=SQLOLEDB.1; User ID=dbo; Password=chk24; " & _ "Integrated Security=SSPI; Initial Catalog=chk24; Data Source=127.0.0.1" con.Open ' Datenbanken exportieren CopyDB dbsGlobalArtikel, con
Code:CREATE TABLE Artikel (Nummer TEXT, Mengeneinheit_Nummer TEXT, NummerNeu TEXT, NummerAlt TEXT, Zeichnung_Nummer TEXT, Lieferzeit INTEGER, ArtikelGruppe_Nummer TEXT, ArtikelStatus_Nummer TEXT, ArtikelArt_Nummer TEXT, _Mod DATETIME, Ursprungsland_Nummer TEXT, ZolltarifNr TEXT, Gewicht DOUBLE, Gewichtseinheit_Nummer TEXT, Erloeskonto TEXT, _MODUser TEXT, _INSUser TEXT)
mach' mal um alle Feldnamen Backticks (`)
thx..habs schon
es gibt keine DOUBLE Werte bei MSSQL...
mist - wie peinlich, das hätte mir auch auffallen müssenZitat von c147258thx..habs schon
es gibt keine DOUBLE Werte bei MSSQL...
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025