以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 通过下拉窗口选择输入数值后,数据库处于死机状态 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=186119) |
-- 作者:水墨青花 -- 发布时间:2023/4/7 10:18:00 -- 通过下拉窗口选择输入数值后,数据库处于死机状态 老师,您好: 之前通过下拉窗口选择输入数值后,都没有问题,而且已经使用量很久了。 今天稍微修改了下code,新增了一个窗口,多了一个副表,结果通过下拉窗口选择输入数值后,数据库就会处于死机状态。 我把下拉窗口在prepare中关闭后,就没有这个问题了。 请问这是情况?
|
-- 作者:有点蓝 -- 发布时间:2023/4/7 10:19:00 -- prepare写了什么代码? |
-- 作者:水墨青花 -- 发布时间:2023/4/7 10:28:00 -- prepare 的代码没有编号,就是增加了一个新窗口“E”的判断 If Forms("A").Opened Then \'只能在处理窗口中修改 pr = Tables("A_Table1").Current edit = True Else If Forms("B").Opened Then \'只能在处理窗口中修改 pr = Tables("B_Table1").Current Else If Forms("C").Opened Then \'只能在处理窗口中修改 pr = Tables("C_Table1").Current Else If Forms("D").Opened Then pr = Tables("D_Table1").Current Else If Forms("E").Opened Then \'只能在处理窗口中修改 pr = Tables("E_Table1").Current edit = True End If |
-- 作者:水墨青花 -- 发布时间:2023/4/7 10:31:00 -- 如果我把 e.IsFocusCell 中的 "量1“ ”量2” 去掉,手动输入数据,就不会进入死循环。 If e.IsFocusCell Then If pr IsNot Nothing Then Select Case e.Col.Name Case "量1", "量2" e.Col.Combolist = "" If e.Row("配制") <> "配制" AndAlso e.Row("配制") <> "定量" Then Dim filter As String = "溶液1批号 = \'" & e.Row("溶液1批号") & "\' And 配制 In (\'配制\',\'定量\') And 溶液2批号 = \'" & e.Row("溶液2批号") & "\'" e.Col.Combolist = DataTables("溶液数据").SQLGetComboListString(e.Col.Name, filter) End If End Select End If End If |
-- 作者:水墨青花 -- 发布时间:2023/4/7 10:35:00 -- 如果prepare 中 e.IsFocusCell 可以选择,即便我直接输入,也会进入死循环。 |
-- 作者:有点蓝 -- 发布时间:2023/4/7 10:46:00 -- 3楼的代码是干嘛用的?把这个事件的完整代码发上来 |
-- 作者:水墨青花 -- 发布时间:2023/4/7 10:53:00 -- 问题就是出在“下拉选择”,只要有下拉选择,就会进入死循环,如果把 prepare中的下拉选择去掉,就没有问题。而且这个情况就是出在今天,之前都没有。 这种情况如何解决呢?如果删掉 bin 文件夹 是否会起作用? |
-- 作者:有点蓝 -- 发布时间:2023/4/7 10:57:00 -- 看6楼 |
-- 作者:水墨青花 -- 发布时间:2023/4/7 11:30:00 -- 老师, 下面是prepare的完整code。 但是刚才不止一个地方在报错,问题都是出在有下拉选项的输入,只要是有下拉选项的地方,输入数值就会进入死机状态。 而且,这个问题之前是没有的。 Dim pr As Row Dim edit As Boolean If Forms("溶出数据处理").Opened Then \'只能在处理窗口中修改 pr = Tables("溶出数据处理_Table1").Current edit = True Else If Forms("含量数据处理").Opened Then \'只能在处理窗口中修改 pr = Tables("含量数据处理_Table1").Current Else If Forms("有关数据处理").Opened Then \'只能在处理窗口中修改 pr = Tables("有关数据处理_Table1").Current Else If Forms("验证数据处理").Opened Then pr = Tables("验证数据处理_Table1").Current Else If Forms("标曲含量数据处理").Opened Then \'只能在处理窗口中修改 pr = Tables("标曲含量数据处理_Table1").Current edit = True End If If pr IsNot Nothing Then Select Case e.Col.Name Case "称样量" If edit = True Then If pr("完成") = "Y" Then e.Cancel = True End If Else e.Cancel = True End If Case "备注" e.Cancel = False Case Else e.Cancel = True End Select Else e.Cancel = True End If If e.IsFocusCell Then If pr IsNot Nothing Then Select Case e.Col.Name Case "称样量" e.Col.Combolist = "" If e.Row("配制") <> "定量" Then Dim filter As String = "溶液1批号 = \'" & e.Row("溶液1批号") & "\' And 溶液2批号 = \'" & e.Row("溶液2批号") & "\'" e.Col.Combolist = DataTables("溶液数据").SQLGetComboListString(e.Col.Name, filter) End If End Select End If End If |
-- 作者:有点蓝 -- 发布时间:2023/4/7 11:40:00 -- 看不出什么问题。请上传实例测试 |