Dbase-kompatible Datenbanken mit Visual Basic

Wir arbeiten in unserer Firma mit Dbase-Datenbanken als Relikt aus alten Zeiten und mit Microsofts Visual Basic. Um kompatibel zu bleiben, mⁿssen auch neue Datenbanken dem Dbase-Format genⁿgen. Wie kann ich unter Visual Basic eine Dbase-Datenbank anlegen, dazu einen Index definieren und diesen wieder l÷schen?

Visual Basic bietet in der Professional-Version die M÷glichkeit, eine Dbase-Datenbank anzulegen. Dazu gehen Sie am besten anhand des folgenden Beispiels vor: Entwerfen Sie ein Formular mit drei Befehls-Buttons. Geben Sie in der Sektion des Formulars dann folgenden einleitenden Visual-Basic-Code ein:

 æ Definieren der Datenbankobjekte
Dim MyDB As DataBase
Dim MyTd As TableDef
Dim MyTds As TableDefs
 æ Definieren der Felder
Dim MyFeld1 As Field
Dim MyFeld2 As Field
Dim MyFeld3 As Field
Dim MyFeld4 As Field
 æ Definieren des Index
Dim MyIndex As Index
Der erste Befehls-Button dient zunΣchst dem Anlegen der Dbase-Datenbank. Das Feld MyFeld1 ist als Zahl definiert, um es spΣter als Index zu benutzen. Sie k÷nnen dazu nur ein bereits bestehendes Feld verwenden.
Sub Command1_Click  ()
 æ Referenzierungen
Set MyDB = OpenDatabase (äc:\vb\testô, False, False,  äDBASE IV;ô)
Set MyTd = New TableDef
Set MyFeld1 = New Field
Set MyFeld2 = New Field
Set MyFeld3 = New Field
Set MyFeld4 = New Field
Set MyIndex = New Index

 æ ZunΣchst Tabledef
MyTd.Name =  äMyTestô

 æ Zuweisungen fⁿr Felder, wobei das 1. Feld der zukⁿnftige Index werden soll.
 æ Einige m÷gliche Typen:
 æ Type = 2 Integer
 æ Type = 4 Long
 æ Type = 6 Single
 æ Type = 10 Text  (String)
MyFeld1.Name =  äZΣhlerô
MyFeld.Type = 2
MyFeld.Size = 3

MyFeld2.Name =  äORTô
MyFeld2.Type = 10
MyFeld2.Size = 30

MyFeld3.Name =  äNachnameô
MyFeld3.Type = 10
MyFeld3.Size = 30

MyFeld4.Name =  äGehaltô
MyFeld4.Type = 4
MyFeld4.Size = 6

 æ Erstellen und AnhΣngen der Felder
MyTd.Fields.Append MyFeld1
MyTd.Fields.Append MyFeld2
MyTd.Fields.Append MyFeld3
MyTd.Fields.Append MyFeld4
MyDB.TableDefs.Append MyTd

 æ Index wird auf das Feld ZΣhler gelegt
MyIndex.Name =  äIndex1ô
MyIndex.Fields =  äZΣhlerô
MyIndex.Primary = True
MyTd.Indexes.Append MyIndex

MyDB.Close

Command2.Visible = True
End Sub
Als nΣchstes programmieren Sie den Befehls-Button zum Ausfⁿhren des Visual-Basic-Beispielprogramms Visdata, mit dem Sie Ihre Ergebnisse ⁿberprⁿfen:
Sub Command2_Click  ()
y = Shell (äC:\vb\samples\visdata\visdata.exeô)
command3.Visible = True
End Sub
Der letzte Schalter l÷scht den Index wieder. Das Ergebnis k÷nnen Sie wiederum mit Visdata ⁿberprⁿfen.
Sub Command3_Click  ()
Set MyDB = OpenDatabase (äc:\vb\testô, False, False,  äDBASE IV;ô)
Set MyTds = MyDB.TableDefs

MyTds (äMyTestô).Indexes.Delete MyTds (äMyTestô).Indexes (äIndex1ô)
End Sub
Wenn Sie einen Index anlegen, entsteht gleichzeitig eine Index- Datei mit der Endung MDX. Diese Datei l÷scht Visual Basic automatisch, sobald Sie den Index wieder l÷schen.