Option Explicit
Private rsMain As ADODB.Recordset
Private rsTerm As ADODB.Recordset
Private strSql As String
Private Sub cmdAbout_Click()
frmAbout.Show
End Sub
Private Sub cmdAddObject_Click() '程序段
If rsMain.RecordCount >= MaxRecNumber Then
MsgBox "疾病个数不能超过: " & Str(MaxRecNumber) & "个" & vbCrLf & "如果需要增加疾病数量,请与作者联系", vbInformation, "提示"
Exit Sub
End If '判断
If Trim(txtID.Text) = "" Then
MsgBox "必须输入疾病代号", vbCritical, "Error"
txtID.SetFocus
Exit Sub
End If
If Trim(txtObject.Text) = "" Then
MsgBox "必须输入疾病名称", vbCritical, "Error"
txtObject.SetFocus
Exit Sub
End If
Dim rs1 As ADODB.Recordset
Set rs1 = New ADODB.Recordset
rs1.Open "select * from main where id='" & Trim(txtID) & "'", Con, adOpenStatic, adLockReadOnly
If rs1.RecordCount > 0 Then
MsgBox "已经在知识库中" & vbCrLf & "疾病号码:" & Trim(rs1.Fields!id) & vbCrLf & "疾病名称:" & Trim(rs1.Fields!object), vbCritical, "Error of ID"
Exit Sub
End If
Set rs1 = New ADODB.Recordset '定义了一个新的对象实例
rs1.Open "select * from main where object='" & Trim(txtObject) & "'", Con, adOpenStatic, adLockReadOnly
If rs1.RecordCount > 0 Then
MsgBox "已经在知识库中" & vbCrLf & "疾病号码:" & Trim(rs1.Fields!id) & vbCrLf & "疾病名称:" & Trim(rs1.Fields!object), vbCritical, "Error of Object "
Exit Sub
End If
With rsMain
.AddNew
'添加一个新的记录到数据表
.Fields!id = Trim(txtID.Text)
.Fields!object = Trim(txtObject.Text)
.Update
End With
MsgBox "疾病号码:" & Trim(txtID.Text) & vbCrLf & "疾病名称:" & Trim(txtObject.Text), vbCritical, "Add Object OK"
End Sub
Private Sub cmdAddTerm_Click()
If Trim(txtID.Text) = "" Then
MsgBox "必须输入疾病代号", vbCritical, "Error"
txtID.SetFocus
Exit Sub
End If
Dim rs1 As ADODB.Recordset
Set rs1 = New ADODB.Recordset '表示定义了一个新的对象实例
rs1.Open "select * from main where id='" & Trim(txtID.Text) & "'", Con, adOpenStatic, adLockReadOnly
If rs1.RecordCount = 0 Then
MsgBox "no this ID ,you could not add it's term", vbCritical, "Error"
Exit Sub
End If
If Trim(txtTerm.Text) = "" Then
MsgBox "必须输入疾病症候", vbCritical, "Error"
txtObject.SetFocus
End If
If Trim(txtProbility.Text) = "" Then 'trim去除字符串前后的空格的
MsgBox "必须输入疾病症候的发病概率", vbCritical, "Error"
txtProbility.SetFocus
Exit Sub
End If
If Not IsNumeric(txtProbility.Text) Then
MsgBox "发病概率必须是数字", vbCritical, "Error"
txtProbility.SetFocus
Exit Sub
End If
Set rs1 = New ADODB.Recordset
rs1.Open "select * from term where id='" & Trim(txtID) & "' and term='" & Trim(txtTerm.Text) & "'", Con, adOpenStatic, adLockReadOnly
If rs1.RecordCount > 0 Then
MsgBox "Already in the Term " & vbCrLf & "疾病号码:" & Trim(rs1.Fields!id) & vbCrLf & "Term:" & Trim(rs1.Fields!Term), vbCritical, "Error of Term"
Exit Sub
End If
With rsTerm
.AddNew
.Fields!id = Trim(txtID.Text)
.Fields!Term = Trim(txtTerm.Text)
.Fields!probility = Trim(txtProbility.Text)
.Update
End With
MsgBox "疾病号码:" & Trim(txtID.Text) & vbCrLf & "Term:" & Trim(txtTerm.Text), vbCritical, "Add Term OK"
End Sub
Private Sub cmdDeleteObject_Click()
Dim a As Integer 'dim变量名
Dim b As String 'as类型
b = Trim(rsMain.Fields!id)
a = MsgBox("Delete the object " & Trim(rsMain.Fields!object), vbYesNo, "??")
If a = 7 Then
cmdDeleteObject.Enabled = False
Exit Sub
End If
With rsMain
.Delete
.Update
End With
Con.Execute "delete * from term where id='" & Trim(b) & "'"
Set rsTerm = New ADODB.Recordset
rsTerm.Open "select * from term ", Con, adOpenStatic, adLockOptimistic
Set grdTerm.DataSource = rsTerm
Call grdHH '调用函数或者过程
MsgBox "Delete OK", vbInformation, "_"
cmdDeleteObject.Enabled = False
End Sub
Private Sub cmdDeleteTerm_Click()
Dim a As Integer
Dim b As String
b = Trim(rsTerm.Fields!id)
a = MsgBox("Delete the Term " & Trim(rsTerm.Fields!Term), vbYesNo, "??")
If a = 7 Then
cmdDeleteTerm.Enabled = False
Exit Sub
End If
With rsTerm
.Delete
.Update
End With
MsgBox "Delete Term OK", vbInformation, "_"
cmdDeleteTerm.Enabled = False
End Sub
Private Sub cmdEditObject_Click()
If Trim(txtObject.Text) = "" Then
MsgBox "必须输入疾病名称", vbCritical, "Error"
txtObject.SetFocus
Exit Sub
End If
Dim rs1 As ADODB.Recordset
Set rs1 = New ADODB.Recordset '将对象引用赋给变量或属性。
rs1.Open "select * from main where object='" & Trim(txtObject) & "'", Con, adOpenStatic, adLockReadOnly
If rs1.RecordCount > 0 Then
MsgBox "已经在知识库中" & vbCrLf & "疾病号码:" & Trim(rs1.Fields!id) & vbCrLf & "疾病名称:" & Trim(rs1.Fields!object), vbCritical, "Error of Object "
Exit Sub
End If
With rsMain
.Fields!object = Trim(txtObject.Text)
.Update
End With
cmdEditObject.Enabled = False
MsgBox "Object Edit OK!", vbInformation, "_"
End Sub
Private Sub cmdEditTerm_Click()
If Trim(txtTerm.Text) = "" Then
MsgBox "必须输入疾病症候", vbCritical, "Error"
txtObject.SetFocus
End If
If Trim(txtProbility.Text) = "" Then
MsgBox "必须输入疾病症候的发病概率", vbCritical, "Error"
txtProbility.SetFocus
Exit Sub
End If
If Not IsNumeric(txtProbility.Text) Then '函数决定变量是否可以作为数值
MsgBox "发病概率必须是数字", vbCritical, "Error"
txtProbility.SetFocus
Exit Sub
End If
With rsTerm
.Fields!id = Trim(txtID.Text)
.Fields!Term = Trim(txtTerm.Text)
.Fields!probility = Trim(txtProbility.Text)
.Update
End With
cmdEditTerm.Enabled = False
MsgBox "疾病号码:" & Trim(txtID.Text) & vbCrLf & "Term:" & Trim(txtTerm.Text), vbCritical, "Edit Term OK"
End Sub
Private Sub cmdQueryObject_Click()
End Sub
Private Sub cmdExit_Click()
Unload Me
End Sub
Private Sub Command1_Click()
SendKeys "{TAB}" '将一个或多个按键消息发送到活动窗口
End Sub
Private Sub grdHH()
With grdMain
.Columns(0).Caption = "疾病号码"
.Columns(1).Caption = "疾病名称"
.Columns(0).Width = 1000
.Columns(1).Width = 5500
.Columns(2).Visible = False
End With
With grdTerm
.Columns(0).Caption = "疾病号码"
.Columns(1).Caption = "疾病症候"
.Columns(2).Caption = "发病概率"
.Columns(0).Width = 1000
.Columns(1).Width = 4900
.Columns(2).Width = 800
End With
End Sub
Private Sub Form_Load()
Dim s As String
s = "update main set probility=0 "
Con.Execute (s)
s = "update term set status=' ' "
Con.Execute s
Set rsMain = New ADODB.Recordset
Set rsTerm = New ADODB.Recordset
strSql = "select * from main"
rsMain.Open strSql, Con, adOpenStatic, adLockOptimistic
Set grdMain.DataSource = rsMain
strSql = "select * from Term"
rsTerm.Open strSql, Con, adOpenStatic, adLockOptimistic
Set grdTerm.DataSource = rsTerm
Call grdHH
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set frmBase = Nothing
frmMain.Show
End Sub
Private Sub grdMain_Click()
If rsMain.RecordCount = 0 Then
cmdEditObject.Enabled = False
cmdDeleteObject.Enabled = False
End If
cmdEditObject.Enabled = True
cmdDeleteObject.Enabled = True
End Sub
Private Sub grdMain_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
Dim strID As String
If rsMain.RecordCount = 0 Then Exit Sub
With rsMain
strID = Trim(.Fields!id)
txtID.Text = strID
txtObject.Text = Trim(.Fields!object)
End With
Set rsTerm = New ADODB.Recordset
strSql = "select * from term where id='" & Trim(strID) & "'"
rsTerm.Open strSql, Con, adOpenStatic, adLockOptimistic
Set grdTerm.DataSource = rsTerm
End Sub
Private Sub grdTerm_Click()
If rsTerm.RecordCount = 0 Then
cmdEditTerm.Enabled = False
cmdDeleteTerm.Enabled = False
End If
cmdEditTerm.Enabled = True
cmdDeleteTerm.Enabled = True
End Sub
Private Sub grdTerm_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
If rsTerm.RecordCount = 0 Then
txtTerm.Text = ""
txtProbility.Text = ""
Exit Sub
End If
With rsTerm
txtID.Text = .Fields!id
txtTerm.Text = .Fields!Term
txtProbility.Text = .Fields!probility
End With
End Sub