| Blättern im Array, Speichern von Änderungen in Tabelle |
| |
| |
| Aufgabe: Mit Schaltflächen < und > soll in der Tabelle geblättert werden. Wird beim Vorwärts-Scrollen das |
| Ende der Tabelle erreicht, soll eine Meldung ausgegeben werden. Ebenso soll das Ende beim Rückwärts- |
| Scrollen gemeldet werden. |
| Im Feld "Kundennummer" soll ein weiteres Feld den Zähler anzeigen. |
| Das oberste Umsatzfeld soll eingabebereit gemacht werden können. |
| |
| Const armax = 99 | |
| |
| Private KdList(0 To armax) As TKunden | |
| Private hilf As TKunden | |
| Private pos As Integer | |
| |
| Private Type TKunden | |
| KdNr As String * 5 | |
| KdUm As Long | |
| End Type | |
| |
| Private Sub Form_Load() | |
| Me.Move (Screen.Width - Me.Width) / 3, (Screen.Height - Me.Height) / 3 |
| cmdRueck.Enabled = False | |
| cmdWeiter.Visible = False | |
| txtKdUm(0).TabStop = False | |
| txtKdUm(0).Locked = True | |
| lblMeld.Caption = "Tabellen- Anfang !" | |
| |
| Call TabLaden | |
| Call TabAnzeigen | |
| End Sub | |
| |
| Private Sub TabLaden() | |
| Dim i As Long | |
| Randomize | |
| For i = 0 To armax | |
| KdList(i).KdNr = Int((99999 - 10000 + 1) * Rnd + 10000) | |
| KdList(i).KdUm = Int((500000 - 5000 + 1) * Rnd + 5000) | |
| Next i | |
| End Sub | |
| |
| Private Sub TabAnzeigen() | |
| Dim i As Integer | |
| For i = 0 To 9 | |
| lblKdNr(i).Caption = KdList(pos + i).KdNr | |
| txtKdUm(i).Text = KdList(pos + i).KdUm | |
| lblNr(i).Caption = pos + i | |
| Next i | |
| End Sub | |
| |
| Private Sub cmdFreigabe_Click() | |
| With txtKdUm(0) | |
| .BackColor = RGB(255, 255, 255) | |
| .Locked = False | |
| .TabStop = True | |
| End With | |
| Call settfokus | |
| cmdFreigabe.Visible = False | |
| End Sub | |
| |
| Private Sub settfokus() | |
| With txtKdUm(0) | |
| .SelLength = Len(.Text) | |
| .SetFocus | |
| End With | |
| End Sub | |
| |
| Private Sub txtKdUm_LostFocus(Index As Integer) | Speichert Änderungen in der ersten Textbox ab ! |
| If txtKdUm(0).Text <> "" Then | |
| KdList(pos).KdUm = txtKdUm(0).Text | |
| txtKdUm(0).Text = KdList(pos).KdUm | |
| Call cmdVor_Click | Beim Verlassen der TextBox springt der Zähler um |
| Else | eins höher. |
| MsgBox "Wert kann nicht gelöscht werden!" & vbCrLf & _ | |
| "Muss mindestens einen Nullwert enthalten." | |
| txtKdUm(0).SetFocus | |
| End If | |
| End Sub | |
| |
| Private Sub cmdSort_Click() | |
| Dim i As Integer, k As Integer | |
| pos = 0 | Sorgt dafür, dass der Index Null immer oben sichtbar ist. |
| For i = 0 To armax - 1 | |
| For k = i + 1 To armax | |
| If KdList(i).KdUm < KdList(k).KdUm Then | |
| hilf = KdList(i) | |
| KdList(i) = KdList(k) | |
| KdList(k) = hilf | |
| End If | |
| Next k | |
| Next i | |
| Call TabAnzeigen | |
| Call settfokus | |
| End Sub | |
| |
| Private Sub cmdVor_Click() | Für das Vorwärtsblättern. |
| If pos < 90 Then | |
| pos = pos + 1 | |
| Call TabAnzeigen | |
| cmdWeiter.Visible = True | |
| cmdRueck.Enabled = True | |
| lblMeld.Caption = "" | |
| Else | |
| pos = pos | |
| cmdVor.Enabled = False | |
| cmdWeiter.Visible = False | |
| lblMeld.Caption = "Tabellen- Ende !" | Tabellen-Ende wird gemeldet. |
| End If | |
| End Sub | |
| |
| Private Sub cmdRueck_Click() | Für das Rückwärtsblättern. |
| If pos > 0 Then | |
| pos = pos - 1 | |
| Call TabAnzeigen | |
| cmdVor.Enabled = True | |
| cmdWeiter.Visible = True | |
| lblMeld.Caption = "" | |
| Else | |
| pos = pos | |
| cmdRueck.Enabled = False | |
| cmdWeiter.Visible = False | |
| cmdVor.SetFocus | |
| lblMeld.Caption = "Tabellen- Anfang !" | Tabellen-Anfang wird gemeldet. |
| End If | |
| End Sub | |
| |
| Private Sub txtKdUm_GotFocus(Index As Integer) | |
| Call settfokus | |
| End Sub | |
| |
| Private Sub cmdWeiter_Click() | |
| Unload frmAufgabe2 | Das nächste Formular wird aufgerufen - siehe |
| frmAufgabe3.Show | http://www.wbrnet.info/db/0072.html |
| End Sub | |
| |
| |
| Links: |
| Feld 1 nicht eingabebereit. |
| Zähler 0 bis 9 werden |
| angezeigt. |
| Tabellenanfang wird |
| angezeigt. |
| |
| |
| |
| |
| |
| |
| |
| Rechts: |
| Feld 1 eingabebereit. |
| Zähler 20 bis 29 werden |
| angezeigt. |
| |
| |
| . |
| |