日期:2014-05-17  浏览次数:20946 次

帮忙解释一下这些语句
<%
Totel   =   0
j   =   1
Do   Until   j   >   12
Money   =   0
Set   yue   =   Conn.Execute( "Select   Money,InOut   From   [PayList]   Where   PayType= ' "&pType& " '   and   Time   like   '% "&month(j)& "% '   ")   (这里   Time   like   '% "&month(j)& "% '   不明白)
If   Not   yue.Eof   Then
      Do   While   Not   yue.Eof
      If   yue(1)   =   1   Then   Money   =   Money   +   Cint(yue(0))
      If   yue(1)   =   0   Then   Money   =   Money   -   Cint(yue(0))
      yue.MoveNext
      Loop
Totel   =   Totel   +   Money

                For   k=1   To   12
                  If   k=j   Then
                      If   Money <0   Then   OutMonth(k)   =   OutMonth(k)   +   Money(这里OutMonth(k)这个K是代表什么意思?)
                      If   Money> 0   Then   InMonth(k)   =   InMonth(k)   +   Money
                      SumMonth(k)   =   SumMonth(k)   +   Money
                  End   if
                Next

------解决方案--------------------
Time like '% "&month(j)& "% '这是个模糊查询,比如month(j)=9的话,可查询出0908等。
OutMonth(k),是你自己定义的函数吧,k是1-12中的值。
------解决方案--------------------
Time like '% "&month(j)& "% '
SQL语法上指时间日期字符串中包含month(j),month本是VBScript中的系统函数,参数是Date型,它这里搞了一个j(整形的),不知是写错了还是咋滴。

For k=1 To 12
If k=j Then
If Money <0 Then OutMonth(k) = OutMonth(k) + Money(这里OutMonth(k)这个K是代表什么意思?)
If Money> 0 Then InMonth(k) = InMonth(k) + Money
SumMonth(k) = SumMonth(k) + Money
End if
Next
For中只包含了一个If语句 If k=j Then
有这个必要吗?要For做啥呢?
不就是 If j> =1 And j <=12 吗?
去掉For,同时把k改成j
If j> =1 And j <=12 Then
If Money <0 Then OutMonth(j) = OutMonth(j) + Money
If Money> 0 Then InMonth(j) = InMonth(j) + Money
SumMonth(j) = SumMonth(j) + Money
End if
这里的
OutMonth(j)与inMonth(j)应该是计算月份为j的这个月的收入与支出,这里你没有给出这两个函数的代码。
程序中我提出了两点不合理的地方,多少说明程序有点问题,建议这样的代码不看也罢