Excel-VBA-Verbindung zu Access 2010
Ich habe eine Klasse, die Handhabung meiner Verbindung zu einer Access 2003-Datenbank. Ich würde gerne setup, das gleiche nur für den Zugang 07/10 .accdb-Dateien. Jede Hilfe ist willkommen! Danke!
Hier ist eine Liste meiner Referenzen und eine Kopie der Objekt-Klasse
Referenzen:
- Microsoft Access 14.0 Object Library
- Microsoft DAO 3.6 Object Library
ConnectionClass:
Option Explicit
Private Const DbFile = "\\server\folders\Report.mdb"
Dim OpenConn As DAO.Database
Dim ObjAccess As Object
Private Sub Class_Initialize()
On Error Resume Next
Set OpenConn = DAO.OpenDatabase(DbFile)
If Err.Number = 3024 Then MsgBox "Check connection string in the VBA StaticClass object", vbOKOnly
Set ObjAccess = CreateObject("Access.Application")
ObjAccess.Visible = False
ObjAccess.OpenCurrentDatabase (DbFile)
End Sub
Public Function runSQL(ByVal sql As String) As Recordset
Set runSQL = OpenConn.OpenRecordset(sql)
End Function
Public Function runVolumeReport(ByVal inMacro As String)
ObjAccess.DoCmd.RunMacro inMacro
End Function
Public Function closeResources()
Set ObjAccess = Nothing
OpenConn.Close
End Function
Ich würde auch
Wenn ich den Schalter aus .mdb .accdb-es gibt eine nicht erkannte Fehler. Ich werde versuchen zu Graben, der genaue Fehler später.
Ich hatte die Datei zu öffnen, ging vor und blätterte es auf .accdb. Es kann nicht auf die Funktion " runSQL, gibt Laufzeitfehler 91, Objektvariable oder with-block variable nicht festgelegt. Die Funktion runVolumeReport läuft gut für den Auftakt der makro in der Datenbank aber. Nicht nur wie die Weise, die ich bin versucht zu ziehen die einen Datensatz von Access, wenn ich es ausschalten .accdb-format
Dim OpenConn As Object
statt DAO.Database
. Dies ermöglicht eine unabhängige version code (entfernt aber die nette popups erhalten Sie, wenn Sie die .
nach OpenConn oder DAO)Wenn ich den Schalter aus .mdb .accdb-es gibt eine nicht erkannte Fehler. Ich werde versuchen zu Graben, der genaue Fehler später.
Ich hatte die Datei zu öffnen, ging vor und blätterte es auf .accdb. Es kann nicht auf die Funktion " runSQL, gibt Laufzeitfehler 91, Objektvariable oder with-block variable nicht festgelegt. Die Funktion runVolumeReport läuft gut für den Auftakt der makro in der Datenbank aber. Nicht nur wie die Weise, die ich bin versucht zu ziehen die einen Datensatz von Access, wenn ich es ausschalten .accdb-format
InformationsquelleAutor JKK | 2012-08-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ein Problem in
Class_Initialize
.Weil
On Error Resume Next
Fehlern andere als 3024 ("Datei Konnte nicht gefunden werden") übergeben wird, schweigend und OpenConn nicht einstellen, wie Sie wollen. Später, wenn Sie versuchen, verwenden SieOpenConn
, die Sie auslösen werden, ein weiterer Fehler. Und, in einem Kommentar, Sie berichtet, Sie bekomme eine andere Fehlermeldung mit der Zeile:Leider wegen
On Error Resume Next
, wir wissen nicht, warumOpenDatabase
fehlgeschlagen verlassenOpenConn
unset. DaObjAccess
scheint zu funktionieren wie eine Access-application-Objekt, Sie könnten versuchen, EinstellungOpenConn
zuObjAccess.CurrentDb
.OTOH, Sie kann in der Lage sein zu verzichten
OpenConn
völlig, wenn Sie ändern IhrerunSQL
Funktion wie diese ...InformationsquelleAutor HansUp
Einen Weg zu öffnen, eine accdb (SQL-Server) Tabelle:
Meine Referenzen (Access 2010):
Ich denke, die kritischen würden Sie brauchen, um hinzuzufügen wäre die Microsoft ActiveX Data Objects X. X Library
InformationsquelleAutor SeanC
Dim con As New OleDbConnection("Provider=Microsoft.Ass.OLEDB.12.0;Data Source=P:\Informatica\Zugang\db_Games.accdb;Persist Security Info=False")
Dim cmd As New OleDbCommand
InformationsquelleAutor Peter