Van Access naar DOT.NET
description
Transcript of Van Access naar DOT.NET
Van Access naar DOT.NET
Ynte Jan Kuindersma,BIRD Automation
Nationale Officedag 2009EDE, 14 Oktober 2009
Dit gaan we maken
DOT.NET
Disconnected data Gegevens en Programma zijn strikt
gescheidenTabellen en queries beheren in Access/SQL
serverFormulieren zijn WinformsRapporten zijn Reporting Tool reports (RDLC)
Echte Windowstoepassing (EXE)
Dataset
Representatie van de databasestructuur, zonder data = tabellen en hun relaties
Bevat tabeladapters die op aanvraag de toegang tot de database regelen en de gegevens echt ophalen
Tabeladapter bevat SQL en de eventuele parameters
Dataset
Formulier met Klanten
Voeg nieuw Windowsform toe en sleep tabel customers uit dataset (Datasources) naar pagina als Details
5 objecten op pagina: Tableadaptermanager, Tableadapter, Dataset, Bindingsource en Navigator
Achter de schermen wordt code gemaakt om tableadapter de dataset te laten vullen
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.CustomersTableAdapter.Fill(Me.NorthwindDataSet.Customers)End Sub
Orders per klant in een gridview Sleep Orders naar Pagina als DataGridView
Gemakkelijkst is de gekoppelde orders slepen dan gaat koppeling hoofd-subformulier automatisch goed
Als je wilt coderen, sleep dan de niet gekoppelde tabel orders naar het formulier
Kleuren even rijen in DataGridView via DataGridViewCellStyle Verander kolom ProductID van textbox naar Combobox en edit
databinding. Voeg eventueel code toe aan bindingsource (alleen nodig als je
hierboven de niet gekoppelde tabel hebt gesleept)Private Sub CustomersBindingSource_CurrentItemChanged(ByVal sender
As Object, ByVal e As System.EventArgs) Handles CustomersBindingSource.CurrentItemChanged
Dim taOrders As New NorthwindDataSetTableAdapters.OrdersTableAdapter
Dim dtOrder As NorthwindDataSet.OrdersDataTable = taOrders.GetDataBy(Me.CustomerIDTextBox.Text)
Me.OrdersDataGridView.DataSource = dtOrderEnd Sub
Rapport maken
Voeg rapport toe Voeg Report-tabel toe Sleep velden uit dataset naar rijen Voeg Parameter ORDERID toe aan rapport
(integer) Voeg aan tabel filter toe (=Fields!
OrderID.Value=Parameters!ORDERID.Value)
Rapport op Pagina
Reportviewer control Report kiezen als reportsource Code toevoegen aan DataGridView Private Sub OrdersDataGridView_RowLeave(ByVal sender As
System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles OrdersDataGridView.RowLeave
Dim params(0) As Microsoft.Reporting.WinForms.ReportParameter
params(0) = New Microsoft.Reporting.WinForms.ReportParameter("ORDERID", Me.OrdersDataGridView.CurrentRow.Cells(0).Value.ToString)
ReportViewer1.LocalReport.SetParameters(params) Me.ReportViewer1.RefreshReport()End Sub
Hyperlinks
Visual Basic Express editiehttp://www.microsoft.com/express/download Inclusief SQL-server express
Visual Basic Express editiehttp://www.microsoft.com/express/download Inclusief SQL-server express
Visual Basic Home (Learn/downloads)http://msdn.microsoft.com/en-us/vbasic/defaul
t.aspx
Public Class Form1 Private Sub CustomersBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
CustomersBindingNavigatorSaveItem.Click Me.Validate() Me.CustomersBindingSource.EndEdit() Me.TableAdapterManager.UpdateAll(Me.NorthwindDataSet) End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.dsFacturenTableAdapter.Fill(Me.NorthwindDataSet.dsFacturen) Me.EmployeesTableAdapter.Fill(Me.NorthwindDataSet.Employees) Me.OrdersTableAdapter.Fill(Me.NorthwindDataSet.Orders) Me.CustomersTableAdapter.Fill(Me.NorthwindDataSet.Customers) Me.ReportViewer1.RefreshReport() End Sub Sub updatelijst() Dim taOrders As New NorthwindDataSetTableAdapters.OrdersTableAdapter Dim dtOrder As NorthwindDataSet.OrdersDataTable = taOrders.GetDataBy(Me.CustomerIDTextBox.Text) Me.OrdersDataGridView.DataSource = dtOrder End Sub Private Sub CustomersBindingSource_CurrentItemChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles
CustomersBindingSource.CurrentItemChanged Call updatelijst() End Sub Private Sub Form1_Shown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown Call updatelijst() End Sub
Private Sub OrdersDataGridView_RowLeave(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles OrdersDataGridView.RowLeave
Dim params(0) As Microsoft.Reporting.WinForms.ReportParameter params(0) = New Microsoft.Reporting.WinForms.ReportParameter("ORDERID",
Me.OrdersDataGridView.CurrentRow.Cells(0).Value.ToString) ReportViewer1.LocalReport.SetParameters(params) Me.ReportViewer1.RefreshReport() End SubEnd Class