这是代码,其中 Messagebox都是调试用的,是用全局表事件,看下代码哪里会有问题
Select e.Table.Name
Case "tbStudentInfo"
Case "tbClass"
If e.Col.Name = "名称" Then
If "" = e.Row("校区") Then
MessageBox.Show("请输入校区")
e.Cancel = True
End If
If e.Text <> "" Then
Dim cmd As New SQLCommand
cmd.ConnectionName = connName
cmd.CommandText = "SELECT COUNT(*) FROM {tbClass} WHERE [期次] = '" & e.Row("期次") & "' AND [校区] = '" & e.Row("校区") & "' AND [名称] = '" & e.Text & "' AND _Identify <> '" & e.Row("_Identify") & "'"
If cmd.ExecuteScalar() > 0 Then
MessageBox.Show("班级已经存在,请重新输入!")
e.Cancel = True
End If
End If
ElseIf e.Col.Name = "班主任"
If e.Col.DroppedDown Then '如果下拉窗口已经打开
e.Col.CloseDropDown() '则关闭下拉窗口
End If
End If
Case Else
End Select
Select e.Table.Name
Case "tbClass"
If e.Col.Name = "班主任" Then '如果编辑的是客户ID列
If e.Col.DroppedDown Then '如果下拉窗口已经打开
Dim tbl As Table = Tables("班主任查找窗口_Table1")
Dim strSelect As String = "Select 编号,姓名,拼音,状态,工种,部门校区,岗位 From {tbTeacherInfo} Where "
If e.Text = "" Then
strSelect &= " [_Identify] Is Null"
Else
strSelect &= " 拼音 LIKE '%" & e.Text & "%'"
End If
tbl.Fill(strSelect,connName,True)
tbl.AutoSizeCols()
Else
MessageBox.Show(1)
e.Col.OpenDropDown()
End If
End If
Case Else
End Select
Select e.Table.Name
Case "tbClass"
If e.Col.Name = "班主任" Then
If e.Col.DroppedDown = False Then
MessageBox.Show(2)
e.Col.OpenDropDown() '打开下拉窗口
End If
End If
Case Else
End Select
Select e.Table.Name
Case "tbClass"
If e.Col.Name = "班主任" Then '如果编辑的是客户 ID列
If e.Col.DroppedDown Then '如果下拉窗口已经打开
Dim tbl As Table = Tables("班主任查找窗口_Table1")
If e.KeyCode = Keys.Up Then '如果按下的是上箭头按键
tbl.Position = tbl.Position - 1 '向上移动一行
e.Cancel = True
ElseIf e.KeyCode = Keys.Down Then '如果按下的是下箭头按键
tbl.Position = tbl.Position + 1 '向下移动一行
e.Cancel = True
End If
Else
MessageBox.Show(3)
e.Col.OpenDropDown()
End If
End If
Case Else
End Select
[此贴子已经被作者于2012-2-28 10:30:27编辑过]