我现在想把堆位中的序号按倒序重新编号,请问怎么写?请赐教!
Set rec1 = CreateObject("adodb.recordset")
Set conn1 = CreateObject("adodb.connection")
strcon1 = "driver={SQL Server};server=webserver;uid=hcgs;pwd=6116375;database=hc"
conn1.Open strcon1
strsql1 = "select * from 堆码单 where 堆位='" & Trim(Combo1.Text) & "' order by 序号 desc"
If rec1.EOF Then
MsgBox ("该堆位无数据,请重新输入或选择堆位!")
Exit Sub
Else
......下面该怎么写哦??
Set rec1 = CreateObject("adodb.recordset")
Set conn1 = CreateObject("adodb.connection")
strcon1 = "driver={SQL Server};server=webserver;uid=hcgs;pwd=6116375;database=hc"
conn1.Open strcon1
strsql1 = "select * from 堆码单 where 堆位='" & Trim(Combo1.Text) & "' order by 序号 desc"
If rec1.EOF Then
MsgBox ("该堆位无数据,请重新输入或选择堆位!")
Exit Sub
Else
......下面该怎么写哦??
Set conn1 = CreateObject("adodb.connection")
strcon1 = "driver={SQL Server};server=webserver;uid=hcgs;pwd=6116375;database=hc"
conn1.Open strcon1
strsql1 = "select * from 堆码单 where 堆位='" & Trim(Combo1.Text) & "' order by 序号 desc"
If rec1.EOF Then
MsgBox ("该堆位无数据,请重新输入或选择堆位!")
Exit Sub
Else
Max=rec1.field("序号" )
while not rec1.eof
rec1.field("序号")= Max-rec1.field("序号")+1 '如果是从1开始编号的话
rec1.movenext
wend
rec1.update
end if
set rs=new adodb.recordsetrs.open "select * from [biao]",conn,1,3 for i= rs.RecordCount to 1 step -1
rs!序号=i
rs.UPDATE
If Not rs.EOF() Then rs.MoveNext
next
set rs=nothing
Set conn1 = CreateObject("adodb.connection")
strcon1 = "driver={SQL Server};server=webserver;uid=hcgs;pwd=6116375;database=hc"
conn1.Open strcon1
strsql1 = "select * from 堆码单 where 堆位='" & Trim(Combo1.Text) & "' order by 序号 desc"
If rec1.EOF Then
MsgBox ("该堆位无数据,请重新输入或选择堆位!")
Exit Sub
Else
i=1 'i是你编号的开始
while not rec1.eof
rec1.field("序号")= i'如果是从1开始编号的话
i=i+1 '确定你的步长
rec1.movenext
wend
rec1.update
end if
rec1.movelast while not rec1.bof
rec1.field("序号")= Max-rec1.field("序号")+1 '如果是从1开始编号的话
rec1.movepriview
wend
rec1.update
end if
while not rec1.eof
rec1.field("序号")= i'如果是从1开始编号的话
i=i+1 '确定你的步长
rec1.movenext
wend
rec1.update
---这样的写法恐怕有问题吧,因为当前正在进行select查询,同时又修改,结果肯定update不了!你们也不经常写数据库程序吧??
while not rec1.eof
rec1.field("序号")= i'如果是从1开始编号的话
i=i+1 '确定你的步长
rec1.update
rec1.movenext
wend
刚才是在楼上那位的基础上改的,如果我自己写就这样写了,这样就没有错了,呵呵,你是说这样的情况么?
跟我当初想的是一样的,在select查询时怎么可能同时进行更新啊,要么除非创建一个recordset
rec2,用它来edit后update。各位怎么看?
dim rs as new adodb.recordset
dim DO_LinkString as string
set rc = new adodb.Connection
set rs=new adodb.recordset
‘jet4.0的连接字符,举个例子(ado2.7)
DO_LinkString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & SourseFilePathName & ";Persist Security Info=False;Jet OLEDB:DataBase Password=zcm"rc.Open ADO_LinkString
rc.CursorLocation = adUseClient
rs.open "select * from [biao] order by [序号] desc",conn,1,3if rs.recordcount<>0 then
for i= rs.RecordCount to 1 step -1
rs!序号=i
rs.UPDATE
If Not rs.EOF() Then rs.MoveNext
next
end ifrs.close
rc.close
set rc=nothing
set rs=nothing
同意!!