呵呵,只这样的。
我本来想用If IsNumeric(Val(DLookup(字段名, "学生期中成绩表"))) = True Then 来限制转换后再进行操作,看来这个语句出了点问题,我也不想再深入找原因了。告诉你一个简单的处理方法,就是另外设一个逻辑型字段,比如我们命名其为“已转换”。在做更新查询的时候,将该字段值更新为-1,然后用将语句修改为:
Sub 等第(字段名 As String)
Dim ssql As String
ssql = "UPDATE 学生期中成绩表 SET " & 字段名 & "=IIf(val(" & 字段名 & ")<60,'不合格',iif(val(" & 字段名 & ")<70,'合格',IIf(val(" & 字段名 & ")<85,'良','优'))) "
ssql = ssql & "where 已转换=0"
CurrentDb.Execute ssql
End Sub
Private Sub Command0_Click()
Call 等第("政治1")
Call 等第("语文1")
Call 等第("数学1")
Call 等第("英语1")
ssql = "UPDATE 学生期中成绩表 SET 已转换=-1"
CurrentDb.Execute ssql
Me.子窗体.Form.Requery
End Sub
Sub 等第(字段名 As String)
Dim ssql As String
ssql = "UPDATE 学生期中成绩表 SET " & 字段名 & "=IIf(val(" & 字段名 & ")<60,'不合格',iif(val(" & 字段名 & ")<70,'合格',IIf(val(" & 字段名 & ")<85,'良','优'))) "
ssql = ssql & "where 已转换=0"
CurrentDb.Execute ssql
End Sub
总记录:2篇 页次:1/1 9 1 :