Gemeinsam zu mehr Effizienz in der Anwendungserstellung
|  (→DotNetDataGridView) |  (→DotNetDataGridView) | ||
| (Der Versionsvergleich bezieht 6 dazwischenliegende Versionen mit ein.) | |||
| Zeile 4: | Zeile 4: | ||
| * Laden Sie sich die aktuellste Version des DotNetControlContainers als [http://sten-schmidt.net/AccessCodeLib/NightlyBuilds/DotNetControlContainer/ MSI Setup-Paket] herunter und installieren Sie es im System (Administrator-Berechtigung erforderlich). | * Laden Sie sich die aktuellste Version des DotNetControlContainers als [http://sten-schmidt.net/AccessCodeLib/NightlyBuilds/DotNetControlContainer/ MSI Setup-Paket] herunter und installieren Sie es im System (Administrator-Berechtigung erforderlich). | ||
| + | * Sie können sich das MSI-Paket auch selbst aus den [https://svn.access-codelib.net/svn/DotNetLib/trunk/office/access/forms/DotNetControlContainer/ Quellen] mittels Visual Studio erstellen. | ||
| ==Batch Scripts== | ==Batch Scripts== | ||
| Zeile 9: | Zeile 10: | ||
| * Verwenden Sie aus den [https://svn.access-codelib.net/svn/DotNetLib/trunk/office/access/forms/DotNetControlContainer/Lib/ Installationsdateien] das Script ''RegisterTLBs.cmd'' um den DotNetControlContainers im System zu registrieren (Administrator-Berechtigung erforderlich). | * Verwenden Sie aus den [https://svn.access-codelib.net/svn/DotNetLib/trunk/office/access/forms/DotNetControlContainer/Lib/ Installationsdateien] das Script ''RegisterTLBs.cmd'' um den DotNetControlContainers im System zu registrieren (Administrator-Berechtigung erforderlich). | ||
| - | =Beispiele= | + | =Beispiele / HOWTOs= | 
| ==Minimalbeispiel== | ==Minimalbeispiel== | ||
| + | * Dieses Beispiel demonstriert den minimalen Ansatz, Sie benötigen kein eigenes .NET Control-Projekt. | ||
| * Installieren Sie den DotNetControlContainer im System | * Installieren Sie den DotNetControlContainer im System | ||
| * Erstellen Sie eine leere Access Testdatenbank (mdb oder accdb) | * Erstellen Sie eine leere Access Testdatenbank (mdb oder accdb) | ||
| Zeile 58: | Zeile 60: | ||
| ==VB.NET UserControl== | ==VB.NET UserControl== | ||
| + | * Dieses Beispiel zeigt wie sie sich ein sehr einfaches .NET Control mit VB.NET erstellen und es mittels des DotNetControlContainers verwenden. Die COM-Sichtbarkeit wird aktiviert, es wird jedoch kein separates COM-Interface definiert. | ||
| * Erstellen Sie mit Visual Studio ein neues Klassenbibliotheks-Projekt | * Erstellen Sie mit Visual Studio ein neues Klassenbibliotheks-Projekt | ||
| ** Sprache: VB.Net | ** Sprache: VB.Net | ||
| Zeile 119: | Zeile 122: | ||
| ==DotNetDataGridView== | ==DotNetDataGridView== | ||
| - | * Checken Sie die aktuelle Version des DotNetDataGridView mittels Subversion aus: | + | * Dieses Beispiel zeigt exemplarisch die Bereitstellung eines DataGridViews sowie die Nutzung von Events. Hierzu wird ein entsprechendes COM-Interface definiert und über eine generierte TLB-Datei in Access/VBA bereitgestellt. Das Hinzufügen des Verweises auf die TLB-Datei ist eine Voraussetzung um Events (siehe WithEvents-Deklaration des GridView-Objekts) nutzen zu können. | 
| + | * Checken Sie die aktuelle Version des [https://svn.access-codelib.net/svn/DotNetLib/trunk/office/access/forms/DotNetDataGridView DotNetDataGridView] mittels Subversion aus: | ||
| <source> | <source> | ||
| Zeile 143: | Zeile 147: | ||
| Option Explicit | Option Explicit | ||
| - | Private WithEvents GridView As DotNetDataGridView.DotNetDataGridView  | + | Private WithEvents GridView As DotNetDataGridView.DotNetDataGridView | 
| Private adodbRS As ADODB.Recordset | Private adodbRS As ADODB.Recordset | ||
| Zeile 156: | Zeile 160: | ||
| Private Sub Form_Close() | Private Sub Form_Close() | ||
| + | |||
|      Set GridView = Nothing |      Set GridView = Nothing | ||
| + | |||
| + |         adodbRS.Close | ||
|      Set adodbRS = Nothing |      Set adodbRS = Nothing | ||
| + | |||
| End Sub | End Sub | ||
| Zeile 163: | Zeile 171: | ||
|      Set adodbRS = New ADODB.Recordset |      Set adodbRS = New ADODB.Recordset | ||
| - |          adodbRS.Open "SELECT * FROM Tabelle1;", CurrentProject.Connection | + |          adodbRS.Open "SELECT * FROM Tabelle1;", CurrentProject.Connection, adOpenDynamic, adLockOptimistic | 
|      GridView.readFromRecordSet adodbRS |      GridView.readFromRecordSet adodbRS | ||
| Inhaltsverzeichnis | 
Option Compare Database Option Explicit Private Sub Befehl1_Click() Dim DllPath As String DllPath = "C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll" Dim WinForm As Object With New NetComDomain Set WinForm = .CreateObject("Form", "System.Windows.Forms", DllPath) WinForm.TopLevel = False End With Me.ControlContainer0.Object.LoadControl WinForm Set WinForm = Nothing With Me.ControlContainer0.Object.Control .Text = "Das ist ein .NET Winform" .StartPosition = 1 .ShowIcon = False .Show End With End Sub
Public Class UserControl1 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click MsgBox("Hello World") End Sub Public Function SayHello() As String Return "Hallo, ich bin eine Public Function!" End Function End Class
Option Compare Database Option Explicit Private Sub Befehl1_Click() Dim DllPath As String DllPath = Application.CodeProject.Path & "\" & "ClassLibrary1.dll" With New NetComDomain Me.ControlContainer0.Object.LoadControl .CreateObject("UserControl1", "ClassLibrary1", DllPath) End With MsgBox Me.ControlContainer0.Object.Control.SayHello End Sub
svn co https://svn.access-codelib.net/svn/DotNetLib/trunk/office/access/forms/DotNetDataGridView
Option Compare Database Option Explicit Private WithEvents GridView As DotNetDataGridView.DotNetDataGridView Private adodbRS As ADODB.Recordset Private Sub Form_Load() With New NetComDomain Set GridView = .CreateObject("DotNetDataGridView", "ACLibDotNet", CodeProject.Path & "\" & "DotNetDataGridView.dll") Me.ControlContainer0.Object.LoadControl GridView End With End Sub Private Sub Form_Close() Set GridView = Nothing adodbRS.Close Set adodbRS = Nothing End Sub Private Sub Befehl1_Click() Set adodbRS = New ADODB.Recordset adodbRS.Open "SELECT * FROM Tabelle1;", CurrentProject.Connection, adOpenDynamic, adLockOptimistic GridView.readFromRecordSet adodbRS End Sub Private Sub Befehl2_Click() GridView.setBackgroundColor 99, 155, 255 End Sub Private Sub GridView_OnBackgroundColorChanged(ByVal message As String) VBA.MsgBox "BgColor was changed to: " & message End Sub