我有一个选择:
STATUS -1,0和1。
SELECT Statment:
SQL= "SELECT * FROM MYTABLE ORDER BY STATUS DESC"
SET MYDB = conn.Execute(SQL)
我的问题:
使用DO WHiLE / LOOP
将SELECT分为两部分第1部分:
**状态1是"已批准"状态并可以否决寄存器的限制。
我有一个有20名学生的教室。 (登记限制) 但我可以覆盖这个,并与21,22,23名学生一起上课 - 与#34; STATUS 1" =批准。
如果我只有15个被批准 - 我将用第一个5" STATUS 0"完成寄存器的限制。 (等待批准)。
第2部分:
我有一个PARTIAL解决方案:
DO WHILE (((NOT MYDB.EOF) AND (CINT(COUNTREG) <= CINT(TOTALREG))) OR ((NOT MYDB.EOF) AND (MYDB("STATUS") > 0 ))) AND ((NOT MYDB.EOF) AND (MYDB("STATUS") > -1 ))
(NOT MYDB.EOF) AND (CINT(COUNTREG) <= CINT(TOTALREG))
(NOT MYDB.EOF) AND (MYDB("STATUS") > 0 )
(NOT MYDB.EOF) AND (MYDB("STATUS") > -1 )
- 对于LOOP内的每个寄存器,COUNTREG =将递增(countreg = countreg + 1)
- TOTALREG =是变量(教室允许的人数)
它适用于所有情况..但是当我没有注册STATUS = -1时 - 我收到错误&#39; 80020009&#39;
为什么呢?任何想法?