以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于根据分数自动划分的问题请教  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=92445)

--  作者:我来看看
--  发布时间:2016/11/3 14:47:00
--  [求助]关于根据分数自动划分的问题请教
我制作了一个录入窗口,里面的成绩这个文本框中手动输入分数,那么我想根据输入的分数,后面的等级的文本框中自动根据前面的成绩按照90以上优秀,60-89及格,60以下不及格,直接显示出优秀或及格或不及格,请教在哪里如何写代码???
--  作者:有点蓝
--  发布时间:2016/11/3 15:02:00
--  
成绩这个文本框TextChanged事件

If val(e.Sender.Text) >= 90 Then
    e.Form.Controls("TextBox2").Text = "优秀"
ElseIf val(e.Sender.Text) >= 60 Then
    e.Form.Controls("TextBox2").Text = "及格"
End If

不及格的仿照自己加一下

--  作者:我来看看
--  发布时间:2016/11/3 15:36:00
--  

老师,我用这个代码写入了事件可是没有反应啊??

我写入的代码如下:

If val(e.Sender.Text) >= 90 Then
    e.Form.Controls("等级框").Text = "优秀"
ElseIf val(e.Sender.Text) >= 60 Then
    e.Form.Controls("等级框").Text = "及格"
ElseIf val(e.Sender.Text) < 60 Then
    e.Form.Controls("等级框").Text = "不及格"
End If

 

 

 

还有一个问题,我想根据上边说到的那个等级数据列内容,绘制单元格的字体样式,自定义样式已经设置好了,可是下面这个代码好像有问题,一新增数据就出错关闭,请问如何修改??

If e.Col.Name = "等级" Then
    If e.Row(e.Col.Name) <> "优秀" Then
        e.style = "优秀"

    ElseIf e.Row(e.Col.Name) <> "及格" Then
        e.style = "及格"

    ElseIf e.Row(e.Col.Name) <> "不及格" Then
        e.style = "不及格"
    End If
End If


--  作者:有点色
--  发布时间:2016/11/3 15:56:00
--  

1、你确定是写入了TextChanged事件?加入msgbox弹出看是否触发;

 

2、drawcell代码没问题,报错截图说明


--  作者:我来看看
--  发布时间:2016/11/3 16:49:00
--  
就是说现在一点“录入信息”按钮后,应该打开录入窗口,不仅窗口没有打开,整个程序自动关闭了
--  作者:有点蓝
--  发布时间:2016/11/3 18:03:00
--  

If e.Col.Name = "等级" Then
    If e.Row(e.Col.Name) = "优秀" Then
        e.style = "优秀"

    ElseIf e.Row(e.Col.Name) = "及格" Then
        e.style = "及格"

    ElseIf e.Row(e.Col.Name) = "不及格" Then
        e.style = "不及格"
    End If
End If


或者


If e.Col.Name = "等级" And e.Row.Isnull(e.Col.Name) =False Then

    

    e.style = e.Row(e.Col.Name)

    

End If


--  作者:有点色
--  发布时间:2016/11/3 18:29:00
--  
以下是引用我来看看在2016/11/3 16:49:00的发言:
就是说现在一点“录入信息”按钮后,应该打开录入窗口,不仅窗口没有打开,整个程序自动关闭了

 

这个跟你贴出的代码无关。


--  作者:我来看看
--  发布时间:2016/11/4 9:11:00
--  

蓝老师,现在我这个窗口一点开就是直接关闭整个程序,都没有错误提示。

 

而且我需要的不是说成绩框中输入成绩自动按照优秀等输入,而是“等级”这个文本框根据前面的“成绩”这个文本框中输入的成绩自动填入“优秀”等等级别。

 

If val(e.Sender.Text) >= 90 Then
    e.Form.Controls("TextBox2").Text = "优秀"
ElseIf val(e.Sender.Text) >= 60 Then
    e.Form.Controls("TextBox2").Text = "及格"
End If

 

 

上面这个代码肯定有问题


--  作者:有点蓝
--  发布时间:2016/11/4 9:41:00
--  
单纯从代码来看绝对没有问题。

至于放到你的项目有没有问题那就不知道了,也许触发了其它事件导致死循环了,上例子看看咯

--  作者:我来看看
--  发布时间:2016/11/4 10:21:00
--  
我实在是找不出哪个地方的代码出现错误了,这样,如果我直接从表格中进行录入,不用窗口的方式录入,在表格中的成绩列(整数型)填入成绩后,后面的等级列(字符型)直接根据前面的成绩自动填入“优秀”等级别,如何写代码呢??