2016-08-29 2 views
1

Ich versuche, ein VBA-Skript auszuführen, das eine Access-Abfrage ausführt und exportiert. Ich bin in der Lage, zu dem Schritt im Code zu gelangen, wo ich die Abfrage ausführe, jedoch muss ich eine Verbindung zu DB2 herstellen, um diese Abfrage in Access auszuführen, und ich weiß nicht, wie ich meinen Code zur Eingabe des Benutzernamens und des Kennworts implementieren kann.VBA, die Zugriffsabfrage von Excel ausführt

Sub RunQuery() 
Dim A As Object 
Application.DisplayAlerts = False 
Set A = CreateObject("Access.Application") 
A.Visible = False 
A.OpenCurrentDatabase ("J:\user\filename.mdb") 
A.DoCmd.OpenQuery "QueryName" 
A.DoCmd.ConnectString 
Application.DisplayAlerts = True 

End Sub 

Der Code Stände nur an der Linie:

A.DoCmd.OpenQuery "QueryName" 

Und wenn ich von hier mit meiner Anfrage meiner Datenbank geöffnet ist es nur für meine Benutzername und Passwort zu warten. Ich werde versuchen, ein Bild der Aufforderung anzuhängen.

Jede Hilfe würde sehr geschätzt werden !!

Sie sehr viel gesagt enter image description here

+3

Sie werden mit der DB2-Datenbank authentifizieren müssen. Es könnte eine bessere Lösung sein, ADO zu verwenden und direkt eine Verbindung zur DB2-Datenbank herzustellen. Sehen Sie sich Folgendes an: http://StackOverflow.com/Questions/7171546/Excel-and-db2-connectivity –

Antwort

2

Als Ryan Vielen mit ADO eine bessere Option sein wird, siehe unten

Public Sub RunQuery() 
    Dim A As Object 
    Dim rs As Object 
    Dim strSql As String 
    Dim strConnection As String 
    Set A = CreateObject("ADODB.Connection") 
    strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=J:\user\filename.mdb" 
    strSql = "SELECT * FROM table" 
    A.Open strConnection 
    Set rs = A.Execute(strSql) 
    arr = rs.GetRows 

    'now the array arr has the data queried 

    rs.Close 
    Set rs = Nothing 
    A.Close 
    Set A = Nothing 
End Sub