Microsoft Access est la base de données la plus couramment utilisée pour Visual Basic, mais Visual Basic ne fournit pas de fonction similaire à la commande BROWS de FoxPRoforWindows pour parcourir la base de données Access. Ce programme fournit une méthode similaire à l'interface de commande BROWS pour parcourir les bases de données Access. Les lecteurs intéressés peuvent réécrire ce programme sous forme de sous-programme avec des paramètres (nom de la base de données, nom de la table, nom du champ, largeur du champ, etc.) pour implémenter une méthode similaire à Foxproforwindows. . Les fonctions de la commande BROWS sont appelées dans votre propre application.
Tout d'abord, définissez une grille (gridl), une zone de liste (list1), une boîte de dialogue normale (dlg), un élément de prise en compte des données (data) et deux boutons de commande (command1 et command2) dans la fenêtre, puis organisez leurs positions.
Lorsque le programme est exécuté, appuyez sur le bouton "Ouvrir" pour ouvrir une boîte de dialogue. Après avoir sélectionné le fichier de base de données, le programme affiche les noms de table contenus dans la base de données dans la zone de liste. Cliquez sur le nom de la table dans la zone de liste pour parcourir la liste. tableau. Ce programme peut définir automatiquement la taille de la zone de navigation en fonction de la longueur du champ et de la taille de la police pour garantir que la zone de navigation ne dépasse pas la fenêtre. Si la fenêtre ne peut pas remplir la zone de navigation, le programme ajoute automatiquement des barres de défilement horizontales ou verticales à la zone de navigation. Ci-joint la liste des programmes :
1SubCommand1_Click()'Cliquez sur le bouton "Ouvrir" avec la souris
2Dim,IAsInteger,cuntAsInteger
3grid1.Visible=Faux
4dlg.Filename=""
5dlg.Filter="Accès(*.MDB)|*.MDB"
6dlg.FilterIndex=1
7dlg.Action=1'Ouvrir la boîte de dialogue
8Ifdlg.Filename=""Alors si aucun fichier n'est sélectionné
9GoTocanc
10FinSi
11data.Connect=""
12data.DatabaseName=dlg.Filename
13data.RecordSource=""
14data.Actualiser
15browser.Caption="Accéder au navigateur[" datal.DatabaseName "]"
16cunt=data.Database.TableDefs.Count
17listl.Effacer
18ForI=0Tocunt-1'Ajouter le nom de la table à la zone de liste
19IfLeft(data.Database.TableDefs(I).Name,4)<>"Msys"Puis
20listl.Additemdata.Database.TableDefs(I).Name
21FinSi
22SuivantJe
23label1.Visible=Vrai
24list1.Visible=Vrai
25list1.ListIndex=0
26annulation :
27FinSub
28SubCommand2_Click()'Cliquez sur le bouton "Quitter" avec la souris
29Fin
30FinSub
31SubForm_Load()
32browser.Caption="Accéder au navigateur"
33grid1.Hauteur=3200
34grid1.Visibli=Faux
35list1.Visible=Faux
36label1.Visible=Faux
37FinSub
38SubListl_Click()'Boîte de liste des points de souris
39DimctAsInteger
40data1.RecordSource=listl.Text
41ct=data1.Database.TableDefs(list1.ListIndex).Fields.Count
42grid1.Cols=ct
43grid1.Row=0
44ForI=0Toct-1'Ajoute chaque nom de champ du tableau à la première ligne de la grille
45grid1.Col=I
46grid1.Text=data1.Database(data1.RecordSource),Fields(I).Name
47Suivant
48data1.Actualiser
49data1.Recordset.MoveLast
50grid1.Rows=data1.Recordset.RecordCount 1
51data1.Recordset.MoveFirst
52grid1.Row=0
53WhileNotdata1.Recordset.EOF'Lire les données dans chaque cellule de la grille
54grid1.Row=grille1.Rangée 1
55Fori=0Toct-1
56grid1.Col=I
57IfNotIsNull(data.Recordset(I).Value)Alors
58grid1.Text=data.Recordset(I).Value
59Autrement
60grid1.Text=""
61FinSi
62cellwidth=TextWidth(grid1.Text) 200
63Ifcellwidth>grid1.ColWidth(I)Alors
64gridl.ColWidth(I)=largeur de cellule
65FinSi
66SuivantI
67data1.Recordset.MoveNext
68Wend
69grid1.Width=0
70Fori=0Toct-1'Calculer la largeur totale de la grille
71grid1.Width=gridl.Width gridl.ColWidth(I)
72SuivantI
73Ifgrid1.Width>scalewidthThen'Si la largeur totale de la grille est supérieure à la largeur de la fenêtre
74grid1.Width=largeur d'échelle
75FinSi
76grid1.Height=(gridl.Rows 2)*20*grid1.FontSize' Calculer la longueur de la grille
77Ifgrid1.Height>3200Then'Si la longueur de la grille est hors limites
78grid1.Hauteur=3200
79FinSi
80browser.Width=grid1.Width 300'Définir la largeur de la fenêtre
81grid1.Visible=Vrai
82FinSub->