Foxtable(狐表)用户栏目专家坐堂 → 通过下拉窗口选择输入数值后,数据库处于死机状态


  共有4033人关注过本帖树形打印复制链接

主题:通过下拉窗口选择输入数值后,数据库处于死机状态

美女呀,离线,留言给我吧!
水墨青花
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:201 积分:1720 威望:0 精华:0 注册:2019/3/1 11:38:00
通过下拉窗口选择输入数值后,数据库处于死机状态  发帖心情 Post By:2023/4/7 10:18:00 [只看该作者]

老师,您好:

之前通过下拉窗口选择输入数值后,都没有问题,而且已经使用量很久了。

今天稍微修改了下code,新增了一个窗口,多了一个副表,结果通过下拉窗口选择输入数值后,数据库就会处于死机状态。

我把下拉窗口在prepare中关闭后,就没有这个问题了。

请问这是情况?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/4/7 10:19:00 [只看该作者]

prepare写了什么代码?

 回到顶部
美女呀,离线,留言给我吧!
水墨青花
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:201 积分:1720 威望:0 精华:0 注册:2019/3/1 11:38:00
  发帖心情 Post By: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

 回到顶部
美女呀,离线,留言给我吧!
水墨青花
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:201 积分:1720 威望:0 精华:0 注册:2019/3/1 11:38:00
  发帖心情 Post By: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

 回到顶部
美女呀,离线,留言给我吧!
水墨青花
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:201 积分:1720 威望:0 精华:0 注册:2019/3/1 11:38:00
  发帖心情 Post By:2023/4/7 10:35:00 [只看该作者]

如果prepare 中 e.IsFocusCell 可以选择,即便我直接输入,也会进入死循环。

不知允许从下拉窗口中 选择数值,和 不能选择只能直接输入数值,会有什么区别?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/4/7 10:46:00 [只看该作者]

3楼的代码是干嘛用的?把这个事件的完整代码发上来

 回到顶部
美女呀,离线,留言给我吧!
水墨青花
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:201 积分:1720 威望:0 精华:0 注册:2019/3/1 11:38:00
  发帖心情 Post By:2023/4/7 10:53:00 [只看该作者]


老师,我又试了一下,把新加的code全都 去掉后,也不行。

问题就是出在“下拉选择”,只要有下拉选择,就会进入死循环,如果把 prepare中的下拉选择去掉,就没有问题。而且这个情况就是出在今天,之前都没有。

这种情况如何解决呢?如果删掉 bin 文件夹 是否会起作用?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/4/7 10:57:00 [只看该作者]

看6楼

 回到顶部
美女呀,离线,留言给我吧!
水墨青花
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:201 积分:1720 威望:0 精华:0 注册:2019/3/1 11:38:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/4/7 11:40:00 [只看该作者]

看不出什么问题。请上传实例测试

 回到顶部
总数 11 1 2 下一页