面向初學(xué)者的窗體功能設(shè)計(jì)集成
你或許和我一樣總在琢磨能不能在一個(gè)窗體中使數(shù)據(jù)的顯示多種多樣,呵呵。這個(gè)世界時(shí)變化多端的,我們的窗體也是這個(gè)世界上事物的一種反映,因此窗體也就可以是變化多端的。對(duì)于我們這樣的Access初學(xué)者來(lái)說(shuō),快速的掌握變化的規(guī)律的最好方法就是經(jīng)常性的做一些總結(jié),由此你便能由此及彼,舉一反三,其學(xué)習(xí)的效率自然提高。經(jīng)過(guò)兩月的學(xué)習(xí),在下對(duì)窗體設(shè)計(jì)中常用的一些功能進(jìn)行了一些膚淺的總結(jié),并將其集成在下面Access小程序中。
1、加載時(shí),使用子窗體1,學(xué)生表全部記錄,鎖定主窗體和子窗體記錄,配置按鈕。
Private Sub Form_Load()
Dim sql As String
Me.子窗體.SourceObject = "子窗體1"
sql = "select * from 學(xué)生表"
Me.班級(jí)ID.Locked = True
Me.班級(jí)名稱.Locked = True
Me.子窗體.Form.RecordSource = sql
Me.子窗體.Form.AllowAdditions = False
Me.子窗體.Form.AllowDeletions = False
Me.子窗體.Form.AllowEdits = False
Me.隱藏列.Visible = False
Me.展開列.Visible = False
Me.隱藏行.Visible = False
Me.展開行.Visible = False
End Sub
2、關(guān)閉窗體時(shí),壓縮并修復(fù)數(shù)據(jù)庫(kù)。
Private Sub Form_Close()
'壓縮和修復(fù)數(shù)據(jù)庫(kù)
CommandBars("Tools").Controls("數(shù)據(jù)庫(kù)實(shí)用工具(&D)").Controls("壓縮和修復(fù)數(shù)據(jù)庫(kù)(&C)...").accDoDefaultAction
End Sub
3、雙擊班級(jí)ID或班級(jí)名稱時(shí),解鎖。
Private Sub 班級(jí)ID_DblClick(Cancel As Integer)
Me.班級(jí)ID.Locked = False
End Sub
Private Sub 班級(jí)名稱_DblClick(Cancel As Integer)
Me.班級(jí)名稱.Locked = False
End Sub
4、失去焦點(diǎn)時(shí),鎖定班級(jí)ID或班級(jí)名稱。
Private Sub 班級(jí)ID_LostFocus()
Me.班級(jí)ID.Locked = True
End Sub
Private Sub 班級(jí)名稱_LostFocus()
Me.班級(jí)名稱.Locked = True
End Sub
5、單擊時(shí),使用字窗體1或子窗體2。
Private Sub 更換窗體1_Click()
Me.子窗體.SourceObject = "子窗體1"
Me.隱藏列.Visible = True
Me.展開列.Visible = True
Me.隱藏行.Visible = True
Me.展開行.Visible = True
Me.新增.Visible = True
Me.刪除.Visible = True
End Sub
Private Sub 更換窗體2_Click()
Me.子窗體.SourceObject = "子窗體2"
Me.隱藏列.Visible = False
Me.展開列.Visible = False
Me.隱藏行.Visible = False
Me.展開行.Visible = False
Me.新增.Visible = False
Me.刪除.Visible = False
End Sub
6、單擊時(shí),顯示或者隱藏子窗體。
Private Sub 隱藏窗體_Click()
Me.子窗體.Visible = False
End Sub
Private Sub 顯示窗體_Click()
Me.子窗體.Visible = True
End Sub
7、單擊時(shí),顯示或隱藏按鈕。
Private Sub 隱藏按鈕_Click()
Me.隱藏列.Visible = False
Me.展開列.Visible = False
Me.隱藏行.Visible = False
Me.展開行.Visible = False
End Sub
Private Sub 顯示按鈕_Click()
Me.隱藏列.Visible = True
Me.展開列.Visible = True
Me.隱藏行.Visible = True
Me.展開行.Visible = True
End Sub
8、單擊時(shí),自動(dòng)編號(hào)并新增記錄。
Private Sub 新增_Click()
Dim sql As String
DoCmd.SetWarnings no
sql = "INSERT INTO 學(xué)生表 ( 班級(jí)ID, 學(xué)生ID ) "
sql = sql + "SELECT Right(Forms!主窗體!班級(jí)ID,1) AS 班級(jí)ID, IIf(Max([學(xué)生ID]) Is Null,Forms!主窗體!班級(jí)ID & '01',Format(Max([學(xué)生ID])+1,'000')) AS ID "
sql = sql + "FROM 學(xué)生表 WHERE 學(xué)生表.班級(jí)ID=Forms!主窗體!班級(jí)ID;"
DoCmd.RunSQL sql
Me.子窗體.Requery
End Sub
9、單擊時(shí),刪除指定記錄。
Private Sub 刪除_Click()
DoCmd.SetWarnings no
DoCmd.RunSQL "DELETE * FROM 學(xué)生表 WHERE 刪除=Yes;"
Me.子窗體.Requery
End Sub
10、單擊時(shí),鎖定、解鎖、刷新子窗體。
Private Sub 鎖定_Click()
Me.子窗體.Form.AllowAdditions = False
Me.子窗體.Form.AllowDeletions = False
Me.子窗體.Form.AllowEdits = False
End Sub
Private Sub 解鎖_Click()
Me.子窗體.Form.AllowAdditions = True
Me.子窗體.Form.AllowDeletions = True
Me.子窗體.Form.AllowEdits = True
End Sub
Private Sub 刷新_Click()
Me.子窗體.Requery
End Sub
11、單擊時(shí),隱藏或展開列。
Private Sub 隱藏列_Click()
Me.子窗體.Form.家庭住址.ColumnHidden = True
Me.子窗體.Form.聯(lián)系電話.ColumnHidden = True
End Sub
Private Sub 展開列_Click()
Me.子窗體.Form.家庭住址.ColumnHidden = False
Me.子窗體.Form.聯(lián)系電話.ColumnHidden = False
End Sub
12、單擊時(shí),隱藏或展開行。
Private Sub 隱藏行_Click()
Dim sql As String
sql = "select * from 學(xué)生表 where isnull(姓名)"
Me.子窗體.Form.RecordSource = sql
Me.子窗體.Requery
End Sub
Private Sub 展開行_Click()
Dim sql As String
sql = "select * from 學(xué)生表"
Me.子窗體.Form.RecordSource = sql
Me.子窗體.Requery
End Sub