SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




VBA verbindung aus Excel zu einer Sharepoint Liste

Unbeantwortet Dieser Beitrag hat 2 Antworten

Ohne Rang
12 Beiträge
Mantus erstellt 28 Sept. 2016 13:59
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Community,

 

ich habe folgende Aufgabenstellung erhalten und kommen nicht recht weiter:

Ich muss Daten aus einer Sharepoint liste in einer Unterwebsite (Name Datum etc.) in ein Formular übertragen. Da die Daten gefiltert werden sollten hatte ich an VBA gedacht. Ich hab im Internet auch das ein oder andere gefunden mit ADO aber so wirklich will es nicht laufen. Habt ihr einen Weg wie ich die Daten in das Formular übertragen kann ?

Das was ich bisher gefunden habe sieht so aus:

Sub TestPullFromSharepoint()
 Const sDEMAND_ROLE_GUID As String = "{97770A2F-418B-4D04-BDD4-C1AB446F8BB8}"
 Const sSHAREPOINT_SITE As String = "http://IchBinDieAdresseZurUnterwebsite/kfz/"

' This pulls the data from a SharePoint list. Don't forget a reference
' to the MS ActiveX Objects in "References".

' Variable declarations.
Dim cn As New ADODB.Connection
Dim rs As Recordset
Dim sConn As String
Dim sSQL As String

' Build the connection string: use the ACE engine, the database is the URL if your site
' and the GUID of your SharePoint list is the LIST.
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;WSS;IMEX=2;RetrieveIds=Yes;" & _
"DATABASE=" & sSHAREPOINT_SITE & ";" & _
"LIST=" & sDEMAND_ROLE_GUID & ";"

Set rst = cn.Execute("Select * from List")


'
' Build your SQL the way you would any other. You can add a WHERE clause
' if you need to filter on some criteria.
sSQL = "SELECT tbl.[Vorname] FROM [KFZ-Kennzeichen] as tbl;"

' Open up the recordset.
rs.Open sSQL, cn, adOpenStatic, adLockOptimistic

' Copy the recordset data to a worksheet.
 ThisWorkbook.Worksheets("Sheet1").Range("A2").CopyFromRecordset rs

End Sub

Leider bekomme ich dabei immer einen Automatisierungsfehler sobald ich die Connection öffnen will.

Villeicht hat ja einer von euch so einen Auftrag in der Art schon mal gehabt und kann mir weiter helfen

MfG

Mantus

 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 28 Sept. 2016 14:07
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ob das mit ADO wirklich funktioniert, kann ich nicht sagen. Ich würde aber auf jeden Fall die Finger von solch altem Zeug wie VBA und ADO lassen - zumindest hierfür ;-)

Ist Dir bekannt, daß man eine SharePoint-Liste mit einem einfachen Klick nach Excel exportieren kann? Das bezieht sich immer auf die aktuelle Ansicht. Dabei werden die Verbindungsdaten in der Exceldatei gespeichert. Man kann also die Datei irgendwo ablegen und beim nächsten Öffnen werden die SharePoint-Daten aktualisiert.

Das Ganze sieht dann in Excel erstmal sehr tabellarisch aus - eben wie in SharePoint. Man kann aber jetzt mit den Methoden von Excel (Formeln, Verweise und auch Makros) darauf zugreifen und was-auch-immer damit anstellen. Wie gesagt, es kann später automatisch aktualisiert werden.

Und falls es eben doch irgendwie in Excel programmiert werden muß, dann entweder als Excel-Add-In oder als Excel-App.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
12 Beiträge
Mantus Als Antwort am 28 Sept. 2016 14:27
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hmm manchmal sieht man den Wald vor lauter Bäumen nicht. Klar geht es auch so wenn man mit einem SVerweis arbeitet kriegt man ja auch alles was man will danke für den denkansatz.