Microsoft Access ist die am häufigsten verwendete Datenbank für Visual Basic, aber Visual Basic bietet keine Funktion ähnlich dem BROWS-Befehl von FoxPRoforWindows zum Durchsuchen der Access-Datenbank. Dieses Programm bietet eine Methode ähnlich der BROWS-Befehlsschnittstelle zum Durchsuchen von Access-Datenbanken. Interessierte Leser können dieses Programm als Unterroutine mit Parametern (Datenbankname, Tabellenname, Feldname, Feldbreite usw.) umschreiben, um eine Methode ähnlich wie Foxproforwindows zu implementieren . Die Funktionen des BROWS-Befehls werden in Ihrer eigenen Anwendung aufgerufen.
Definieren Sie zunächst ein Raster (gridl), ein Listenfeld (list1), ein normales Dialogfeld (dlg), ein Datenbewusstseinselement (datal) und zwei Befehlsschaltflächen (command1 und command2) im Fenster und ordnen Sie deren Positionen an.
Wenn das Programm ausgeführt wird, klicken Sie auf die Schaltfläche „Öffnen“, um ein Dialogfeld zu öffnen. Nach Auswahl der Datenbankdatei zeigt das Programm die in der Datenbank enthaltenen Tabellennamen im Listenfeld an, um sie zu durchsuchen Tisch. Dieses Programm kann die Größe des Browserbereichs automatisch entsprechend der Feldlänge und der Schriftgröße festlegen, um sicherzustellen, dass der Browserbereich das Fenster nicht überschreitet. Wenn das Fenster den Browserbereich nicht ausfüllen kann, fügt das Programm dem Browserbereich automatisch horizontale oder vertikale Bildlaufleisten hinzu. Im Anhang finden Sie die Programmliste:
1SubCommand1_Click()'Klicken Sie mit der Maus auf die Schaltfläche „Öffnen“.
2Dim,IAsInteger,cuntAsInteger
3grid1.Visible=False
4dlg.Filename=""
5dlg.Filter="Zugriff(*.MDB)|*.MDB"
6dlg.FilterIndex=1
7dlg.Action=1'Öffnen Sie das Dialogfeld
8Ifdlg.Filename=""Dann'wenn keine Datei ausgewählt ist
9GoTocanc
10EndIf
11data.Connect=""
12data.DatabaseName=dlg.Filename
13data.RecordSource=""
14data.Refresh
15browser.Caption="Auf Browser zugreifen[" datal.DatabaseName "]"
16cunt=data.Database.TableDefs.Count
17listl.Klar
18ForI=0Tocunt-1'Fügen Sie den Tabellennamen zum Listenfeld hinzu
19IfLeft(data.Database.TableDefs(I).Name,4)<>"Msys"Then
20listl.Additemdata.Database.TableDefs(I).Name
21EndIf
22WeiterI
23label1.Visible=True
24list1.Visible=True
25list1.ListIndex=0
26canc:
27EndSub
28SubCommand2_Click()'Klicken Sie mit der Maus auf die Schaltfläche „Beenden“.
29Ende
30EndSub
31SubForm_Load()
32browser.Caption="Browser aufrufen"
33grid1.Height=3200
34grid1.Visibli=Falsch
35list1.Visible=Falsch
36label1.Visible=Falsch
37EndSub
38SubListl_Click()'Mauspunkt-Listenfeld
39DimctAsInteger
40data1.RecordSource=listl.Text
41ct=data1.Database.TableDefs(list1.ListIndex).Fields.Count
42grid1.Cols=ct
43grid1.Row=0
44ForI=0Toct-1'Fügen Sie jeden Feldnamen in der Tabelle zur ersten Zeile des Rasters hinzu
45grid1.Col=I
46grid1.Text=data1.Database(data1.RecordSource),Fields(I).Name
47Nächste
48data1.Refresh
49data1.Recordset.MoveLast
50grid1.Rows=data1.Recordset.RecordCount 1
51data1.Recordset.MoveFirst
52grid1.Row=0
53WhileNotdata1.Recordset.EOF'Daten in jede Zelle des Rasters einlesen
54grid1.Row=grid1.Row 1
55Fori=0Toct-1
56grid1.Col=I
57IfNotIsNull(data.Recordset(I).Value)Then
58grid1.Text=data.Recordset(I).Value
59Sonst
60grid1.Text=""
61EndIf
62cellwidth=TextWidth(grid1.Text) 200
63Ifcellwidth>grid1.ColWidth(I)Then
64gridl.ColWidth(I)=Zellenbreite
65EndIf
66WeiterI
67data1.Recordset.MoveNext
68Wend
69grid1.Width=0
70Fori=0Toct-1'Berechnen Sie die Gesamtbreite des Gitters
71grid1.Width=gridl.Width gridl.ColWidth(I)
72WeiterI
73Ifgrid1.Width>scalewidthThen'Wenn die Gesamtbreite des Rasters größer als die Fensterbreite ist
74grid1.Width=Skalenbreite
75EndIf
76grid1.Height=(gridl.Rows 2)*20*grid1.FontSize' Rasterlänge berechnen
77Ifgrid1.Height>3200Then'Wenn die Gitterlänge außerhalb der Grenzen liegt
78grid1.Height=3200
79EndIf
80browser.Width=grid1.Width 300'Fensterbreite festlegen
81grid1.Visible=True
82EndSub->