| As New Class1, As Connection, As Recordset |
| |
| |
| Quellcode im Formular | |
| Dim orte As New Class1 | Class1 ist der Name des Klassenmoduls. |
| |
| Private Sub Combo1_Click(Index As Integer) | |
| orte.berechneEntfernung Combo1(Index), Label1 | |
| End Sub | |
| |
| Private Sub Form_Load() | |
| Dim i%, oName$ | |
| orte.oeffneDatenbank "Test.mdb" | Datei öffnen. |
| orte.fuelleCB Combo1(0) | |
| orte.fuelleCB Combo1(1) | |
| End Sub | |
|
| Private Sub Command1_Click() |
| Unload Me |
| End Sub |
| |
| Quellcode im Klassenmodul | |
| Private conn As Connection | |
| Private rsOrt As Recordset | |
| |
| Private Sub Class_Initialize() | |
| Set rsOrt = New Recordset | |
| End Sub | |
| |
| Public Sub oeffneDatenbank(name As String) | |
| Dim pfad$ | |
| Set conn = New Connection | |
| conn.CursorLocation = adUseClient | |
| conn.Provider = "Microsoft.Jet.OLEDB.4.0" | "Microsoft.Jet.OLEDB.3.51" für ältere Access-DB. |
| pfad = App.Path & "\" & name | Pfad und Name werden zusammengesetzt. |
| conn.Open pfad | Datenbank mit SQL lesen. |
| rsOrt.Open "SELECT * FROM Orte ORDER BY Name", conn, adOpenKeyset, adLockOptimistic |
| End Sub | |
| Übergabe: ComboBox, Index. |
| Public Sub berechneEntfernung(cb As ComboBox, lb As Label) | |
| Static x1!, y1!, name1$, x2!, y2!, name2$ | |
| Dim dist!, dx!, dy! | |
| rsOrt.AbsolutePosition = cb.ListIndex + 1 | |
| Select Case cb.Index | |
| Case 0: | Aufruf erfolgt von ComboBox1. |
| x1 = rsOrt!Xkm: y1 = rsOrt!Ykm: name1 = rsOrt!name | |
| Case 1: | Aufruf erfolgt von ComboBox2. |
| x2 = rsOrt!Xkm: y2 = rsOrt!Ykm: name2 = rsOrt!name | |
| End Select | |
| dx = x2 - x1: dy = y2 - y1 | |
| dist = Sqr(dx * dx + dy * dy) | |
| lb.Caption = " Die Luftlinie zwischen " & Trim$(name1) & " und " & _ | |
| Trim$(name2) & " beträgt " & Format$(dist, "###0") & " km! " | |
| End Sub | |
| |
| Public Sub fuelleCB(cb As ComboBox) | |
| rsOrt.MoveFirst | Zurücksetzen. |
| Do While Not rsOrt.EOF | |
| cb.AddItem rsOrt!name | Ortsnamen => Combobox. |
| rsOrt.MoveNext | |
| Loop | |
| cb.ListIndex = 0 | Anfangswert in Combobox setzen => Combo_Click! |
| End Sub | |
| |
| Private Sub Class_Terminate() | |
| conn.Close | |
| Set rsOrt = Nothing | |
| Set conn = Nothing | |
| End Sub | |
| |