Danke!!!
Mit all den Hinweisen klappt es endlich.
Ich glaube mein letztes Problemchen lag am Connection String und an der Schreibweise im update.
Dim Excel_Datei As String = ""
Dim Excel_Tabelle As String = ""
Dim BJ_von As String = ""
Dim BJ_bis As String = ""
Dim KBA As String
Dim Such As String = ""
Dim MPZ_Befehl As String = ""
Dim BefOk As Boolean = False
Dim CB_MPZ_Quelle As SqlDataReader
Dim CB_OLE_ConString As String
Dim CB_OLE_Dataset As System.Data.DataSet
Dim CB_OLE_CON As System.Data.OleDb.OleDbConnection
Dim CB_OLE_Adapter As System.Data.OleDb.OleDbDataAdapter
CB_OLE_ConString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
CB_QuellDatei.Text & ";Extended Properties=" & Chr( _
34) & _
"Excel 8.0;HDR=YES;" & Chr(34) & ";"
CB_OLE_CON = New System.Data.OleDb.OleDbConnection(CB_OLE_ConString)
CB_OLE_CON.Open()
CB_OLE_Dataset = New System.Data.DataSet()
CB_OLE_Adapter = New System.Data.OleDb.OleDbDataAdapter("select * from" & _
"[" & _ CB_Excel_TabName.Text & "$] where NOT IsNull(ID)", CB_OLE_CON)
CB_OLE_Adapter.Fill(CB_OLE_Dataset)
CB_OLE_Dataset.Tables.Add(CB_Excel_TabName.Text)
Dim ROW As DataRow
'Dim COL As DataColumn
CB_MPZSql_Com = CB_MPZConn.CreateCommand
If CB_MPZOpenOK = False Then
CB_MPZConn.Open()
CB_MPZConn.ChangeDatabase("MPZ_TTC")
CB_MPZConOK = True
CB_MPZOpenOK = True
End If
For Each ROW In CB_OLE_Dataset.Tables(0).Rows
BJ_von = ""
BJ_bis = ""
KBA = ""
Such = ""
If Not DBNull.Value.Equals(ROW("ID")) Then
If CInt(Mid(Trim(ROW("Baujahr")), 4, 2)) < 10 Then
BJ_von = Mid(Trim(ROW("Baujahr")), 1, 3) & "20" & Mid(Trim( _
ROW("Baujahr")), 4, 2)
Else
BJ_von = Mid(Trim(ROW("Baujahr")), 1, 3) & "19" & Mid(Trim( _
ROW("Baujahr")), 4, 2)
End If
If CInt(Mid(Trim(ROW("Baujahr")), Len(Trim(ROW("Baujahr"))) - _
1, 2)) < 10 Then
BJ_bis = Mid(Trim(ROW("Baujahr")), Len(Trim(ROW( _
"Baujahr"))) - 4, 3) & "20" & Mid(Trim(ROW("Baujahr")), Len( _
Trim(ROW("Baujahr"))) - 1, 2)
Else
BJ_bis = Mid(Trim(ROW("Baujahr")), Len(Trim(ROW( _
"Baujahr"))) - 4, 3) & "19" & Mid(Trim(ROW("Baujahr")), _
Len(Trim(ROW("Baujahr"))) - 1, 2)
End If
Such = Replace(Trim(Mid(ROW("Modell"), 5, Len(ROW("Modell")))), _
" ", "")
MPZ_Befehl = "select KBA FROM SHOP_Pkw_001 where replace(" & _
"Bezeichnung,' ','')='" & Such & _
"' and BJvon='" & BJ_von & "' and BJbis='" & _
BJ_bis & "'"
CB_MPZSql_Com.CommandText = MPZ_Befehl
CB_MPZ_Quelle = CB_MPZSql_Com.ExecuteReader
If CB_MPZ_Quelle.HasRows = True Then
While CB_MPZ_Quelle.Read
KBA = CB_MPZ_Quelle.GetValue(0)
End While
End If
If KBA <> "" Then
ROW.BeginEdit()
ROW("KBANr") = KBA
ROW.EndEdit()
Else
ROW.BeginEdit()
ROW("KBANr") = " "
ROW.EndEdit()
End If
CB_MPZ_Quelle.Close()
End If
Next ROW
Dim updateSQL As String = "Update [" & CB_Excel_TabName.Text & "$] Set" & _
"KBANr=? Where ID=? "
Dim updateCmd As New System.Data.OleDb.OleDbCommand(updateSQL, _
CB_OLE_CON)
updateCmd.Parameters.Add("P1", OleDb.OleDbType.VarChar, 20, "KBANr")
updateCmd.Parameters.Add("P2", OleDb.OleDbType.Integer, 32, "ID")
CB_OLE_Adapter.UpdateCommand = updateCmd
CB_OLE_Adapter.Update(CB_OLE_Dataset) ', CB_Excel_TabName.Text
CB_OLE_CON.Close() |