第一篇:VB程序設計說明(寫寫幫整理)
選題介紹及意義,程序模塊及功能,程序流程圖,程序源碼及注釋,程序的后續完善及存在問題,設計程序的心得體會 一.選題說明及意義
用VB實現備忘錄的基本功能,包括記事本,屏幕抓圖,數字時鐘和日歷等功能,利用VB中的諸多控件,例如PictureBox,Label,CommendButton,Timer,CommendDialog,RichTextBox等,完成VB程序的諸多功能的實現,創建功能較為完善的記事本,并具有一定輔助功能,對于利用此軟件的人能夠具有一定的便利。二.程序模塊及功能實現流程圖
三.部分程序代碼 1.屏幕截圖部分
Private Declare Function GetDC Lib “user32”(ByVal hwnd As Long)As Long Private Declare Function StretchBlt Lib “gdi32”(ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long)As Long
Private Sub Command1_Click()Dim wScreen As Long Dim hScreen As Long Dim w As Long Dim h As Long Picture1.Cls wScreen = Screen.Width Screen.TwipsPerPixelX hScreen = Screen.Height Screen.TwipsPerPixelY ‘定義截屏的長度和寬度等于屏幕實際長寬 Picture1.ScaleMode = vbPixels w = Picture1.ScaleWidth h = Picture1.ScaleHeight hdcScreen = GetDC(0)r = StretchBlt(Picture1.hdc, 0, 0, w, h, hdcScreen, 0, 0, wScreen, hScreen, vbSrcCopy)‘StretchBlt,函數名。該函數從源矩形中復制一個位圖到目標矩形,必要時按目標設備設置的模式進行圖像的拉伸或壓縮。
End Sub
Private Sub Command2_Click()‘另存為按鍵代碼 Me.Picture = Me.Image CommonDialog1.Filter = “BMP文件(*.bmp)|*.bmp|JPG文件(*.jpg)|*.jpg” CommonDialog1.ShowSave CommonDialog1.Flags = &H2 + &H4 + &H8 ‘&H2使用長文件名 &H4 隱藏只讀復選框。
&H8強制對話框將對話框打開時的目錄置成當前目錄
If CommonDialog1.FileName <> “" Then SavePicture Me.Picture, CommonDialog1.FileName End If End Sub
Private Sub Command3_Click()‘退出按鍵代碼 Form3.Hide form6.Show End Sub 2.登陸部分
Option Explicit Dim Npass As Integer
Private Sub Command1_Click()If username.Text = ”111“ And password.Text = ”111“ And Npass < 3 Then Form5.Hide Form2.Show Else Npass = Npass + 1 If Npass = 3 Then MsgBox ”你沒有機會了“ End Else MsgBox ”密碼第“ & Npass & ”錯誤!請再試一次.“, 0, ”密碼輸入錯誤“ password.Text = ”“ ' password.SetFocus End If End If End Sub
Private Sub Command2_Click()username.Text = ”“ password.Text = ”“ End Sub 3.日記本部分代碼
Dim sfind As String Dim FileType, FiType As String Private Sub copy_Click()‘復制按鍵 Clipboard.Clear On Error Resume Next Clipboard.SetText TxtDemo.SelText End Sub
Private Sub date_Click()‘日期按鍵 Text1.SelText = Now End Sub
Private Sub delete_Click()‘刪除按鍵 RichTextBox1.SelText = ”“ End Sub
Private Sub edits_Click()‘編輯按鍵 RichTextBox1.SetFocus End Sub
Private Sub exit_Click()‘退出按鍵 Form2.Hide Form1.Show End Sub
Private Sub find_Click()‘查找按鍵 Dim sfind As Integer sfind = InputBox(”請輸入要查找的詞:“, ”查找內容“, sfind)RichTextBox1.find sfind If RichTextBox1.SelText <> sfind Then MsgBox ”找不到要查詢的內容“, , ”查詢結果報告“ End If End Sub Private Sub Form_Load()Me.Height = 6000 Me.Width = 9000
On Error Resume Next '出錯處理 RichTextBox1.Top = 20 RichTextBox1.Left = 20 RichTextBox1.Height = ScaleHeight40 End Sub
Private Sub new_Click(Index As Integer)‘新建按鍵 RichTextBox1.Text = ”“ '清空文本框 FileName = ”未命名“ Me.Caption = FileName End Sub
Private Sub open_Click()‘打開部分
CommonDialog1.Filter = ”文本文檔(*.txt)|*.txt|RTF文檔(*.rtf)|*.rtf|所有文件(*.*)|*.*“ CommonDialog1.ShowOpen RichTextBox1.Text = ”“ '清空文本框 FileName = CommonDialog1.FileName RichTextBox1.LoadFile FileName Me.Caption = ”記事本:“ & FileName End Sub
Private Sub paste_Click()Clipboard.Clear On Error Resume Next Clipboard.SetText RichTextBox1.SelText RichTextBox1.SelText = ”“ End Sub
Private Sub riji_Click()‘幫助日記部分 MsgBox ”日記Ver1.0版權所有(C)網絡“, vbOKOnly, ”關于“
End Sub
Private Sub save_Click()‘保存文件部分 CommonDialog1.Filter = ”文本文檔(*.txt)|*.txt|RTF文檔(*.rtf)|*.rtf|所有文件(*.*)|*.*“ CommonDialog1.ShowSave FileType = CommonDialog1.FileTitle FiType = LCase(Right(FileType, 3))FileName = CommonDialog1.FileName Select Case FiType Case ”txt“ RichTextBox1.SaveFile FileName, rtfText Case ”rtf“ RichTextBox1.SaveFile FileName, rtfRTF Case ”*.*“ RichTextBox1.SaveFile FileName End Select Me.Caption = ”記事本:“ & FileName End Sub
Private Sub selectall_Click()‘全選部分 RichTextBox1.SelStart = 0 RichTextBox1.SelLength = Len(RichTextBox1.Text)End Sub
Private Sub tie_Click()‘剪切部分 On Error Resume Next RichTextBox1.SelText = Clipboard.GetText RichTextBox1.SelText = ”" End Sub 4.數字時鐘部分代碼
Private LastMinute As Integer Private LastHour As Integer Private Lastx As Integer Private Lasty As Integer
Private Sub Form_Load()Lastx = 999 End Sub
Private Sub Timer1_Timer()Const pi = 3.141592653 ‘定義圓周率 Dim T Dim X As Integer Dim Y As Integer T = Now SEC = Second(T)Min = Minute(T)HR = Hour(T)frmClock.Scale(-16, 16)-(16,-16)If Min <> lastMin Or HR <> LastHour Then LastMinute = Min LastHour = HR frmClock.Cls Lastx = 999 frmClock.DrawWidth = 2 frmClock.DrawMode = 13 h = HR + pi / 60 X = 5 * Sin(h * pi / 6)Y = 5 * Cos(h * pi / 6)frmClock.Line(0, 0)-(X, Y)X = 8 * Sin(Min * pi / 30)Y = 8 * Cos(Min * pi / 30)frmClock.Line(0, 0)-(X, Y)frmClock.DrawWidth = 1 End If frmClock.DrawMode = 10 RED = RGB(255, 0, 0)X = 10 * Sin(SEC * pi / 30)Y = 10 * Cos(SEC * pi / 30)If Lastx <> 999 Then frmClock.Line(0, 0)-(Lastx, Lasty), RED End If frmClock.Line(0, 0)-(X, Y), RED Lastx = X Lasty = Y End Sub
Private Sub NoUse_Click()Unload Me End Sub 四.程序后續完善及存在問題
目前程序功能較為簡單,對于備忘錄部分只能實現簡單的文字輸入和截屏,日歷,數字時鐘的功能,在以后陸續的開發中會實現更多更復雜的功能,例如定時提醒,連接數據庫,Excel表格等功能,程序在設計之初與最后成品稍有 不同,對于程序設計中部分功能未能實現,十分遺憾,在以后的學習中會加強程序設計部分知識,逐漸完善程序功能。五.設計程序的心得體會
通過此次程序設計,我對于VB程序語言和VB各類控件有了更深入的了解,對于綜合VB各項函數等也有了更深入的學習,完成一個綜合的作品對于學習編程語言來說是進階必不可少的一部分,通過完成自己的作品也激發了我的創造思維和創作能力。在以后的學習中,我也會繼續學習和深入了解編程語言,為更好的做學術研究打基礎。
第二篇:論文VB程序
《教務信息管理系統VB程序設計》的教學思路(2010年高職單招計算機專業技能測試題)
福安市民族職業中學———馮建鋒
摘要:針對2010年高職單招計算機專業技能測試題,結合我省高職單招VB程序設計教學考綱要求進行分析。針對我校學生實際情況寫出《教務信息管理系統VB程序設計》的教學思路(要求)
關鍵詞:信息管理系統,VB程序設計,教學思路 程序思路,需要完成一個教務信息管理系統。
1:完成頁面的設計。首先創建一個工程,工程中自動生成一個Form,也就是我們常說的頁面,并給這個頁面的名稱設置成Form1,用以區分系統中其他的頁面。通過編輯欄中的,Label工具,在頁面中間插入一段文字,為“教務管理系統”。因為完成一個教務管理系統,需要完成的內容有學生信息的錄入,學生信息的修改,學生信息刪除以及學生信息的查詢。于是在該頁面使用Button工具,放置四個按鈕并將四個按鈕的Caption分別設置成“學生錄入”,“學生修改”,“學生刪除”和“信息統計”。且名稱分別設置成Command1,Command2,Command3,Command4。依據程序要求我們可以知道,需要完成學生錄入,學生修改,學生刪除,和信息統計的各個功能,就必須存在有四個排版各不相同的頁面,來滿足各個功能的需求,于是在工程的樹形菜單下選擇窗體,再選擇新建窗體。重復操作四次,成功建立了四個Form。分別命名為Form2,Form3,Form4,Form5用來區分和其他的Form。上面提到過的設置了四個按鈕,作為按鈕則是拿來點擊的,而按照我們的思路,四個按鈕分別代表了要完成的四項功能,那么可以得出每點擊一個按鈕,就應該要彈出相對應的頁面來提供給用戶恰當的服務。于是雙擊按鈕,將自動生成代碼如下: Private Sub Command1_Click()····· End Sub 其中Command1是代表按鈕的名稱整個函數就是代表了某一個按鈕被點擊之后應該執行的內容。End表示此函數結束。那么就應該寫入對應的內容。完成之后的代碼如下: Private Sub Command1_Click()
Form2.Show End Sub Private Sub Command2_Click()
Form4.Show End Sub Private Sub Command3_Click()
Form3.Show End Sub Private Sub Command4_Click()Form5.Show End Sub 分別代表了不同的按鈕點擊之后不同的執行的位置。其中Form.Show則代表對于某一個頁面進行顯示的功能。以上第一段表示了點擊按鈕1顯示頁面2。其他意思同上就不贅述。這樣就完成了主頁面:
我們可以知道的是還需要完成四個功能,學生錄入,學生修改,學生刪除和信息統計。完成學生錄入的設計:使用工具欄中的Label,Text,和button以及Adodc進行頁面的設計。即可。完成頁面如下:。
其中Adodc原本工具欄中并沒有,需要添加控件。按ctrl+T或者在菜單“工程”-“組件”里選擇
Microsoft ADO Data Control 6.0(SP6)(OLEDB)選中之后,就可以在工具欄中選擇該控件進行拖拽。其中Adodc中基本連接方法: Adodc1.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=” + App.Path + “hkmdckdb1.mdb”//字符串的連接。Adodc直接雙擊,可以在欄目中選定數據庫的路徑也就是Access文件的路徑。就會自動生成ConnectionString。本頁面的程序代碼如下:
Private Sub Command1_Click()//點擊按鈕觸發函數。
If Trim(Text1.Text)<> “" And Trim(Text2.Text)<> ”“ And Trim(Text3.Text)<> ”“ And Trim(Text4.Text)<> ”“ And Trim(Text5.Text)<> ”“ And Trim(Text6.Text)<> ”“ Then
Adodc1.RecordSource = ”select * from stuInfo“
Adodc1.Refresh
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields(”stuNo“)= Trim(Text1.Text)
Adodc1.Recordset.Fields(”stuName“)= Trim(Text2.Text)
Adodc1.Recordset.Fields(”sex“)= Trim(Text6.Text)
Adodc1.Recordset.Fields(”age“)= Trim(Text3.Text)
Adodc1.Recordset.Fields(”tel“)= Trim(Text4.Text)
Adodc1.Recordset.Fields(”score“)= Val(Trim(Text5.Text))
Adodc1.Recordset.Update
Adodc1.Recordset.Requery
Adodc1.Refresh
Text1.Text = ”“
Text2.Text = ”“
Text3.Text = ”“
Text4.Text = ”“
Text5.Text = ”“
Text6.Text = ”“
MsgBox ”添加成功“, vbOKOnly, ”系統提示“ Else: MsgBox ”信息未填寫完整“, vbOKOnly, ”系統提示“ End If End Sub
對于以上解析如下:對于這個頁面在業務上我們可以知道,需要點擊錄入按鈕,那么就將各個Text中的內容寫入數據庫中,那么在數據庫中就會生成一條記錄,也就是某一個學生的信息情況,那么就完成了學生信息的錄入。首先文件進行了一個IF判斷:
If Trim(Text1.Text)<> ”“ And Trim(Text2.Text)<> ”“ And Trim(Text3.Text)<> ”“ And Trim(Text4.Text)<> ”“ And Trim(Text5.Text)<> ”“ And Trim(Text6.Text)<> ”“ Then “中間內容先省略”
Else: MsgBox ”信息未填寫完整“, vbOKOnly, ”系統提示“ End If End Sub
如果Text1至Text6的內容不等于(<>代表不等于)空字符串。也就是各個內容都輸入了的。就執行省略的了中間內容。如果有一個為空,也就是信息未填寫全。就執行Else:中的內容 也就是MsgBox ”信息未填寫完整“, vbOKOnly, ”系統提示“。這個代表了彈出一個對話框,其中文字寫了“信息未填寫完整”,按鈕上面顯示 vbOKOnly。之后結束IF語句,并退出函數。現在對于省略部分的函數進行解析: Adodc1.RecordSource = ”select * from stuInfo“//從stuInfo表格中做一個查詢
Adodc1.Refresh
Adodc1.Recordset.AddNew//新增信息
//表格也就是提供的Access的數據庫中提供給了stuNo,stuName等字段名,以下就是在記錄集中將Text1中的字段寫入到stuNo的記錄集里,并以此類推,完成該記錄集的填充。
Adodc1.Recordset.Fields(”stuNo“)= Trim(Text1.Text)
Adodc1.Recordset.Fields(”stuName“)= Trim(Text2.Text)
Adodc1.Recordset.Fields(”sex“)= Trim(Text6.Text)
Adodc1.Recordset.Fields(”age“)= Trim(Text3.Text)
Adodc1.Recordset.Fields(”tel“)= Trim(Text4.Text)
Adodc1.Recordset.Fields(”score“)= Val(Trim(Text5.Text))
//到這里就成功的完成了記錄集的填寫
Adodc1.Recordset.Update//將字段更新到數據庫中
Adodc1.Recordset.Requery Adodc1.Refresh //將頁面中的Text的內容填寫為空
Text1.Text = ”“
Text2.Text = ”“
Text3.Text = ”“
Text4.Text = ”“
Text5.Text = ”“
Text6.Text = ”“ MsgBox ”添加成功“, vbOKOnly, ”系統提示“ //彈出方框,表示數據填寫成功。
到此數據全部填寫完成。并寫入數據庫。也完成了這個頁面的功能。之后的幾個頁面的內容類似。其中重點在于DataGrid和Adodc的綁定。對于DataGrid和Adodc的綁定在這里舉一個小小的例子如下: 1.ADODC1是數據庫連接部件
2.Datagrid1是顯示數據表中內容的表格
ADODC1需要設置它連接的是哪個數據表.(Adodc1.RecordSource = ”select * from 表名“)Datagrid1需要設置的是它的數據源來自ADODC1.(Set DataGrid1.DataSource = Adodc1)然后2個部件都要刷新!Refresh
Adodc1.ConnectionString = ”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=“ & App.Path & ”1.mdb;Persist Security Info=False“ Adodc1.CommandType = adCmdText Adodc1.RecordSource = ”select * from table“ Adodc1.Refresh Set DataGrid1.DataSource = Adodc1 DataGrid1.Refresh
這個之后,Datagrid1就可以顯示1.mdb中table表的內容。
以下是本程序中修改頁面的代碼如下: Private Sub Command2_Click()
Dim str As String//定義str
Dim stuNo As String
Dim sql As String
stuNo = Text1.Text//獲得學號
If stuNo <> ”“ Then
Adodc1.Recordset.Filter = ”stuNo = '“ + stuNo + ”'“//通過學號機型查詢
str = Adodc1.Recordset.Fields(”sex“)
If str <> ”男“ Then//如果查詢出來的sex不等于男
Adodc1.Recordset.Fields(”sex“)= ”男“
Adodc1.Recordset.Update//將sex字段設置為男,并進行更新
Else
Adodc1.Recordset.Fields(”sex“)= ”女“
Adodc1.Recordset.Update//否則就將字段設置為女,并進行更新
End If
Else:
MsgBox ”學號未輸入“, vbOKOnly, ”系統信息“
End If
Adodc1.Recordset.Update//結束IF之后,更新一下Adodc
DataGrid1.Refresh//因為Adodc更新了,而DataGrid和Adodc進行了一次綁定,所以也需要對其進行更新。
End Sub
Private Sub Form_Load()//這個函數是頁面載入的時候執行的函數,因為頁面載入的時候本身就需要對表格的內容進行填充,將表格的內容填充為數據庫中的內容。所以進行頁面載入的時候,首先對DataGrid進行更新。
DataGrid1.Refresh End Sub
刪除的代碼和修改的代碼類似,其中的區別在于邏輯判斷的區別了最終執行的區別,一個是update一個則是delete。代碼如下: Private Sub Command2_Click()
Dim str As String
Dim stuNo As String
Dim sql As String
stuNo = Text1.Text
If stuNo <> ”“ Then//如果學號不為空,也就是該學生信息存在,也只有存在才可以刪除
Adodc1.Recordset.Filter = ”stuNo = '“ + stuNo + ”'“
Adodc1.Recordset.Delete//刪除操作
Else:
MsgBox ”學號未輸入“, vbOKOnly, ”系統信息“
End If
Adodc1.Recordset.Update//同更新類似不做贅述
DataGrid1.Refresh End Sub Private Sub Form_Load()DataGrid1.Refresh End Sub
最后是查詢的頁面,這個頁面稍稍有一點麻煩,因為對于其他頁面邏輯較為復雜。代碼如下: Private Sub Command1_Click()//點擊按鈕,執行一下函數
//對字符串進行定義
Dim stuNo As String
Dim StuName As String
Dim ScoreLow As Double
Dim ScoreHigh As Double
Dim sql As String
stuNo = Text1.Text
StuName = Text2.Text //因為查詢信息,是根據多個條件進行查詢的,在這里進行了一個定義,查詢條件主要有一下幾項,既是學生學號,學生姓名,學生成績,學生年齡,以及學生性別。
If stuNo <> ”“ Then//如果學號不為空,就將SQL語句變成之下的語句,用于查詢學生學號。
sql = ”select * from stuInfo where stuNo = '“ + Trim(stuNo)+ ”'“
End If
If StuName <> ”“ Then//如果姓名不為空,就將SQL語句變成之下的語句,用于查詢學生姓名。
sql = ”select * from stuInfo where stuName = '“ + Trim(StuName)+ ”'“
Text1.Text = ”“
End If
If Text3.Text <> ”“ And Text4.Text <> ”“ Then//這里是分數
ScoreLow = Text3.Text
ScoreHigh = Text4.Text
sql = ”select * from stuInfo where score >= “ + Trim$(ScoreLow)+ ” and score <= “ + Trim$(ScoreHigh)
Text1.Text = ”“
Text2.Text = ”“
End If
If Text5.Text <> ”“ And Text6.Text <> ”“ Then//年齡
sql = ”select * from stuInfo where age >= “ + Trim$(Text5.Text)+ ” and age <= “ + Trim$(Text6.Text)
End If
If Text7.Text <> ”“ Then//性別
sql = ”select * from stuInfo where sex = '“ + Trim$(Text7.Text)+ ”'“
End If
Adodc1.RecordSource = sql
Adodc1.Refresh//更新數據集
Label7.Caption = ”滿足條件的一共有 “ + Trim$(Adodc1.Recordset.RecordCount)+ ” 人"
DataGrid1.Refresh//更新顯示信息
End Sub
典型案例:2010屆我校計算機專業36名考生參加高職單招,80分以上達27人。其中羅幼鳳同學得滿分100分。被福建師大本科計算機網絡專業錄取。
心得體會:
請按以上要求補充審改。而后發表。
第三篇:vb成績判斷程序
Private Sub Form_Click()
score = Val(InputBox(“請輸入成績:”))If score >= 60 Then
If score >= 90 Then
Level = “優”
Else
If score >= 80 Then
Level = “良”
Else
If score >= 70 Then
Level = “中”
Else
Level = “及格”
End If
End If
End If
Else
Level = “不及格”
End If
Print Level
End Sub
第四篇:學生成績管理系統VB程序
登陸
登陸
Private Sub cmdLogin_Click()If txtUser.Text = “" Then
MsgBox(”請輸入用戶名!“)
txtUser.SetFocus Else Call openconn sql = ”select * from login where username='“ & Trim(txtUser.Text)& ”' and password='“ & Trim(txtPwd.Text)& ”'“ rs.Open sql, conn, adOpenDynamic, adLockOptimistic If rs.EOF Then
MsgBox ”用戶不存在!“
Else
Unload Me
frmMain.Show End If End If End Sub
退出
Private Sub cmdRegister_Click()Unload Me End Sub
功能選擇
選課管理
Private Sub cmdChoice_Click()frmChoice.Show Unload Me End Sub 退出
Private Sub cmdExit_Click()End End Sub 查詢
Private Sub cmdFind_Click()frmFind.Show Unload Me End Sub 成績管理
Private Sub cmdGrade_Click()frmGrade.Show Unload Me End Sub 學生管理
Private Sub cmdStu_Click()frmStu.Show Unload Me End Sub
學生管理
添加
Private Sub cmdAdd_Click()frmAddStu.Show Unload Me End Sub 刪除
Private Sub cmdDel_Click()rs.Delete MsgBox(”刪除成功!“)End Sub 編輯
Private Sub cmdEdit_Click()frmEditStu.Show Unload Me End Sub 查找
Private Sub cmdFind_Click()'查詢功能 If cboFind.Text = ”學號“ Then
If txtInput.Text = ”“ Then
MsgBox(”學號輸入不能為空!“)
txtInput.SetFocus
Else
Dim sql1 As String
Set rs1 = New ADODB.Recordset
sql1 = ”select * from stuInfo where ID='“ & txtInput.Text & ”'“
rs1.CursorLocation = adUseClient
rs1.Open sql1, conn, adOpenDynamic, adLockOptimistic, adCmdText
If rs.EOF Then
MsgBox(”查不到相關信息“)
txtInput.SetFocus
Else
Set DataGrid1.DataSource = rs1
DataGrid1.Refresh
End If
End If Else
If txtInput.Text = ”“ Then
MsgBox(”姓名輸入不能為空!“)
txtInput.SetFocus
Else
Dim sql2 As String
Set rs2 = New ADODB.Recordset
sql2 = ”select * from stuInfo where name='“ & txtInput.Text & ”'“
rs2.CursorLocation = adUseClient
rs2.Open sql2, conn, adOpenDynamic, adLockOptimistic, adCmdText
If rs.EOF Then
MsgBox(”查不到相關信息“)
txtInput.SetFocus
Else
Set DataGrid1.DataSource = rs2
DataGrid1.Refresh
End If
End If End If End Sub 返回
Private Sub cmdReturn_Click()frmMain.Show Unload Me End Sub 輸出窗口
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
' txtInput.Text = DataGrid1.Columns.Item(4)''獲取選中行的第5列數據
End Sub 窗體
Private Sub Form_Load()
Dim sql As String
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
Call openconn
sql = ”select * from stuInfo“
rs.CursorLocation = adUseClient
rs.Open sql, conn, adOpenDynamic, adLockOptimistic, adCmdText
Set DataGrid1.DataSource = rs 'datagrid綁定數據源 End Sub
成績查詢
返回 Private Sub cmdReturn_Click()frmMain.Show Unload Me End Sub 確定
Private Sub Command1_Click()
lblGrade.Caption = Trim(cboCourse.Text)+ ”課程成績“
Dim sql1 As String
Set rs1 = New ADODB.Recordset
sql1 = ”select score.ID,score.Num,score.score from score, course where name='“ & cboCourse.Text & ”' and score.Num=course.Num“
'sql1 = ”select * from course“
rs1.CursorLocation = adUseClient
rs1.Open sql1, conn, adOpenDynamic, adLockOptimistic, adCmdText
Set DataGrid1.DataSource = rs1 End Sub 窗體
Private Sub Form_Load()
Dim sql As String
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
Call openconn
sql = ”select * from course“
rs.Open sql, conn, adOpenDynamic, adLockOptimistic
Do Until rs.EOF
cboCourse.AddItem rs(”name“)
rs.MoveNext
Loop End Sub
選課管理
返回
Private Sub cmdReturn_Click()frmMain.Show Unload Me End Sub 提交
Private Sub cmdSubmit_Click()If txtID = ”“ Then
MsgBox(”請輸入學號!“)
txtID.SetFocus ElseIf lstCourse.Text = ”“ Then
MsgBox(”請選擇課程!“)Else
Dim sql1 As String
Dim sql2, name As String
Set rs2 = New ADODB.Recordset
Set rs1 = New ADODB.Recordset
sql1 = ”select score.ID, score.Num from score , course where ID='“ & txtID.Text & ”' and name='“ & lstCourse.Text & ”' and score.Num=course.Num“
name = lstCourse.Text
sql2 = ”select Num from course where name='“ & name & ” '“
rs1.Open sql1, conn, adOpenDynamic, adLockOptimistic
rs2.Open sql2, conn, adOpenDynamic, adLockOptimistic
If rs1.EOF Then
rs1.AddNew
rs1(”ID“)= txtID.Text
rs1(”Num“)= rs2(”Num“)
rs1.Update
MsgBox(”選課成功!“)
rs1.Close
Else
MsgBox(”已選過該課!“)
End If End If End Sub 窗體
Private Sub Form_Load()
Dim sql As String
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
sql = ”select * from course“
Call openconn
rs.Open sql, conn, adOpenDynamic, adLockOptimistic
Do Until rs.EOF 'listbox控件利用循環讀取課程表中的課程名
lstCourse.AddItem rs(”name“)
rs.MoveNext
Loop End Sub
查詢
確定
Private Sub cmdOK_Click()If txtID = ”“ Then
MsgBox(”學號不能為空!“)
txtID.SetFocus Else
Dim sql As String
Dim sum1, sum2 As Single
Dim n As Integer
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
Call openconn
sql = ”select course.name , score.score , course.credit from score , course where score.ID='“ & txtID.Text & ”' and score.Num=course.Num“
rs.CursorLocation = adUseClient
rs.Open sql, conn, adOpenDynamic, adLockOptimistic, adCmdText
Set DataGrid1.DataSource = rs
sum1 = 0
sum2 = 0
n = 0
Do While Not rs.EOF
sum1 = sum1 + Val(rs(”score“))
sum2 = sum2 + Val(rs(”credit“))
n = n + 1
rs.MoveNext
Loop
lblAvg.Caption = Format(sum1 / n, ”0.0“)
lblCredit.Caption = sum2 End If End Sub 返回
Private Sub cmdReturn_Click()frmMain.Show Unload Me End Sub
修改學生信息
返回
Private Sub cmdReturn_Click()frmStu.Show Unload Me End Sub 提交
Private Sub cmdSubmit_Click()If txtID.Text = ”“ Then
MsgBox(”學號不能為空!“)
txtID.SetFocus ElseIf txtName.Text = ”“ Then
MsgBox(”姓名不能為空!“)
txtName.SetFocus ElseIf txtSex.Text = ”“ Then
MsgBox(”學分不能為空!“)
txtSex.SetFocus ElseIf txtAge.Text = ”“ Then
MsgBox(”年齡不能為空!“)
txtAge.SetFocus Else
Dim sql As String
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
Call openconn
sql = ”select * from stuInfo where ID='“ & txtID.Text & ”'“
rs.Open sql, conn, adOpenDynamic, adLockOptimistic
If Not rs.EOF Then
'判斷學號是否存在 rs(”name“)= txtName.Text
rs(”sex“)= txtSex.Text
rs(”age“)= txtAge.Text
rs(”pro“)= cboPro.Text
rs.Update
MsgBox(”修改成功!“)
Else
MsgBox(”學號不存在!“)
End If End If End Sub 窗體
Private Sub Form_Load()txtID = rs(”ID“)txtName = rs(”name“)txtSex = rs(”sex“)txtAge = rs(”age“)cboPro.Text = rs(”pro“)End Sub
添加學生
返回
Private Sub cmdReset_Click()frmStu.Show Unload Me End Sub 提交
Private Sub cmdSubmit_Click()If txtID.Text = ”“ Then
MsgBox(”學號不能為空!“)
txtID.SetFocus ElseIf txtName.Text = ”“ Then
MsgBox(”請輸入姓名!“)
txtName.SetFocus ElseIf txtSex.Text = ”“ Then
MsgBox(”請輸入性別!“)
txtSex.SetFocus ElseIf txtAge.Text = ”“ Then
MsgBox(”年齡不能為空!“)
txtAge.SetFocus Else
Dim sql As String
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
Call openconn
sql = ”select * from stuInfo where ID='“ & txtID.Text & ”'“
rs.Open sql, conn, adOpenDynamic, adLockOptimistic
If rs.EOF Then
'判斷學號是否存在 rs.AddNew
rs(”ID“)= txtID.Text
rs(”name“)= txtName.Text
rs(”sex“)= txtSex.Text
rs(”age“)= txtAge.Text
rs(”pro“)= cboPro.Text
rs.Update
MsgBox(”添加成功!“)
frmStu.Show
Unload Me
Else
MsgBox(”學號已存在!")
End If End If End Sub
第五篇:八年級下冊VB程序教學設計
第四課學學程序設計——初步認識編程軟件VB 教學目標及要求:
知識目標:了解什么是程序設計語言和計算機程序以及語言的分類; 能力目標:培養學生的閱讀總結和自主探索能力;
情感態度與價值觀:通過學生利用所學的知識解決實際問題,激發學生的學習興趣。教學重難點:
1.了解什么是程序設計語言。2.啟發學生創新思維要求:
3.以任務為驅動,激發學生創新思維
教法及學法:講授法談話法討論法、任務驅動和分組合作相結合 教學過程:
創設情境,導入新課:
教師運行游戲小程序,引起學生的興趣,并打開程序的源代碼說明編程并不很神秘。
試運行游戲小程序,激發學生的學習興趣。教師講授: 程序設計語言
教師活動:語言是人類交流思想、溝通感情最重要的工具。那么語言不通的人如何交流呢? 學生活動:請一個語言翻譯或自己學會他人的語言 教師活動:計算機所做的事情均為人向機器下達的命令,那么操作者又是通過什么語言同計算機進行溝通的呢?
程序設計語言的分類及特點(1)、機器語言
教師活動:①計算機能聽懂的語言(機器語言)②機器語言的實質(二進制語言)③二進制語言的特點。強調計算機內部只認識二進制 學生活動:談對二進制語言的感受
教師小結:機器語言的特點(二進制、計算機直接能懂、難以理解,與人類語言差距較大)(2)匯編語言:用助記符表示面向機器的程序設計語言。使用匯編語言編寫的程序,機器不能直接識別,要由一種程序將匯編語言翻譯成機器語言。適合編寫直接控制機器操作的程序,不容易使用。(3)、高級語言
高級語言最接近人的自然語言,即簡單易學,它所編制的程序計算機執行時需要“翻譯”,執行速度比二進制程序慢。計算機程序
教師提出問題一:什么是程序?
日常所說的“程序”是指事情的先后順序。問題二:什么是計算機程序?
教師展示游戲程序部分的源代碼語句,學生觀察游戲程序的源代碼。思考什么是計算機程序?
計算機程序是用程序設計語言編寫好的一組指令,用來指示計算機的每一步動作。VB程序設計語言:
1、VB簡介:
vb是Visual Basic的簡稱,是由美國微軟公司于1991年開發的一種可視化的、面向對象和采用事件驅動方式的結構化高級程序設計語言,可用于開發 Windows 環境下的各類應用程序。它簡單易學、效率高,且功能強大。
2、認識VB窗口:
教師活動:打開準備好的VB程序----世博口號.exe 學生活動:新建標準工程進入VB環境
教師活動:指認VB環境中菜單欄、工具欄、工具箱、屬性窗口、窗體、控件等的位置。工具箱:許多用于程序設計的控件 窗體編輯器:設計應用程序界面
工程資源管理器:幫助用戶管理工程中的每一個文件 屬性窗口:設置對象的特征
3、相關概念: ①對象的概念 教師活動:講解所謂“對象”就是個可操作實體如窗體、窗體中命令按鈕、標簽、文本框等。② 控件的概念
教師活動:講解控件的概念。(窗體界面中可供用戶操作的元素)學生活動:認識范例窗體中有哪些是控件 教師活動:在工具欄中指認相應控件 學生活動:向窗體中添加相應控件 ③ 屬性的概念
教師活動:講解屬性的概念。(控件的內部和外部特征)學生活動:嘗試在屬性窗口中找到某控件的相應屬性 ④ 事件和代碼的概念
師生活動:運行程序---點擊按鈕---請學生觀察窗體變化
師生活動:結束運行狀態---雙擊按鈕進入代碼窗口:觀察點擊按鈕程序發生變化的原因(代碼)---學生觀察、教師講解(代碼改變控件屬性方法:控件名.屬性名=屬性值)---學生嘗試用此方式改變窗體中其他控件的屬性(如Label1.Caption=”better city,better life”)教師演示:
1、教師演示設計運行程序“奔跑的小汽車”,學生認真觀察。
2、教師將素材發送到學生機,布置任務: 依照教師演示編寫程序“奔跑的小汽車”。學生體驗:
1、學生編寫程序“奔跑的小汽車”,教師巡回指導。
2、試修改程序,讓汽車倒車、速度變慢。
五、教學評價:
1、教師點評 教師通過巡視,把部分學生修改的結果進行點評,指出典型的錯誤。
2、學生進行自評: 評價內容描述
對我的學習
滿意 還可以
還需 努力
了解程序設計語言和計算機程序
初步認識VB窗口的組成和工作環境
對程序設計學習的興趣
六、課后小結:
這節課,我們體驗了用VB設計程序,了解程序有關知識。(回顧本節知識)希望同學們繼續努力。