大家好,请教一个SQL语句,我想在一表roll中,把所有的wr_tons_1=0时所对应的上面一条记录插入到表wr_1中,
我用下面的语句,
If str <> 0 Then
db.Execute "insert into wr_1 select date,time,strip_id,wr_tons_1 from roll where wr_tons_1<>0"
怎么老是一次性把所有的roll表中wr_tons_1<>0的记录插入到表wr_1中,有没有办法让此语句一次只插入一条记录,因为我下面还有一条语句做判断插入的.下面是我全部的循环语句,麻烦大家帮我看一看,两天了,还是老样子.谢谢了.Private Sub Command3_Click()
Dim db As Database
Dim rst As DAO.Recordset
Set db = OpenDatabase("d:\out.mdb")
Set rst = db.OpenRecordset("roll")
rst.MoveFirst
Do While Not rst.EOF
str = rst("wr_tons_1")
If str <> 0 Then
db.Execute "insert into wr_1 select wr_tons_1 from roll where wr_tons_1<>0"
ElseIf str = 0 Then
db.Execute "insert into wr_2 select wr_tons_1 from wr_1 where ID=(select max(ID) from wr_1)"
End If
rst.MoveNext
Loop
end sub
我用下面的语句,
If str <> 0 Then
db.Execute "insert into wr_1 select date,time,strip_id,wr_tons_1 from roll where wr_tons_1<>0"
怎么老是一次性把所有的roll表中wr_tons_1<>0的记录插入到表wr_1中,有没有办法让此语句一次只插入一条记录,因为我下面还有一条语句做判断插入的.下面是我全部的循环语句,麻烦大家帮我看一看,两天了,还是老样子.谢谢了.Private Sub Command3_Click()
Dim db As Database
Dim rst As DAO.Recordset
Set db = OpenDatabase("d:\out.mdb")
Set rst = db.OpenRecordset("roll")
rst.MoveFirst
Do While Not rst.EOF
str = rst("wr_tons_1")
If str <> 0 Then
db.Execute "insert into wr_1 select wr_tons_1 from roll where wr_tons_1<>0"
ElseIf str = 0 Then
db.Execute "insert into wr_2 select wr_tons_1 from wr_1 where ID=(select max(ID) from wr_1)"
End If
rst.MoveNext
Loop
end sub
解决方案 »
- 求助!VB键盘模拟鼠标点击要怎么弄?
- PictureBox 改变字体粗细
- vb新手求救
- VB中想用MonthView控件要引用工程中的哪個部件啊??急!
- 如何替换文本文件中的一行?
- 一个简单问题,如何改变progressbar控件的填充颜色。
- 请问哪位大侠用VB操作过文件.txt或者.ini文件就是要把登录SQL Server2000的信息写到里去!
- 100分寻求installshield6.3下载!!!!!!!
- 最近碰到的怪问题???
- 一位MM正在努力学习编程,不知学到什么程度才能进入程序员的队伍中去呢?
- 请问vb中如何实现Singleton模式
- 怎么能用鼠标拖动改变ListBox控件的高度?
Dim db As Database
Dim rst As DAO.Recordset
Set db = OpenDatabase("d:\out.mdb")
Set rst = db.OpenRecordset("roll")
rst.MoveFirst
Do While Not rst.EOF
If rst("wr_tons_1") <> 0 Then
db.Execute "insert into wr_1 select rst!wr_tons_1 "
ElseIf str = 0 Then
db.Execute "insert into wr_2 select rst!wr_tons_1"
End If
rst.MoveNext
Loop
end sub
好像直接执行
db.Execute "insert into wr_1 select wr_tons_1 from roll where wr_tons_1<>0"
db.Execute "insert into wr_2 select wr_tons_1 from wr_1 where wr_tons_1=0 and ID=(select max(ID) from wr_1)"
就可以呀
怎么你外面判断了在语句里有判断一次?
Private Sub Command3_Click()
Dim db As Database
Dim rst As DAO.Recordset
Set db = OpenDatabase("d:\out.mdb")
Set rst = db.OpenRecordset("roll")
rst.MoveFirst
Do While Not rst.EOF
If rst("wr_tons_1") <> 0 Then
db.Execute "insert into wr_1 select rst!wr_tons_1 "
ElseIf str = 0 Then
db.Execute "insert into wr_2 select rst!wr_tons_1"
End If
rst.MoveNext
Loop
end sub
提示:实时错误3125
wr_tons_1不是一个有效名称或符号.
我用的是access数据库,不能用触发器
能否帮我写下代码,谢谢了.
id date wr_id wr_tons_1
1 2003.02.3 2201 265
2 2003.02.4 2201 268
3 2003.02.5 2203 0
4 2003.02.6 2203 20
5 2003.02.7 2203 39
6 2003.02.8 2205 0
.
.
.
想把roll表中wr_tons_1=0时的记录的上一条记录,存入到另一表:a2中.比如:表a1中id=3时的记录tons=0,想把此记录的上一条
记录即:id=2 wr_tons_1=268的记录插入到表wr_2中.wr_1是一个是间表
不知要怎样做.思路:表roll,是一个不断增加记录的表.可以在表wr_1增加记录时,写一个条件,如果wr_tons_1<>0时,记录增加到表wr_1中,如果
wr_tons_1=0时,先不要向表wr_1添加记录,把表wr_1最后一条的记录插入到表wr_2中.但怎样写语句?请教各位表什么好的办法,谢谢了.yoki(小马哥) :我就是想实现此目的.我用的是dao+access数据库,你在另外一贴回答用触发器,但access没有触发器,只能用代码来实现了.请大家帮帮我吧,我试过很久了,没有写出来.再次多谢各位.
插入前判断当前插入值wr_tons_1是否为0
如果是的话,就得到当前最大的ID并且wr_tons_1<>0的那条纪录插入到wr_2中
否者直接插入
If str <> 0 Then
db.Execute "insert into wr_1 select date,time,strip_id,wr_tons_1 from roll where wr_tons_1<>0"
怎么老是一次性把所有的roll表中wr_tons_1<>0的记录插入到表wr_1中,有没有办法让此语句一次只插入一条记录,
而且,有些插入的sql语句,我不知怎样写,麻烦 yoki(小马哥) 是否帮我写一写,谢谢了.
if rst("wr_tons_1")<>0 then
db.Execute "insert into wr_1 (wr_tons_1) select wr_tons_1 from roll where id="+rst("id")
else
db.Execute "insert into wr_2 select wr_tons_1 from wr_1 where ID=(select max(ID) from wr_1)"
end if