Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1356to1360
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ADODB zweiter Wert Überschrift fehlt, warum?

ADODB zweiter Wert Überschrift fehlt, warum?
21.04.2014 18:43:50
Raphael_H
Hallo zusammen,
ich habe in einem Beitrag gesehen, dass es die Möglichkeit von ADODB gibt. Für vieles was ich so erstelle mit VBA wäre das eine grosse Hilfe für mich.
Jetzt habe ich mir eine Datei zusammengestellt um zu testen wie es grundsätzlich funktioniert.
Wenn ich nun die Datenabfrage starte füllt er mir die Tabelle, aber mir fehlt in der Überschriftenzeile der zweite Wert. Kann mir jemand sagen wieso?
https://www.herber.de/bbs/user/90281.zip
Danke und Gruess
Raphael

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ADODB zweiter Wert Überschrift fehlt, warum?
21.04.2014 21:25:53
Tino
Hallo,
dies liegt an der Formatierung der Spalte.
Die Überschrift ist Text (Du liest ohne ein) der Rest ist Zahl da kommt die Abfrage durcheinander!
Sub xx()
Dim rec As Object
Dim cnt As Object
Dim sAdoConnectString As String, sPfad As String
Dim sQuery As String
Dim n
Set cnt = CreateObject("Adodb.connection")
Dim oZielStartRange As Range
sPfad = ThisWorkbook.Path & "\ado1.xls" 'HIER ALLENFALLS NOCH DEN PFAD ANPASSEN
Set oZielStartRange = ThisWorkbook.Worksheets("Tabelle1").Range("a1")
sAdoConnectString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};HDR=1; _
DBQ=" & sPfad
Set rec = CreateObject("ADODB.RECORDSET")
cnt.Open sAdoConnectString
'sQuery = "Select Max ([Wert]) from [Quelle$] where Artikel='Hammer'"
sQuery = "Select * From [Quelle$A2:D" & 65000 & "]"
With rec
.Source = sQuery
.ActiveConnection = cnt
.Open
'MsgBox .Fields(1).Value
End With
Call AusgabePerCopyFromRecordset(rec, oZielStartRange)
Aufraeumen:
On Error Resume Next ' Sehr Faul
rec.Close
cnt.Close
Set rec = Nothing
Set cnt = Nothing
Exit Sub
Fehler:
MsgBox "Fehler: " & Err.Description
Resume Aufraeumen
End Sub
Private Sub AusgabePerCopyFromRecordset(DasRecordSet As Object, _
StartAusgabe As Range)
Dim n&
StartAusgabe.CurrentRegion.Clear
For n = 0 To DasRecordSet.Fields.Count - 1
StartAusgabe.Offset(0, n) = DasRecordSet.Fields(n).Name
Next n
StartAusgabe.Offset(1, 0).CopyFromRecordset DasRecordSet
End Sub
Gruß Tino

Anzeige
AW: ADODB zweiter Wert Überschrift fehlt, warum?
22.04.2014 00:34:26
Raphael_H
Hallo Tino,
danke für deine schnelle Antwort. Jetzt habe ich noch eine Frage:
Wenn ich den Bereich begrenze so wie du mit

sQuery = "Select * From [Quelle$A2:D" & 65000 & "]"
dann benennt er die Spalten (fields) korrekt.
Ohne Begrenzung nimmt er immer die Zeile zwei, egal was ich bei HDR eingebe... Ist das immer so, muss ich grundsätzlich eine Begrenzung 65k oder 1 Mio eingeben?
Gruess
Raphael

AW: ADODB zweiter Wert Überschrift fehlt, warum?
22.04.2014 09:11:48
Tino
Hallo,
es handelt sich ja um eine Datenbankabfrage und eine
Datenbank ist in der Regel eine Überschrift und jeweils eine Spalte in einem bestimmten Format.
(Text, Zahlen, Währung , Datum usw.)
Wenn Du jetzt die komplette Spalte verwendest,
zBsp. Quelle$A:D ist die erste Zeile die Überschrift und diese ist bei dir leer.
Danach kommt in Spalte C ein Texteintrag gefolgt von Zahlen und da kommt diese Abfrage durcheinander.
Jetzt können wir sagen unsere Datenbank beginnt in Zeile 2,
dann ist der Texteintrag die Überschrift und der Rest wieder im einheitlichen Format Zahlen.
Wir wissen ja das Excel vor der Version xl2007 nur 65536 Zeilen
zur Verfügung hat und danach 1048576 Zeilen.
Also können wir den Bereich so festlegen.
sQuery = "Select * From [Quelle$A2:D" & IIf(LCase(Right$(sPfad, 4)) = ".xls", 65536, 1048576) & "]"
Gruß Tino

Anzeige
AW: ADODB zweiter Wert Überschrift fehlt, warum?
22.04.2014 10:28:21
Matze
Hi Ihr Beiden,
hab mal reingeschnuppert da ich mit ADODB noch nicht gearbeitet habe.
Alles Neuland für mich,...
Zur Fragestellung von Raphael
From [Quelle$A2: startet in der 2ten Zeile ist doch klar das er dort die erste Zeile ignoriert.
Heftig finde ich nur das er mit den Formaten nicht klar kommt, danke für den Input Tino.
Muss die Begrenzung gemacht werden was die 65000 Zeilen betrifft?
Verstehe ich dies so das wenn man dann mit höherer Zeilenzahl 1,...Mill. arbeitet er von unten nach oben berechnet im Sinne von ( finde letzte benutzte Zeile ) ?
Kopfkratz,...
Gruß Matze

Anzeige
AW: ADODB zweiter Wert Überschrift fehlt, warum?
22.04.2014 11:09:08
Tino
Hallo,
ADODB ist ja eigendlich für Datenbanken vorgesehen und
in Access muss man einer Spalte ein Format vorgeben.
Und wenn diese nun auf Zahl gestellt ist, kann nicht auf einmal Text vorhanden sein.
Gruß Tino

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige