Excel - ADO Zeichenbeschränkung
19.03.2009 16:23:16
Gonzer
Ich lese aus eine, Quellblatt über untenstehendes Makro Spalten ein. Jedoch hört Excel nach der zweiten Spalte auf die Daten zu übernehmen. Lösche ich die Range für die Zelle L2 funktioniert das Makro und es werden alle Daten / Spalten eingelesen. Was mich verwundert, dass es vorher bereits schon mal geklappt hat.
Kann es sein, dass Excel über ADO keine Zellen übernimmt die mehr als 255 Zeichen enthalten?
Wenn ja, kann man diesen Fehler irgendwie übergehen? Sprich, kann ich über ADO Spalten einlesen die Zellen beinhalten mit mehr als 255 Zeichen?
Dim oAdoConnection As Object, oAdoRecordset As Object
Dim sAdoConnectString As String, sPfad As String
Dim sQuery As String
Dim oZielStartRange As Range
On Error GoTo Fehler
sPfad = ThisWorkbook.FullName
Set oZielStartRange = ThisWorkbook.Worksheets("Ideenübersicht").Range("J6")
Set oAdoConnection = CreateObject("ADODB.CONNECTION")
sAdoConnectString = "DRIVER={Microsoft Excel Driver (*.xls)};ReadOnly=1;DBQ=" & sPfad
oAdoConnection.Open sAdoConnectString
Set oAdoRecordset = CreateObject("ADODB.RECORDSET")
sQuery = "Select [" & Range("J2") & "],[" & Range("K2") & "], [" & Range("L2") & "], [" & Range("M2") & "], [" & Range("N2") & "],[" & Range("O2") & "],[" & Range("P2") & "],[" & Range("Q2") & "],[" & Range("R2") & "],[" & Range("S2") & "], [" & Range("T2") & "], [" & Range("U2") & "], [" & Range("V2") & "], [" & Range("W2") & "], [" & Range("X2") & "], [" & Range("Y2") & "], [" & Range("Z2") & "], [" & Range("AA2") & "], [" & Range("AB2") & "], [" & Range("AC2") & "], [" & Range("AD2") & "] , [" & Range("AE2") & "], [" & Range("AF2") & "], [" & Range("AG2") & "], [" & Range("AH2") & "], [" & Range("AI2") & "], [" & Range("AJ2") & "], [" & Range("AK2") & "], [" & Range("AL2") & "], [" & Range("AM2") & "], [" & Range("AN2") & "], [" & Range("AO2") & "], [" & Range("AP2") & "], [" & Range("AQ2") & "], [" & Range("AR2") & "], [" & Range("AS2") & "], [" & Range("AT2") & "], [" & Range("AU2") & "],[" & Range("AV2") & "],[" & Range("AW2") & "] from [Quelle$]"
With oAdoRecordset
.Source = sQuery
.ActiveConnection = oAdoConnection
.Open
Call AusgabePerCopyFromRecordset(oAdoRecordset, oZielStartRange)
End With
Aufraeumen:
On Error Resume Next
oAdoRecordset.Close
oAdoConnection.Close
Set oAdoRecordset = Nothing
Set oAdoConnection = Nothing
Exit Sub
Fehler:
MsgBox "Fehler: " & Err.Description
Resume Aufraeumen
End Sub
Private Sub AusgabePerCopyFromRecordset(DasRecordSet As Object, StartAusgabe As Range)
'StartAusgabe.CurrentRegion.Clear
StartAusgabe.CopyFromRecordset DasRecordSet
End Sub
Danke und Gruß!