注冊(cè) 登錄
Office中國(guó)論壇/Access中國(guó)論壇 返回首頁(yè)

todaynew的個(gè)人空間 http://m.mzhfr.cn/?144436 [收藏] [復(fù)制] [分享] [RSS]

日志

面向初學(xué)者的窗體功能設(shè)計(jì)集成

已有 1588 次閱讀2009-2-11 21:07 |個(gè)人分類:程序|

面向初學(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

發(fā)表評(píng)論 評(píng)論 (1 個(gè)評(píng)論)

回復(fù) tmtony 2009-2-12 00:32
很細(xì)致!

facelist doodle 涂鴉板

您需要登錄后才可以評(píng)論 登錄 | 注冊(cè)

QQ|站長(zhǎng)郵箱|小黑屋|手機(jī)版|Office中國(guó)/Access中國(guó) ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2025-7-13 08:17 , Processed in 0.066928 second(s), 18 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回頂部