SQL-Abfrage per DAO und ADO liefert unterschiedliche Ergebnisse
#1
Hallo zusammen,

ich als Access-Novize benötige mal wieder ein paar zielführende Tipps.
Zunächst nochmal zum Hintergrund:
Ziel ist es ein kleines Tool zu entwickeln, mit dem sich "Paletten-/Lagerbestände" nachvollziehen lassen.
Das ganze ist über ein Excel-Frontend und ein Access-Backend realisiert. Also Datenerfassung in Excel und Datenhaltung in Access.
Das Tool soll simultan an mehreren Rechnern (3-6) genutzt werden und so schien die Idee naheliegend, die Umsetzung wie oben beschrieben
zu realisieren. Ich hatte hier bereits schon ein paar Fragen allerdings in der "Excel-Sektion" gestellt.
Grundsätzlich läuft das Tool, ABER nicht uneingeschränkt auf allen Rechnern. Den Zugriff auf Access habe ich,
da ich hier leider erst nach Auftreten der nachfolgend beschriebenen Probleme angefangen habe zu recherchieren Blush , über ADO realisiert.

Code:
Public rst As ADODB.Recordset
Dim AccApp As Object
Dim conn As New ADODB.Connection

Sub DatenbankÖffnen()

   Set AccApp = CreateObject("Access.Application")
   'AccApp.Visible = True
   Set rst = New ADODB.Recordset
   conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & "Data source=" & ThisWorkbook.Path & "\Aufarbeitung.mdb;"
   rst.Open strSQL, conn, adOpenKeyset, adLockOptimistic
   
End Sub

Auf einigen Rechnern erscheint ein Laufzeitfehler sobald Daten aus Access abgerufen werden.

   

Nun habe ich ein wenig recherchiert und herausgefunden, dass seit Office 2007 gewisse Komponenten, welche bei den vorherigen Versionen
noch zum Standard gehörten, von Microsoft aus dem Office Paket entfernt wurden.

https://support.microsoft.com/de-de/kb/244264

Ich habe im weiteren Verlauf der Recherche auch einen Link zu einem von Microsoft angeboten Bugfix gefunden

https://www.microsoft.com/en-us/download...px?id=3671

Das Bugfix wurde durch die IT installiert und, wen wundert es :20: , der Laufzeitfehler tritt immer noch auf.
Im weiteren Verlauf wurden Teile aus dem Office 2000 und 2003 Paket installiert. Eben das in Office 2007 fehlende "Collaboration Data Objects-Paket".
Kein Workaround hat hier geholfen.

Hat jemand von Euch eine Idee oder das gleiche Problem schon einmal gelöst?


Als Plan B habe ich angefangen den Zugriff über DAO zu realisieren mit dem "Erfolg", dass nun zwar keine Fehlermeldung mehr beim Öffnen der Datenbank auftritt, dafür aber
die übergebenen SQL-Strings unterschiedliche bzw. kein Ergebnis liefern. 

Der Zugriff per ADO:
Code:
With UserForm1

   'Listenfeld löschen
   .ListBox1.Clear
   
   'Alle Datensätze anzeigen
   If .TextBox1.Value = "*" Then
       strSQL = "SELECT * FROM Artikel ORDER BY Artikel ASC"
       GoTo weiter
   ElseIf .TextBox2.Value = "*" Then
       strSQL = "SELECT * FROM Artikel ORDER BY CMMF ASC"
       GoTo weiter
   End If
   
   'Nach DS mit Anfangskombinationsuchen
   If .TextBox1.Value <> "*" And .TextBox2 = "" Then
       strSQL = "SELECT * FROM Artikel WHERE Artikel LIKE '" & .TextBox1.Value & "%' ORDER By Artikel ASC"
   ElseIf .TextBox2.Value <> "*" And .TextBox1 = "" Then
       strSQL = "SELECT * FROM Artikel WHERE CMMF LIKE '" & .TextBox2.Value & "%' ORDER By Artikel ASC"
   End If

im weiteren Verlauf werden die Ergebnisse dann in einer Listbox ausgegeben.

Bei einer Abfrage aller Datensätze liefert mir diese per ADO unter Verwendung des nachfolgenden SQL-Strings

Code:
strSQL = "SELECT * FROM Artikel ORDER BY Artikel ASC"

7230 Datensätze.

Die Verwendung des gleichen Strings bei Zugriff per DAO liefert 0 Datensätze :s .
Nachfolgend der Zugriff per DAO:

Code:
Public rst As DAO.Recordset
Dim db As DAO.Database

Sub DatenbankÖffnen()

   Set db = OpenDatabase(ThisWorkbook.Path & "\Aufarbeitung.mdb")
   Set rst = db.OpenRecordset(strSQL, dbOpenDynaset)

End Sub
Da ich wie gesagt Access-Novize bin, muss ich bei Zugriff über DAO das SQL-Statement anders übergeben? Ich dachte SQL wäre an dieser Stelle universell Huh ?!
Oder mache ich einen Fehler beim Öffnen der Datenbank per DAO? Ich bin echt verwirrt und blicke es leider nicht. "Gefährliches Halbwissen"!!! :16:

Danke und Gruß
Ich
Top


Nachrichten in diesem Thema
SQL-Abfrage per DAO und ADO liefert unterschiedliche Ergebnisse - von IchBinIch - 16.08.2016, 13:30

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste