时间如流水啊,是过的真快啊,一周又过去到了周末了,忙啊,真的是多姿多彩,当然一周的主要事情还是机房收费系统,只想赶紧结束,然后抓紧整毕设······好了废话不多说,还是总结一下遇到的问题吧。
首先,在借鉴别人博客的时候对于以下代码中的mrcc.Fields(0)不理解:
txtsql = "select sum(addmoney) from ReCharge_Info where date='" & Date & "'" '计算充值金额
Set mrcc = ExecuteSQL(txtsql, strMsg)
If IsNull(mrcc.Fields(0)) = True Then
CZ = 0
Else
CZ = Trim(mrcc.Fields(0))
End If
经请教和实际操作得以理解,现举例说明,例Recharge_info表:
代码SQL语句在数据库中进行“新建查询”为:
结果为:
代码中的mrcc.Fields(0)是指查出来的表的第0列。
其次,对于学生基本信息维护,再进行不同的字段名对应不同地操作符时,原始代码如下:
Private Sub comboFieldName1_Click(Index As Integer)
Dim i As Integer
i = Index
'根据不同内容调用不同的运算符
If comboFieldName1(i).Text = "姓名" Or comboFieldName1(i) = "备注" Then
comboOperator1(i).Clear
comboOperator1(i).AddItem "="
comboOperator1(i).AddItem "<>"
Else
comboOperator1(i).Clear
comboOperator1(i).AddItem "="
comboOperator1(i).AddItem "<"
comboOperator1(i).AddItem ">"
comboOperator1(i).AddItem "<>"
End If
End Sub
在运行时,第一行是没有问题的,但是在第二行时就不顶事了,因为Combo控件我用的是数组,真是让人头疼,感觉可能拆了会更好,但是拆开后还是不行啊,有种重新写一遍的冲动,限于计划的时间,又改回来了,不讲究,毕竟已经弄了那么久,修改后不同的字段名终于和不同的运算符对应了,但是在第一行选择完,选择第二行运算符时,第一行的运算符为空了,选择第三行的运算符,第二行的运算符也为空了,代码如下:
Private Sub comboFieldName1_Click(Index As Integer) '根据不同内容调用不同的运算符
Dim i As Integer
For i = 0 To 2
Select Case comboFieldName1(i).Text
Case "姓名", "备注"
comboOperator1(i).Clear
comboOperator1(i).AddItem "="
comboOperator1(i).AddItem "<>"
Case "卡号", "上机日期", "上机时间", "下机日期", "下机时间", "消费金额", "余额"
comboOperator1(i).Clear
comboOperator1(i).AddItem "="
comboOperator1(i).AddItem "<"
comboOperator1(i).AddItem ">"
comboOperator1(i).AddItem "<>"
End Select
Next i
End Sub
自己当时真的是没有耐心了,经过和同学一起解决终于知道,只需要改一点点就可以了,如下:
For i = Index To 2
因为在运行时,用的时For循环,控件组为0~2,所以未进行修改前的会一个Combo控件循环3次,见到的是这样,具体还不是很清楚为啥,进行如此修改是因为Index索引的是控件组的数值。
总结:以上就是我要分享的内容,问题解决之后整个人都很舒服,解决了就是最好的成长,在接下来我会继续加油!