Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1200to1204
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

ADO; SQL

ADO; SQL
Jörn
Hallo liebe Excel-Sympatisanten,
im Zusammenhang mit dem Versuch, mir ADO beizuprimeln, bekam ich diese Fehlermeldung?
[Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben
und das obwohl:
-Datenquellennamen vergeben?
-Microsoft ActiveX Data Objects 2.8 Library - Verweis gesetzt
Kann mir bitte jemand einen Wink geben, woran das liegen könnte? Wo bekomme ich eventuell besagten "Standardtreiber" her?
Vielen Dank für Eure Tips
Gruß
Jörn

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: ADO; SQL
25.02.2011 20:42:44
Josef

Hallo Jörn,
vielleicht solltest du mal deinen Code zeigen.

Gruß Sepp

AW: ADO; SQL
25.02.2011 20:46:42
Jörn
Hallo Sepp,
ja klar, war mir nicht sicher, ob Meldung schon eindeutig ist.
Um Urheberrechten gerecht zu werden: Code habe ich bei "Online-Excel" gefunden ...
Public Sub EarlyAdoTest()
Dim oAdoConnection As New ADODB.Connection, oAdoRecordset As New ADODB.Recordset
Dim sAdoConnectString As String, sPfad As String
Dim sQuery As String
On Error GoTo Fehler
sPfad = ThisWorkbook.FullName
sAdoConnectString = "DRIVER={Microsoft Excel Driver (*.xls*)};ReadOnly=1;DBQ=" & sPfad
oAdoConnection.Open sAdoConnectString
sQuery = "Select Max ([Wert]) from [Quelle$] where Artikel='Hammer'"
With oAdoRecordset
.Source = sQuery
.ActiveConnection = oAdoConnection
.Open
MsgBox .Fields(0).Value
End With
Aufraeumen:
On Error Resume Next ' Sehr Faul
oAdoRecordset.Close
oAdoConnection.Close
Set oAdoRecordset = Nothing
Set oAdoConnection = Nothing
Exit Sub
Fehler:
MsgBox "Fehler: " & Err.Description
Resume Aufraeumen
End Sub
Gruß
Jörn
Anzeige
AW: ADO; SQL
25.02.2011 21:28:16
Josef

Hallo Jörn,
das Beispiel funktioniert bei mir auch nicht, ich verwende nie EarlyBinding.
Ich mach das z. B. so.
Public Sub ReadFromFile_ADO()
  'Daten nach Kriterium
  Dim objADO As Object
  Set objADO = ExcelTable("E:\Forum\Ado1a.xls", "Select Max ([Wert]) from [Quelle$] where Artikel='Hammer'")
  Range("A2").CopyFromRecordset objADO
  objADO.Close
End Sub


Public Function ExcelTable(ByRef Path As String, WhereString As String) As Object
  Dim Con As String
  
  If Mid(Path, InStrRev(Path, ".") + 1) = "xls" Then
    Con = "Provider=Microsoft.Jet.OLEDB.4.0;" _
      & "Extended Properties=Excel 8.0;" _
      & "Data Source=" & Path & ";"
  ElseIf Mid(Path, InStrRev(Path, ".") + 1) Like "xls?" Then
    Con = "Provider=Microsoft.ACE.OLEDB.12.0;" _
      & "Extended Properties=""Excel 12.0;HDR=YES"";" _
      & "Data Source=" & Path & ";"
  Else
    Exit Function
  End If
  Set ExcelTable = CreateObject("ADODB.Recordset")
  ExcelTable.Open WhereString, Con, 3, 1
End Function


Gruß Sepp

Anzeige
AW: ADO; SQL
25.02.2011 21:54:22
Jörn
Hallo Sepp,
wieder mal ein Hammer-Code,
in der letzten Zeile der Fkt steigt er bei mir aus:
ExcelTable.Open WhereString, Con, 3, 1
und genau bei dieser ist mir die Syntax nicht ganz klar:
-welche Parameter bedienen 3 und 1?
-welchen Wert sollte WhereString hier haben? (kommt vorher nicht vor)
-muß ExcelTable unbedingt geöffnet werden oder geht das auch geschlossenerweise (er liest ja - so wie ich das mit meinen Anfängerkenntnissen verstehe - das Recordset vorher schon aus und dann in das TB ein?
Vielen Dank für Deine Beschäftigung mit dem Problem
Gruß aus d(ein)er Bundeshauptsstadt
Jörn
Anzeige
AW: ADO; SQL
25.02.2011 22:05:21
Josef

Hallo Jörn,
den Dateinamen hast du angepasst?
"WhereString" kommt vorher schon vor

sQuery = "Select Max ([Wert]) from [Quelle$] where Artikel='Hammer'"
die beiden letzten Parameter stehen für "adOpenKeyset" bzw. "adLockOptimistic" und werden für die .Open-Anweisung benötigt.

Gruß Sepp

Anzeige
AW: ADO; SQL
25.02.2011 22:13:57
Jörn
Hallo Sepp,
ja den Pfad habe ich angepasst (ohne TB Namen, da ja "Quelle" vergeben)
kann in Deinem Code das hier
sQuery = "Select Max ([Wert]) from [Quelle$] where Artikel='Hammer'"
gar nicht finden? Hab irgendwie Scheuklappen?
allerdings auch wenn: müsste nicht irgendwo eine zuordnung alla sQuery = WhereString?
Danke und Grüße
Jörn
AW: ADO; SQL
25.02.2011 22:20:03
Josef

Hallo Jörn,
"sQuery = ..." hieß es in dem von dir geposteten Code.
Also mit der im Beispiel von Online-Excel verwendeten Datei und dem Tabellenblatt "Quelle" funktioniert es bei mir tadellos, weiß nicht, was du falsch/anders gemacht hast.

Gruß Sepp

Anzeige
AW: ADO; SQL
25.02.2011 22:28:27
Jörn
Hallo Sepp,
ich werd wohl was vermengt haben. Setze mich morgen frisch ans Werk, vielleicht ist die Brille dann klarer. Werd Dir auf alle Fälle dann nochmal ein kurzes Feedback geben.
Vielen Dank für Deine Unterstützung und ein schönes Wochenende!
Gruß
Jörn
AW: ADO; SQL
27.02.2011 13:59:39
Jörn
Hallo Sepp,
habs gestern nicht mehr geschafft.
Der Code hat zwar auch gestern nicht funktioniert aber ich habe nach der Suche "WhereString" einige Beiträge (u.a. von dir) gefunden, in denen der Code ähnlich aufgebaut war, wo aber das File über Variablen und ein Tabellenbereich (statt eines "Namens") angesprochen wurde. Das hat geklappt.
Daher war mir trotzdem gut geholfen und ich habe wieder einen neues Thema für mich entdeckt. Die Möglichkeiten von ADO sind sehr spannend. Ich werde mich weiter damit beschäftigen
Danke Dir sehr
Tschüß
Jörn
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige