Risolto così:
(codice nel form load)
codice:
Dim rdsReportDataSource1 As Microsoft.Reporting.WinForms.ReportDataSource = New Microsoft.Reporting.WinForms.ReportDataSource
'mi connetto al database
QueryCMD = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Replace(My.Application.Info.DirectoryPath, "\bin\debug", "", 1, -1, CompareMethod.Text) & "\gestv.accdb;Persist Security Info=False;"
AccessConn = New System.Data.OleDb.OleDbConnection(QueryCMD)
AccessConn.Open()
'carico il bindingsource con la query
QueryCMD = "SELECT * FROM tblNominativi"
AccessCommand = New System.Data.OleDb.OleDbCommand(QueryCMD, AccessConn)
AccessCommand.CommandType = CommandType.Text
BS_Tab.DataSource = AccessCommand.ExecuteReader(CommandBehavior.CloseConnection)
'assegno il bindingsource alla variabile reportdatasource. IMPORTANTE: attenzione a che il nome
'sia uguale a quello indicato nelle proprietà in modalità disegno del report
rdsReportDataSource1.Name = "DataSet1"
rdsReportDataSource1.Value = BS_Tab
'carico le proprietà del reportviewer
ReportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local
ReportViewer1.LocalReport.ReportPath = Replace(My.Application.Info.DirectoryPath, "\bin\debug", "", 1, -1, CompareMethod.Text) & "\drprubrica.rdlc"
ReportViewer1.LocalReport.ReportEmbeddedResource = Replace(My.Application.Info.DirectoryPath, "\bin\debug", "", 1, -1, CompareMethod.Text) & "\drprubrica.rdlc"
ReportViewer1.LocalReport.DisplayName = "RUBRICA"
ReportViewer1.LocalReport.DataSources.Clear() 'IMPORTANTE: altrimenti tiene in memoria più origini e fa casino
ReportViewer1.LocalReport.DataSources.Add(rdsReportDataSource1)
ReportViewer1.RefreshReport()
'ora chiudo la connessione al database
AccessConn.Close()
Ora ho rimasto solo un problema: nell'anteprima del reportviewer mi visualizza solo un pagina con una decina di righe, invece io nella query ho 40 righe.
Da che cosa può dipendere?