首先畫了一個圖,是整個系統的工作過程:
系統用到的主要關於數據庫的語句:
查詢語句:"select * from 表 where 字段名='"&text1.text&"'"
刪除語句:1."delete from 表名 where 字段名 = '" & Trim(text1.Text) & "'"
2.recordset.delect
更新語句:recordset.addnew
recordset.fields(i)=trim(text1.text)
mrc.update
在這個系統中自己獲得到的知識:
一.Sub main()作爲啓動窗體:
作用:1.有選擇的加載需要的窗體
2.啓動程序時快速顯示窗體
二.recordset的深入理解
這一代碼加上後面調用這個函數使我更好的理解了recordset
Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset
'executes SQL and returns Recordset
Dim cnn As ADODB.Connection '聲明的連接
Dim rst As ADODB.Recordset '聲明的結果集
Dim sTokens() As String '定義字符串數組
On Error GoTo ExecuteSQL_Error '處理錯誤
sTokens = Split(SQL) '把每個字符串分開,就例如查詢語句,stokens(0)=select
Set cnn = New ADODB.Connection '建立連接對象
cnn.Open ConnectString '調用連接數據庫函數
If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then '第一個詞非Select語句
cnn.Execute SQL '數據量不大時,可以在連接上,直接執行SQL語句
MsgString = sTokens(0) & " query successful"
'雖然MsgString不是返回值,但傳遞方式是ByRef,實參地址和這個地址相同
Else '第一個詞是Select語句
Set rst = New ADODB.Recordset
rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic
'得到臨時表,遊標指向第一條記錄
Set ExecuteSQL = rst
MsgString = "查詢到" & rst.RecordCount & _
" 條記錄 "
End If
ExecuteSQL_Exit: '釋放定義的結果集,連接,並退出程序
Set rst = Nothing
Set cnn = Nothing
Exit Function
ExecuteSQL_Error: '錯誤處理
MsgString = "查詢錯誤: " & _
Err.Description
Resume ExecuteSQL_Exit
End Function
三.控件的瞭解
1.做查詢功能時,MSHFlexgrid控件的瞭解和運用
2.在修改代碼時進一步對listbox的屬性和方法的瞭解
四:登陸系統時首先獲取用戶名的api函數GetUserName的運用
Dim strBuffer As String
Dim lgSize As Long
strBuffer = Space$(255) '分配255個字符空間
lgSize = Len(strBuffer)
Call GetUserName(strBuffer, lgSize) '獲取當前用戶名,有利於安全性
'API中字符串作參數,需要提前確定大小
If lgSize > 0 Then
txtUserName.Text = "student"
Else
txtUserName.Text = vbNullString '沒有字符串
End If
最後這個系統在源碼的基礎上敲完後的感受:
1.由剛開始自己都懷疑自己是否會看懂這些代碼到現在基本上都能懂了,我們不應該什麼事還沒嘗試就否定它,應該在嘗試之後在發表言論!
2.在設計一個系統時應站在用戶的角度考慮,把自己當做用戶,就想出現空記錄或者數字過大,輸入方便,還有點擊錯誤這些都該我們爲用戶考慮到!
3.我們設計代碼時,應儘量考慮周全一點,要有全局意識,例如代碼中首先在模塊中定義了一個執行sql語句的函數ExecuteSQL(txtSQL,msgText),因爲在後面的窗體上基本上都會用到,這就節省了我們很多時間,而且讓人看着舒服!
4.學東西要踏實,不要急,慢慢的來,要相信一切只是個過程!