程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 用VisualBasic開發數據庫浏覽器

用VisualBasic開發數據庫浏覽器

編輯:VB綜合教程
MicrosoftAccess是VisualBasic最常用的數據庫,但VisualBasic沒有提供類似FoxproforWindows的BROWS命令的函數來浏覽Access數據庫。本程序提供了一種類似BROWS命令界面浏覽Access數據庫的方法,感興趣的讀者可以把這個程序改寫為帶參數(數據庫名、表名、字段名、字段寬度等)的子程序,實現類似Foxproforwindows的BROWS命令的功能,在自己的應用程序中調用。
  首先,在窗口中定義一個網格(gridl)、一個列表框(list1)、一個普通對話框(dlg)、一個數據察覺項(datal)、兩個命令按鈕(command1和command2),排好位置。
  程序執行時,按“打開”按鈕打開一個對話框,選定數據庫文件後程序在列表框中顯示數據庫包含的表名,單擊列表框中的表名即可浏覽該表。本程序可自動根據字段長度和字體大小設置浏覽區的大小,以保證浏覽區不會超出窗口。如果窗口滿足不了浏覽區,程序自動給浏覽區加水平或豎直滾動條。附程序清單:
  1SubCommand1_Click()'鼠標器點“打開”鍵
  2Dim,IAsInteger,cuntAsInteger
  3grid1.Visible=False
  4dlg.Filename=""
  5dlg.Filter="Access(*.MDB)|*.MDB"
  6dlg.FilterIndex=1
  7dlg.Action=1'打開對話框
  8Ifdlg.Filename=""Then'如果未選定文件
  9GoTocanc
  10EndIf
  11datal.Connect=""
  12datal.DatabaseName=dlg.Filename
  13datal.RecordSource=""
  14datal.Refresh
  15browser.Caption="Access浏覽器[" datal.DatabaseName "]"
  16cunt=datal.Database.TableDefs.Count
  17listl.Clear
  18ForI=0Tocunt-1'將表名加入到列表框
  19IfLeft(datal.Database.TableDefs(I).Name,4)<>"Msys"Then
  20listl.Additemdatal.Database.TableDefs(I).Name
  21EndIf
  22NextI
  23label1.Visible=True
  24list1.Visible=True
  25list1.ListIndex=0
  26canc:
  27EndSub
  28SubCommand2_Click()'鼠標器點“退出”鍵
  29End
  30EndSub
  31SubForm_Load()
  32browser.Caption="Access浏覽器"
  33grid1.Height=3200
  34grid1.Visibli=False
  35list1.Visible=False
  36label1.Visible=False
  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),Fields(I).Name
  47Nexti
  48data1.Refresh
  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(datal.Recordset(I).Value)Then
  58grid1.Text=datal.Recordset(I).Value
  59Else
  60grid1.Text=""
  61EndIf
  62cellwidth=TextWidth(grid1.Text) 200
  63Ifcellwidth>grid1.ColWidth(I)Then
  64gridl.ColWidth(I)=cellwidth
  65EndIf
  66NextI
  67data1.Recordset.MoveNext
  68Wend
  69grid1.Width=0
  70Fori=0Toct-1'計算網格總寬度
  71grid1.Width=gridl.Width gridl.ColWidth(I)
  72NextI
  73Ifgrid1.Width>scalewidthThen'如果網格總寬度大於窗口寬度
  74grid1.Width=scalewidth
  75EndIf
  76grid1.Height=(gridl.Rows 2)*20*grid1.FontSize'計算網格長度
  77Ifgrid1.Height>3200Then'如網格長度出界
  78grid1.Height=3200
  79EndIf
  80browser.Width=grid1.Width 300'設置窗口寬度
  81grid1.Visible=True
  82EndSub->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved