1. 程式人生 > >學生資訊管理系統總結(二)

學生資訊管理系統總結(二)

  • 限制文字框輸入的必須是數字
Private Sub Text1_KeyPress(KeyAscii As Integer)
    If (KeyAscii < 48 Or KeyAscii > 57) Then
    keyAscii = 0
    End if
End sub
  • 限制文字框輸入的必須是大寫字母
Private Sub Text1_KeyPress(KeyAscii As Integer)
    If (KeyAscii < 65 Or KeyAscii > 90) Then
    keyAscii = 0
    End if
End sub
  • 按刪除鍵則退出程式
If KeyAscii = 8 Then Exit Sub
  • 只可以輸入數字和字母
Private Sub Text1_KeyPress(KeyAscii As Integer)
If ((KeyAscii >= 48 And KeyAscii <= 57) Or (KeyAscii >= 65 And KeyAscii <= 90) Or (KeyAscii >= 97 And KeyAscii <= 122)) = False Then KeyAscii = 0
End Sub
  • 只可以輸入漢字
Private Sub Text1_KeyPress(KeyAscii As Integer)
     If ((KeyAscii <= -3652 And KeyAscii >= -20319) Or (KeyAscii >= 65 And KeyAscii <= 90) Or (KeyAscii >= 97 And KeyAscii <= 122) Or KeyAscii = 32 Or KeyAscii = 8) = False Then
        KeyAscii = 0
    End If
End Sub
  • 日曆控制元件的新增
    步驟如下:
    工具欄 → 部件控制元件 → Microsoft Windows controls-2.6(sp4或sp5),完成新增。(如下圖:DTpicker即為該控制元件)
    在這裡插入圖片描述
  • sbstatusbar.panels(1).text="新增使用者"
    主要目的:
    在SbStatusBar這個控制元件的狀態列顯示“新增使用者”這四個字,panels的意思是空白窗格,panels(1)就是第一個空白窗格
    如圖:
    在這裡插入圖片描述

錯誤提示

實時錯誤 '-2147217887 (80040e21)': 多步OLE DB操作產生錯誤。請檢查每個OLE DB狀態值。
原因是:
輸入的資料違反了資料庫的約束條件;
欄位大小超過限制提交的資料個數;
欄位資料型別不匹配;
自動編號指定了值;
或者自動編號末未做自動賦值、欄位不允許為空值等。
另外,檢查你的外來鍵約束之類,如觸發器,是否表中無主鍵
解決辦法:
針對Text進行具體限定。
VB中限定text輸入框中輸入的字數,有兩種方法可以實現:

1、直接在text文字框屬性中定義MaxLength的值,MaxLength是設定文字框允許輸入的字元最大數。超過設定數後,將不允許繼續輸入內容。

2、程式碼實現: Private Sub Text1_Change()
If Len(Text1) >= 160 Then MsgBox “你已經輸入了160個字,已到最大字元數!” End Sub

如果使用vb設定後還無法執行成功,那就要去資料庫中檢視一下了,資料庫中該表的該資料設定長度要與在text屬性中設定的長度一致或者大於text中設定的長度。

【建議:在vb中限定的長度要小於資料庫中的指定長度,畢竟涉及到一個漢字會佔用多個位元組,但是在輸入中卻只顯示為一個字元的情況】

在這裡插入圖片描述在這裡插入圖片描述
原因:
在資料庫中“課程編號”的資料型別已經定義為int型別,在輸入框中輸入了漢字,導致資料型別不匹配,窗體報錯
解決:
對其txtcourseno進行限定,限定文字框只能輸入數字,具體程式碼如下:

Private Sub txtCourseno_KeyPress(KeyAscii As Integer)
    If (KeyAscii < 48 Or KeyAscii > 57) Then
    keyAscii = 0
    End if
End sub