Link to home
Start Free TrialLog in
Avatar of Joe Grosskopf
Joe Grosskopf

asked on

Free or Cheaper ADO connector for sharepoint online.

My company needs me to create some reports in visual basic (ssrs) based on some sharepoint online list. I managed to get this to work using cdata ado connector. I downloaded trial and all works good. Then I got pricing to purchase and it's $5,000 per year. This is a little steep for simply running some reports. Anyone know of any connector I can download that's much cheaper or even free....again I just need to run a couple reports.
Avatar of Norie
Norie

Can't you connect to Sharepoint using a standard ADO connection?
Avatar of Joe Grosskopf

ASKER

VB 2013 does not show an ADO connector as an option. You get:

SQL Server
SQL Azure
OLE DB
SQL Analysis Server
Oracle
ODBC (Tried this, does not work)
XML
Report Server Model
Microsoft SharePoint List (Only works with On Prem not Online)
Sap NetWeaver BI
Where are you seeing these options?
Visual basic. When you create a new datasource
I'm probably missing something but when I search for examples of using ADO to retrieve data from Sharepoint I'm finding quite a few examples.

For example this.
Public Function retrieveData()
        'ADD FOLLOWING REFERENCES:-
        'Microsoft ActiveX Data Objects 2.8 Library

        'DECLARING CONNECTION AND RECORDSET OBJECTS, SQLQUERY STRING VARIABLE.
        Dim cnt As ADODB.Connection
        Dim rs As ADODB.Recordset
        Dim sqlQuery As String

        'SETTING UP CONNECTION AND RECORDSET OBJECTS.
        cnt = New ADODB.Connection
        rs = New ADODB.Recordset

    'HERE STUDENT LIST IS YOUR SHAREPOINT LIST NAME.
        sqlQuery = "Select * from [Student List];"

        'SETTING CONNECTION STRING TO CONNECTION OBJECT AND OPENING CONNECTION.
        With cnt
            .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;WSS;IMEX=2;RetrieveIds=Yes;DATABASE=https://mysharepointlist.com/sites/;LIST={Your List GUID};"
            .Open()
        End With

        'OPENING RECORDSET.
        rs.Open(sqlQuery, cnt, ADODB.CursorTypeEnum.adOpenForwardOnly, ADODB.LockTypeEnum.adLockReadOnly)

     'FILLING DATATABLE WITH THE HELP OF DATA ADAPTER.      
     Dim myDa As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter
        Dim myDs As DataTable = New DataTable
        myDa.Fill(myDs, rs)

    'FILLING DATAGRIDVIEW WITH DATATABLE AS DATASOURCE.
    DataGridView1.Datasource = myDs

        'CHECKS IF CONNECTION OBJECTS AND RECORDSET OBJECT IS IN OPEN STATE IF YES THEN IT WILL CLOSE AND DEREFERENCE THEM.
        If CBool(rs.State And ADODB.ObjectStateEnum.adStateOpen) = True Then rs.Close()
        rs = Nothing

        If CBool(cnt.State And ADODB.ObjectStateEnum.adStateOpen) = True Then cnt.Close()
        cnt = Nothing
    End Function

Open in new window

This question needs an answer!
Become an EE member today
7 DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform.
View membership options
or
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.