Доступ Microsoft — это наиболее часто используемая база данных для Visual Basic, но Visual Basic не предоставляет функцию, аналогичную команде BROWS в FoxPROforWindows, для просмотра базы данных Access. Эта программа предоставляет метод, аналогичный командному интерфейсу BROWS, для просмотра баз данных Access. Заинтересованные читатели могут переписать эту программу как подпрограмму с параметрами (имя базы данных, имя таблицы, имя поля, ширина поля и т. д.), чтобы реализовать метод, аналогичный Foxproforwindows. . Функции команды BROWS вызываются в вашем собственном приложении.
Сначала определите сетку (gridl), поле списка (list1), обычное диалоговое окно (dlg), элемент осведомленности о данных (datatal) и две командные кнопки (command1 и command2) в окне и расположите их позиции.
Когда программа запустится, нажмите кнопку «Открыть», чтобы открыть диалоговое окно. После выбора файла базы данных программа отображает имена таблиц, содержащихся в базе данных, в списке. Щелкните имя таблицы в списке, чтобы просмотреть ее. стол. Эта программа может автоматически устанавливать размер области просмотра в соответствии с длиной поля и размером шрифта, чтобы гарантировать, что область просмотра не выходит за пределы окна. Если окно не может заполнить область просмотра, программа автоматически добавляет в область просмотра горизонтальные или вертикальные полосы прокрутки. Прилагаю список программ:
1SubCommand1_Click()'Нажмите кнопку «Открыть» мышкой
2Dim,IAsInteger,cuntAsInteger
3grid1.Visible=Ложь
4dlg.Имя_файла=""
5dlg.Filter="Доступ(*.MDB)|*.MDB"
6dlg.FilterIndex=1
7dlg.Action=1'Открыть диалоговое окно
8Ifdlg.Filename=""Тогда, если файл не выбран
9GoTocanc
10КонецЕсли
11data.Connect=""
12data.DatabaseName=dlg.Filename
13data.RecordSource=""
14data.Обновить
15browser.Caption="Доступ к браузеру[" datal.DatabaseName "]"
16cunt=data.Database.TableDefs.Count
17listl.Очистить
18ForI=0Tocunt-1'Добавьте имя таблицы в список.
19IfLeft(data.Database.TableDefs(I).Name,4)<>"Msys"Then
20listl.Additemdata.Database.TableDefs(I).Name
21КонецЕсли
22ДалееI
23label1.Visible=Истина
24list1.Visible=Истина
25list1.ListIndex=0
26кан:
27EndSub
28SubCommand2_Click()'Нажмите кнопку «Выход» мышкой
29Конец
30EndSub
31Подформа_Загрузка()
32browser.Caption="Доступ к браузеру"
33grid1.Height=3200
34grid1.Visibli=False
35list1.Visible=Ложь
36label1.Visible=Ложь
37EndSub
38SubListl_Click()'Окно списка точек мыши
39DimctAsInteger
40data1.RecordSource=listl.Text
41ct=data1.Database.TableDefs(list1.ListIndex).Fields.Count
42grid1.Cols=ct
43grid1.Row=0
44ForI=0Toct-1'Добавьте каждое имя поля в таблице в первую строку сетки.
45grid1.Col=I
46grid1.Text=data1.Database(data1.RecordSource),Поля(I).Имя
47Nexti
48data1.Обновить
49data1.Recordset.MoveLast
50grid1.Rows=data1.Recordset.RecordCount 1
51data1.Recordset.MoveFirst
52grid1.Row=0
53WhileNotdata1.Recordset.EOF'Чтение данных в каждую ячейку сетки
54grid1.Row=grid1.Row 1
55Fori=0Toct-1
56grid1.Col=I
57IfNotIsNull(data.Recordset(I).Value)Then
58grid1.Text=data.Recordset(I).Value
59Еще
60grid1.Text=""
61КонецЕсли
62cellwidth=TextWidth(grid1.Text) 200
63Если ширина ячейки>grid1.ColWidth(I), то
64gridl.ColWidth(I)=ширина ячейки
65КонецЕсли
66ДалееI
67data1.Recordset.MoveNext
68Венд
69grid1.Width=0
70Fori=0Toct-1'Рассчитать общую ширину сетки
71grid1.Width=gridl.Widthgridl.ColWidth(I)
72ДалееI
73Ifgrid1.Width>scalewidthThen'Если общая ширина сетки больше ширины окна
74grid1.Width=ширина масштаба
75КонецЕсли
76grid1.Height=(gridl.Rows 2)*20*grid1.FontSize' Вычислить длину сетки
77Ifgrid1.Height>3200Then'Если длина сетки выходит за пределы
78grid1.Height=3200
79КонецЕсли
80browser.Width=grid1.Width 300'Установить ширину окна
81grid1.Visible=Истина
82EndSub->