Microsoft Access는 Visual Basic에서 가장 일반적으로 사용되는 데이터베이스이지만 Visual Basic은 Access 데이터베이스를 탐색하기 위한 FoxPROforWindows의 BROWS 명령과 유사한 기능을 제공하지 않습니다. 이 프로그램은 Access 데이터베이스를 탐색하기 위한 BROWS 명령 인터페이스와 유사한 방법을 제공합니다. 관심 있는 독자는 이 프로그램을 매개변수(데이터베이스 이름, 테이블 이름, 필드 이름, 필드 너비 등)가 있는 서브루틴으로 다시 작성하여 다음과 유사한 방법을 구현할 수 있습니다. Foxproforwindows. BROWS 명령의 기능은 사용자의 응용 프로그램에서 호출됩니다.
먼저 창에 있는 그리드(gridl), 목록 상자(list1), 일반 대화 상자(dlg), 데이터 인식 항목(datal), 명령 단추 2개(command1 및 command2)를 정의하고 위치를 정렬합니다.
프로그램이 실행되면 "열기" 버튼을 눌러 대화 상자를 엽니다. 데이터베이스 파일을 선택한 후 목록 상자에 있는 테이블 이름을 클릭하면 해당 데이터베이스에 포함된 테이블 이름이 표시됩니다. 테이블. 이 프로그램은 탐색 영역이 창을 초과하지 않도록 필드 길이와 글꼴 크기에 따라 탐색 영역의 크기를 자동으로 설정할 수 있습니다. 창이 탐색 영역을 채울 수 없는 경우 프로그램은 자동으로 탐색 영역에 가로 또는 세로 스크롤 막대를 추가합니다. 첨부된 프로그램 목록은 다음과 같습니다.
1SubCommand1_Click()'마우스로 "열기" 버튼 클릭
2Dim,IAsInteger,cuntAsInteger
3grid1.Visible=False
4dlg.파일 이름=""
5dlg.Filter="액세스(*.MDB)|*.MDB"
6dlg.필터인덱스=1
7dlg.Action=1'대화상자 열기
8Ifdlg.Filename=""Then'파일이 선택되지 않은 경우
9GoTocanc
10EndIf
11데이터.연결=""
12data.DatabaseName=dlg.파일 이름
13data.RecordSource=""
14data.Refresh
15browser.Caption="브라우저 접속[" datal.DatabaseName "]"
16cunt=data.Database.TableDefs.Count
17목록.지우기
18ForI=0Tocunt-1'목록 상자에 테이블 이름 추가
19IfLeft(data.Database.TableDefs(I).Name,4)<>"Msys"Then
20listl.Additemdata.Database.TableDefs(I).이름
21EndIf
22다음I
23label1.Visible=True
24list1.Visible=참
25list1.ListIndex=0
26canc:
27EndSub
28SubCommand2_Click()'마우스로 "종료" 버튼 클릭
29종료
30EndSub
31하위양식_로드()
32browser.Caption="브라우저 접속"
33그리드1.높이=3200
34grid1.Visibli=거짓
35list1.Visible=거짓
36label1.Visible=False
37EndSub
38SubListl_Click()'마우스 포인트 목록 상자
39DimctAsInteger
40data1.RecordSource=listl.Text
41ct=data1.Database.TableDefs(list1.ListIndex).Fields.Count
42grid1.Cols=ct
43그리드1.행=0
44ForI=0Toct-1'테이블의 각 필드 이름을 그리드의 첫 번째 행에 추가
45grid1.Col=I
46grid1.Text=data1.Database(data1.RecordSource),필드(I).이름
47넥스티
48data1.새로고침
49data1.Recordset.MoveLast
50grid1.Rows=data1.Recordset.RecordCount 1
51data1.Recordset.MoveFirst
52그리드1.행=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).값
59그밖에
60grid1.Text=""
61EndIf
62셀폭=텍스트폭(그리드1.텍스트) 200
63Ifcellwidth>grid1.ColWidth(I)Then
64gridl.ColWidth(I)=셀 너비
65EndIf
66다음I
67data1.Recordset.MoveNext
68웬드
69그리드1.폭=0
70Fori=0Toct-1'그리드의 전체 너비를 계산합니다.
71grid1.Width=gridl.Width 그리드l.ColWidth(I)
72다음나
73Ifgrid1.Width>scalewidthThen'그리드의 전체 너비가 창 너비보다 큰 경우
74grid1.Width=scalewidth
75EndIf
76grid1.Height=(gridl.Rows 2)*20*grid1.FontSize' 그리드 길이 계산
77Ifgrid1.Height>3200Then'그리드 길이가 범위를 벗어난 경우
78grid1.높이=3200
79EndIf
80browser.Width=grid1.Width 300'창 너비 설정
81그리드1.표시=참
82EndSub->