c147258
- - - - - - -
|
AUSFÜHRUNG: 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
AUFRUF: 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
FEHLER: Laufzeitfehler Zeile 1: Falsche Syntax in der Nähe von ','. Wenn ich debugge zeigt er mir eben an das beim Ausführen des Befehls target.Execute sql ein Fehler auftritt. Folgendes ist im Direktfenster 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)
Sollte doch eigentlich passen, aber irgendwie bekomme ich den Fehler nicht weg
|
watchout
Legendundead
|
mach' mal um alle Feldnamen Backticks (`)
|
c147258
- - - - - - -
|
thx..habs schon
es gibt keine DOUBLE Werte bei MSSQL...
|
watchout
Legendundead
|
thx..habs schon
es gibt keine DOUBLE Werte bei MSSQL... mist - wie peinlich, das hätte mir auch auffallen müssen
|