【文章內(nèi)容簡介】
因此,在添加一個“Module1()”,并在其中定義一個Connection對象,代碼如下: Option ExplicitPublic conn As New 39。標記連接對象 在窗體裝載的事件中,首先打開學生管理數(shù)據(jù)表,將所有的學生在List1控件中顯示出來。定義一個字符串變量sql,用來標記SQL語句: Private sub Form_load() Dim sql As String 在程序的通用變量申明部分定義一個Recordset對象用來打開數(shù)據(jù)表: Option Explicit Dim rsl as New 在Form_Load事件中打開數(shù)據(jù)表,使用Recordset對象的open方法: Private Sub Form_Load() Dim sql As String …… =adUseClient sql=”select * from 學生管理 order by 學號” ’打開學生管理數(shù)據(jù)表,在列表框中顯示所有的學生 sql,conn,adOpenKeyset,adLockPessimistic …… 這里選擇了在List1控件中顯示學生姓名和學號,中間用空格隔開??崭竦臄?shù)目可根據(jù)添加控件時“姓名”和“學號”這兩個Label控件的位置而定,最好做到這兩個控件和List1控件中的學生姓名和學號相對應。 在操行評語列表框中添加可選項,分別為“優(yōu)”、“良”、“中”、“差”:Private Sub Form_Load()…… 優(yōu) 良 中 差……如果要在程序運行中創(chuàng)建數(shù)庫和表,還要引用對象庫“Microsoft ADO For DDL Security”,簡稱為ADOX,。ADOX是對ADO對象和編程模型的擴展,它將ADO擴展為包括創(chuàng)建、修改和刪除模式對象。添加對ADOX的引用。在程序的通用變量聲明部分,定義一個Catlog對象、一個Table對象:Option ExplicitDim rs1 As New Dim cat As New Dim tbl As New ……使用ADOX,應該先設置Catlog對象的ActiveConnecion屬性:Private Sub Form_Load()……”差”Set =conn……遍歷數(shù)據(jù)表中所有的表,可以使用Catlog對象的Tables集合:Privat Sub Form_Load()……Set =conn……For Each tbl in …… Next獲取數(shù)據(jù)表的名字,判斷當前的數(shù)據(jù)表是否為評語項目表,方法是獲取數(shù)據(jù)表名稱最后兩個字。如果這兩個字是“批語”,則表示此數(shù)據(jù)表為評語項目表,代碼如下:Private Sub Form_Load()……For Each tb1 In Str= If right(str,2)=”評語” then …… end IfNext使用Treeview控件的Nodes集合的Add方法添加節(jié)點。在Form_Load事件中添加Treeview節(jié)點。表名稱作為父節(jié)點,表中的字段名作為子節(jié)點。代碼如下:Private Sub Form_Load()……If Right(str, 2) = 評語 Then Set mnode = () = str Dim i As Integer Dim nodeindex As Integer nodeindex = For i = 0 To 1 Set mnode = (nodeindex, tvwChild) = (i).Name Next End If Next添加異常處理語句“Dim connectionstring As StringDim sql As StringOn Error GoTo openerror……openerror: MsgBox End Sub單擊學生列表框,顯示學生信息及該生歷年評語。下面實現(xiàn)這一功能。當用戶單擊某一學生時,使用List控件的ListIndex屬性獲取當前學生在列表框中的位置,在list1_click事件中添加代碼:Privat Sub List1_Click()……i=Clng()……End Sub先將Recordset數(shù)據(jù)對象移動到第一條,然后使用Move方法將數(shù)據(jù)對象移動到用戶選定的學生。Privat Sub List1_Click()……i=Clng() i……End Sub添加displaystudent過程來顯示學生信息。在displaystudent過程中打開學生操行數(shù)據(jù)表,代碼如下:Public Sub displaypy()Dim rs As New Dim sql As String……On Error GoTo displaypyerror = adUseClientsql = select * from 學生操行 where 學號=39。 amp。 ID_num amp。 39。 amp。 order by 學期 sql, conn, adOpenKeyset, adLockPessimistic利用Recordset對象的EOF屬性判斷是否有當前學生的評語,如果有,則將記錄移動到第一條,如果沒有,則給出提示。Public Sub displaypy()…… sql, conn, adOpenKeyset, adLockPessimisticIf = False Then Else MsgBox 該生沒有評語!, vbOKOnly + vbExclamation, Exit SubEnd If使用循環(huán)語句將該生的所有評語添加到Text1控件中。Public Sub displaypy()……End If……While = False Text1(0).Text = Text1(0).Text amp。 vbCrLf amp。 第 amp。 (1) amp。 學期 amp。 vbCrLf amp。 Space(2) amp。 _ (2) amp。 vbCrLf amp。 Space(10) amp。 (3) amp。 Space(2) amp。 (4) Wend對于“添加評語”、“修改評語”、“刪除評語”、“添加到學生評語”等按鈕,代碼如下:Private Sub Command10_Click()If selstu = True Then ’ 添加評語 = True = True = True = True = True = True(1) = True = False = False = 1Else MsgBox 請選擇學生!, vbOKOnly + vbExclamation, End IfEnd SubPrivate Sub Command5_Click() ’修改評語Dim rs As New Dim sql As StringDim i As IntegerDim str As String 39。記錄用戶輸入Dim prompt As String 39。函數(shù)參數(shù)prompt = 修改“ + str1 + ”中的“ + str2 + ”類別評語: amp。 str = InputBox(prompt, 修改評語)If str = Then Exit SubElsei = () strsql = select amp。 str2 amp。 from amp。 str1 sql, conn, adOpenKeyset, adLockPessimistic i(str2) = strEnd IfEnd SubPrivate Sub Command6_Click() ’刪除評語Dim rs As New Dim sql As StringDim i As IntegerDim answer As String 39。記錄用戶輸入Dim prompt As String 39。函數(shù)參數(shù)prompt = 確實要刪除此條評語嗎?answer = MsgBox(prompt, vbYesNo, 刪除評語)If answer = vbYes Then i = () sql = select amp。 str2 amp。 from amp。 str1 sql, conn, adOpenKeyset, adLockPessimistic i End IfEnd SubPrivate Sub Command3_Click() ’添加到學生評語Dim i As Integeri = If Text1(1).Text = ThenText1(1).Text = Space(2) amp。 Text1(1).Text amp。 Else Text1(1).Text = Text1(1).Text amp。 End IfEnd Sub對于“添加日期”、“老師簽名”、“放棄增加”、“保存評語”、“重寫”等按鈕,代碼如下:Private Sub Command1_Click() ’ 添加日期Text1(1).Text = Text1(1).Text amp。 vbCrLf amp。 DateEnd SubPrivate Sub Command2_Click() ’老師簽名xing = InputBox(輸入老師姓或姓名:)Text1(1).Text = Text1(1).Text amp。 vbCrLf amp。 Space(12) amp。 xing amp。 老師End SubPrivate Sub Command8_Click() ’放棄增加 = True = True = False = False = False = False = False = FalseEnd SubPrivate Sub Command7_Click() ’保存評語Dim rs As New Dim sql As String = adUseClientsql = select * from 學生操行 where 學號=39。 amp。 ID_num amp。 39。 amp。 order by 學期 sql, conn, adOpenKeyset, adLockPessimisticDim cx As String(0) = ID_num(1) = xq + 1(3) = Date(4) = xing + 老師cx = Replace(Text1(1).Text, Date, )cx = Replace(cx, xing + 老師, )(2) = cx = False = False = False = False = False = False(1) = False = True = TrueEnd SubPrivate Sub Command14_Click() ’重寫Text1(1).Text = End Sub單擊“添加新評語”按鈕,可以在選定的評語項目中,代碼如下:Private Sub Command4_Click()Dim rs As New Dim sql As StringDim str As String 39。記錄用戶輸入Dim prompt As String 39。函數(shù)參數(shù)p