Mikrodatenbank auf der Grundlage von Random-Dateien

Random, FreeFile, Open, Close
Fehler in den "TextBoxen", die nur Zahlen enthalten dürfen, sind noch nicht abgefangen.
Private Type typAutodaten Datensatz definieren.
 ModellName As String * 50
 Preis As Currency
 Geschwindigkeit As Single
 Farbe As String * 12
End Type
Private AutoDatenFeld(0 To 100) As typAutodaten Die Variable AutodatenFeld nimmt die Datensätze auf.
Private MaxDatenSatzNr As Integer
Private DatensatzNr As Integer
Private Updatemodus As Boolean
Private Sub cmdAbbrechen_Click() Wird aufgerufen, wenn ein Hinzufügen abgebrochen werden
 DatensatzNrAnzeigen soll.
 cmdDatensatzHinzufügen.Caption = "&Hinzufügen"
 cmdAbbrechen.Enabled = False
 cmdDatensatzLöschen.Enabled = True
 Updatemodus = False
End Sub
Private Sub cmdDatensatzHinzufügen_Click() Wird aufgerufen, wenn ein Datensatz hinzugefügt wird.
If Updatemodus = False Then Wenn noch kein Updatemodus aktiv, dann auf Update-
 lblDatensatzNr.Caption = MaxDatenSatzNr + 1 modus umschalten.
 cmdDatensatzHinzufügen.Caption = "&Aktualisieren"
 cmdAbbrechen.Enabled = True
 cmdDatensatzLöschen.Enabled = False
 EingabefelderLöschen
 Updatemodus = True
Else
 MaxDatenSatzNr = MaxDatenSatzNr + 1 Updatemodus aktiv, Datensatz an das Ende hängen.
 DatensatzNr = MaxDatenSatzNr
 DatenAktualisieren
 DatensatzNrAnzeigen
 cmdDatensatzHinzufügen.Caption = "&Hinzufügen"
 cmdAbbrechen.Enabled = False
 cmdDatensatzLöschen.Enabled = True
 Updatemodus = False
End If
End Sub
Sub EingabefelderLöschen() Alle Eingabefelder löschen.
 txtGeschwindigkeit.Text = ""
 txtModellName.Text = ""
 txtPreis.Text = ""
 txtFarbe.Text = ""
 txtModellName.SetFocus
End Sub
Private Sub cmdDatensatzLöschen_Click() Wird aufgerufen, wenn ein Datensatz gelöscht werden soll.
Dim n As Integer
 If MaxDatenSatzNr > 0 Then
  For n = DatensatzNr To MaxDatenSatzNr - 1
   With AutoDatenFeld(n)
    .Geschwindigkeit = AutoDatenFeld(n + 1).Geschwindigkeit
    .ModellName = AutoDatenFeld(n + 1).ModellName
    .Preis = AutoDatenFeld(n + 1).Preis
   End With
  Next
  MaxDatenSatzNr = MaxDatenSatzNr - 1
  MovePrevious
 End If
End Sub
Private Sub cmdVor_Click() Datensatzzeiger eine Position vor bewegen.
 DatenAktualisieren
 MoveNext
End Sub
Private Sub cmdZurück_Click() Datensatzzeiger eine Position zurückbewegen.
 DatenAktualisieren
 MovePrevious
End Sub
Private Sub Form_Load() Lädt die Datenbank oder legt eine neue an.
Dim DateiNr As Integer
If Dir("Autodaten.dat") = "" Then Wenn noch keine Autodaten.dat-Datei vorhanden, 3 Daten-
 With AutoDatenFeld(0) sätze initialisieren.
  .ModellName = "Audi Avant"
  .Geschwindigkeit = "188"
  .Preis = "32600"
  .Farbe = "Rot"
 End With
 With AutoDatenFeld(1)
  .ModellName = "VW Golf TS"
  .Geschwindigkeit = "178"
  .Preis = "22600"
  .Farbe = "Blau"
 End With
 With AutoDatenFeld(2)
  .ModellName = "BMW 316i"
  .Geschwindigkeit = "192"
  .Preis = "28400"
  .Farbe = "Grün"
 End With
   MaxDatenSatzNr = 2
Else
 DateiNr = FreeFile Wenn Autodaten.dat vorhanden, dann Inhalt einlesen.
 Open "Autodaten.dat" For Random As DateiNr
   Do
    Get #DateiNr, , AutoDatenFeld(MaxDatenSatzNr)
      If EOF(DateiNr) = True Then
       Exit Do
      End If
    MaxDatenSatzNr = MaxDatenSatzNr + 1
   Loop
 Close
End If
DatensatzNr = 0
DatensatzAnzeigen DatensatzNr
cmdAbbrechen.Enabled = False
End Sub
Sub DatensatzAnzeigen(DatensatzNr As Integer) Inhalt des aktuellen Datensatzes anzeigen.
 With AutoDatenFeld(DatensatzNr)
  txtGeschwindigkeit.Text = .Geschwindigkeit
  txtModellName.Text = .ModellName
  txtPreis.Text = .Preis
  txtFarbe.Text = .Farbe
 End With
DatensatzNrAnzeigen
End Sub
Sub DatensatzNrAnzeigen() Aktuelle Datensatznummer anzeigen.
 lblDatensatzNr.Caption = DatensatzNr
End Sub
Private Sub Form_Unload(Cancel As Integer) Beim Verlassen des Formulars Datensätze in Autodaten.dat
Dim DateiNr As Integer, n As Integer zurückschreiben.
DateiNr = FreeFile
DatenAktualisieren
Open "Autodaten.dat" For Random As DateiNr
 For n = 0 To MaxDatenSatzNr
  Put #DateiNr, , AutoDatenFeld(n)
 Next
Close
End Sub
Private Sub MoveNext() Datensatzzeiger auf den nächsten Datensatz bewegen.
DatensatzNr = DatensatzNr + 1
 If DatensatzNr > MaxDatenSatzNr Then
   DatensatzNr = MaxDatenSatzNr
 End If
DatensatzAnzeigen DatensatzNr
End Sub
Private Sub MovePrevious() Datensatzzeiger auf den vorherigen Datensatz bewegen.
DatensatzNr = DatensatzNr - 1
 If DatensatzNr < 0 Then
   DatensatzNr = 0
 End If
DatensatzAnzeigen DatensatzNr
End Sub
Sub DatenAktualisieren() Feststellen, ob Datensatz geändert wurde und in Datenbank
Dim DirtyFlag As Boolean aktualisieren.
DirtyFlag = txtGeschwindigkeit.DataChanged _
  Or txtModellName.DataChanged _
  Or txtPreis.DataChanged _
  Or txtFarbe.DataChanged
If DirtyFlag = True Then
 With AutoDatenFeld(DatensatzNr)
  .Geschwindigkeit = txtGeschwindigkeit.Text Fehler noch abfangen (String oder Leereingabe = Fehler).
  .ModellName = txtModellName.Text
  .Preis = txtPreis.Text
  .Farbe = txtFarbe.Text
 End With
  txtGeschwindigkeit.DataChanged = False
  txtModellName.DataChanged = False
  txtPreis.DataChanged = False
  txtFarbe.DataChanged = False
End If
End Sub



 Ranking-Hits zurück Sitemap
Designed by www.wbrnet.info