我有一段代码,在配置不错的电脑上,执行速度还算挺快,执行时间只需0.5秒左右,可是在配置较差的电脑上,运行速度就非常慢,有没有办法可以简化代码并且提升执行速度?
代码如下:
If e.DataCol.name = "本日签到" Then
If Vars("签到类型") = "" And e.NewValue <> "" Then
MessageBox.Show("请先进行签到信息设置!")
e.DataRow("本日签到") = ""
Else
If e.NewValue = "签到" Then
If Vars("签到类型") = "普通签到" Then
e.DataRow("上次活动日期") = Vars("签到时间")
Dim a As DataRow
a = DataTables("到会明细表").Find("永久编号 = '" & e.DataRow("永久编号") & "' and 日期 = '" & Vars("签到时间") & "'")
If a IsNot Nothing Then
a("预约") = True
a("失约") = False
a("迟到") = False
a("签到") = True
e.DataRow("场次分类") = Vars("场次分类")
Else
Tables("到会明细表").AddNew
Tables("到会明细表").Current("永久编号") = e.DataRow("永久编号")
Tables("到会明细表").Current("预约") = True
Tables("到会明细表").Current("失约") = False
Tables("到会明细表").Current("迟到") = False
Tables("到会明细表").Current("签到") = True
Tables("到会明细表").Current("日期") = Vars("签到时间")
Tables("到会明细表").Current("轮次") = Vars("签到场次")
e.DataRow("场次分类") = Vars("场次分类")
End If
ElseIf Vars("签到类型") = "大会动员" Then
e.DataRow("上次活动日期") = Vars("签到时间")
Dim a As DataRow
Dim b As DataRow
a = DataTables("到会明细表").Find("永久编号 = '" & e.DataRow("永久编号") & "' and 日期 = '" & Vars("签到时间") & "'")
b = DataTables("大会明细").Find("永久编号 = '" & e.DataRow("永久编号") & "' and 时间 = '" & Vars("签到时间") & "'")
If a IsNot Nothing Then
a("预约") = True
a("失约") = False
a("迟到") = False
a("签到") = True
Else If b IsNot Nothing Then
b("动员") = True
b("邀请") = True
b("时间") = Vars("签到时间")
b("产品名") = Vars("产品名")
Else
Tables("到会明细表").AddNew
Tables("到会明细表").Current("永久编号") = e.DataRow("永久编号")
Tables("到会明细表").Current("预约") = True
Tables("到会明细表").Current("失约") = False
Tables("到会明细表").Current("迟到") = False
Tables("到会明细表").Current("签到") = True
Tables("到会明细表").Current("日期") = Vars("签到时间")
Tables("到会明细表").Current("轮次") = Vars("签到场次")
Tables("大会明细").AddNew
Tables("大会明细").Current("永久编号") = e.DataRow("永久编号")
Tables("大会明细").current("动员") = True
Tables("大会明细").current("邀请") = True
Tables("大会明细").current("时间") = Vars("签到时间")
Tables("大会明细").current("产品名") = Vars("产品名")
e.DataRow("上次活动日期") = Vars("签到时间")
End If
ElseIf Vars("签到类型") = "大会签到" Then
Dim b As DataRow
b = DataTables("大会明细").Find("永久编号 = '" & e.DataRow("永久编号") & "' and 时间 = '" & Vars("签到时间") & "'")
If b IsNot Nothing Then
b("动员") = True
b("邀请") = True
b("大会1") = True
b("时间") = Vars("签到时间")
b("产品名") = Vars("产品名")
Else
Tables("大会明细").AddNew
Tables("大会明细").Current("永久编号") = e.DataRow("永久编号")
Tables("大会明细").current("动员") = True
Tables("大会明细").current("邀请") = True
Tables("大会明细").current("大会1") = True
Tables("大会明细").current("时间") = Vars("签到时间")
Tables("大会明细").current("产品名") = Vars("产品名")
End If
ElseIf Vars("签到类型") = "小会签到" Then
e.DataRow("上次活动日期") = Vars("签到时间")
Dim a As DataRow
Dim b As DataRow
a = DataTables("到会明细表").Find("永久编号 = '" & e.DataRow("永久编号") & "' and 日期 = '" & Vars("签到时间") & "'")
b = DataTables("小会明细").Find("永久编号 = '" & e.DataRow("永久编号") & "' and 时间1 = '" & Vars("签到时间") & "'")
If a IsNot Nothing Then
a("预约") = True
a("失约") = False
a("迟到") = False
a("签到") = True
Else
Tables("到会明细表").AddNew
Tables("到会明细表").Current("永久编号") = e.DataRow("永久编号")
Tables("到会明细表").Current("预约") = True
Tables("到会明细表").Current("失约") = False
Tables("到会明细表").Current("迟到") = False
Tables("到会明细表").Current("签到") = True
Tables("到会明细表").Current("日期") = Vars("签到时间")
Tables("到会明细表").Current("轮次") = Vars("签到场次")
Tables("小会明细").AddNew
Tables("小会明细").Current("永久编号") = e.DataRow("永久编号")
Tables("小会明细").Current("参加") = True
Tables("小会明细").Current("时间1") = Vars("签到时间")
Tables("小会明细").Current("产品名") = Vars("产品名")
End If
End If
End If
If e.NewValue = "迟到" Then
If Vars("签到类型") = "普通签到" Then
e.DataRow("上次活动日期") = Vars("签到时间")
Dim a As DataRow
a = DataTables("到会明细表").Find("永久编号 = '" & e.DataRow("永久编号") & "' and 日期 = '" & Vars("签到时间") & "'")
If a IsNot Nothing Then
a("预约") = True
a("失约") = False
a("迟到") = True
a("签到") = False
e.DataRow("场次分类") = Vars("场次分类")
Else
Tables("到会明细表").AddNew
Tables("到会明细表").Current("永久编号") = e.DataRow("永久编号")
Tables("到会明细表").Current("预约") = True
Tables("到会明细表").Current("失约") = False
Tables("到会明细表").Current("迟到") = True
Tables("到会明细表").Current("签到") = False
Tables("到会明细表").Current("日期") = Vars("签到时间")
Tables("到会明细表").Current("轮次") = Vars("签到场次")
e.DataRow("场次分类") = Vars("场次分类")
End If
ElseIf Vars("签到类型") = "大会动员" Then
e.DataRow("上次活动日期") = Vars("签到时间")
Dim a As DataRow
Dim b As DataRow
a = DataTables("到会明细表").Find("永久编号 = '" & e.DataRow("永久编号") & "' and 日期 = '" & Vars("签到时间") & "'")
b = DataTables("大会明细").Find("永久编号 = '" & e.DataRow("永久编号") & "' and 时间 = '" & Vars("签到时间") & "'")
If a IsNot Nothing Then
a("预约") = True
a("失约") = False
a("迟到") = True
a("签到") = False
e.DataRow("场次分类") = Vars("场次分类")
Else If b IsNot Nothing Then
b("动员") = True
b("邀请") = True
b("时间") = Vars("签到时间")
b("产品名") = Vars("产品名")
Else
Tables("到会明细表").AddNew
Tables("到会明细表").Current("永久编号") = e.DataRow("永久编号")
Tables("到会明细表").Current("预约") = True
Tables("到会明细表").Current("失约") = False
Tables("到会明细表").Current("迟到") = True
Tables("到会明细表").Current("签到") = False
Tables("到会明细表").Current("日期") = Vars("签到时间")
Tables("到会明细表").Current("轮次") = Vars("签到场次")
Tables("大会明细").AddNew
Tables("大会明细").Current("永久编号") = e.DataRow("永久编号")
Tables("大会明细").current("动员") = True
Tables("大会明细").current("邀请") = True
Tables("大会明细").current("时间") = Vars("签到时间")
Tables("大会明细").current("产品名") = Vars("产品名")
End If
ElseIf Vars("签到类型") = "大会签到" Then
Dim b As DataRow
b = DataTables("大会明细").Find("永久编号 = '" & e.DataRow("永久编号") & "' and 时间 = '" & Vars("签到时间") & "'")
If b IsNot Nothing Then
b("动员") = True
b("邀请") = True
b("大会1") = True
b("时间") = Vars("签到时间")
b("产品名") = Vars("产品名")
Else
Tables("大会明细").AddNew
Tables("大会明细").Current("永久编号") = e.DataRow("永久编号")
Tables("大会明细").current("动员") = True
Tables("大会明细").current("邀请") = True
Tables("大会明细").current("大会1") = True
Tables("大会明细").current("时间") = Vars("签到时间")
Tables("大会明细").current("产品名") = Vars("产品名")
End If
ElseIf Vars("签到类型") = "小会签到" Then
e.DataRow("上次活动日期") = Vars("签到时间")
Dim a As DataRow
Dim b As DataRow
a = DataTables("到会明细表").Find("永久编号 = '" & e.DataRow("永久编号") & "' and 日期 = '" & Vars("签到时间") & "'")
b = DataTables("小会明细").Find("永久编号 = '" & e.DataRow("永久编号") & "' and 时间1 = '" & Vars("签到时间") & "'")
If a IsNot Nothing Then
a("预约") = True
a("失约") = False
a("迟到") = True
a("签到") = False
Else
Tables("到会明细表").AddNew
Tables("到会明细表").Current("永久编号") = e.DataRow("永久编号")
Tables("到会明细表").Current("预约") = True
Tables("到会明细表").Current("失约") = False
Tables("到会明细表").Current("迟到") = True
Tables("到会明细表").Current("签到") = False
Tables("到会明细表").Current("日期") = Vars("签到时间")
Tables("到会明细表").Current("轮次") = Vars("签到场次")
e.DataRow("场次分类") = Vars("场次分类")
Tables("小会明细").AddNew
Tables("小会明细").Current("永久编号") = e.DataRow("永久编号")
Tables("小会明细").Current("参加") = True
Tables("小会明细").Current("时间1") = Vars("签到时间")
Tables("小会明细").Current("产品名") = Vars("产品名")
End If
End If
End If
If e.NewValue = "失约" Then
Dim a As DataRow
a = DataTables("到会明细表").Find("永久编号 = '" & e.DataRow("永久编号") & "' and 日期 = '" & Vars("签到时间") & "'")
If a IsNot Nothing Then
If a("签到") = False And a("迟到") = False Then
a("预约") = True
a("失约") = True
End If
Else
Tables("到会明细表").AddNew
Tables("到会明细表").Current("永久编号") = e.DataRow("永久编号")
Tables("到会明细表").Current("预约") = True
Tables("到会明细表").Current("失约") = True
Tables("到会明细表").Current("迟到") = False
Tables("到会明细表").Current("签到") = False
Tables("到会明细表").Current("日期") = Vars("签到时间")
Tables("到会明细表").Current("轮次") = Vars("签到场次")
End If
End If
If e.NewValue = "预约" Then
Dim a As DataRow
a = DataTables("到会明细表").Find("永久编号 = '" & e.DataRow("永久编号") & "' and 日期 = '" & Vars("签到时间") & "'")
If a IsNot Nothing Then
If a("签到") = False And a("迟到") = False Then
a("预约") = True
a("失约") = False
End If
Else
Tables("到会明细表").AddNew
Tables("到会明细表").Current("永久编号") = e.DataRow("永久编号")
Tables("到会明细表").Current("预约") = True
Tables("到会明细表").Current("失约") = False
Tables("到会明细表").Current("迟到") = False
Tables("到会明细表").Current("签到") = False
Tables("到会明细表").Current("日期") = Vars("签到时间")
Tables("到会明细表").Current("轮次") = Vars("签到场次")
End If
End If
End If
End If