注册 登录
编程论坛 VB6论坛

求助,关于 INSERT INTO

clyfd 发布于 2022-02-25 19:06, 1703 次点击
向数据库录入数据,按开始号结束号录入,如开始号是1,结束号是5,那就录入1,2,3,4,5
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

但是提示
只有本站会员才能查看附件,请 登录

程序代码:
Private Sub Command1_Click()
ks = Int(Text1.Text)
js = Int(Text2.Text)
SJK
   
   Sql2 = "select max(id) from 数据"
   For X = ks To js
        maxid = Cnn.Execute(Sql2).Fields(0).Value + 1
'        Str = Split(Label1.Caption, " ")
'
        Sql = "insert into 数据 values(" & maxid & "," & X & "," & Combo1.Text & ",'" & Combo2.Text & "',#" & Str & "#)"
        Sql = "insert into 数据 values(" & maxid & "," & X & "," & Combo1.Text & ",'" & Combo2.Text & "',#" & Label1.Caption & "#)"
        Cnn.Execute (Sql)
   Next
   MsgBox "成功写入数据"
End Sub

百度说加[]还是不行,请老师帮看看,谢谢
只有本站会员才能查看附件,请 登录
3 回复
#2
wds12022-02-25 23:36
主要问题:如果表是空的,maxid = Cnn.Execute(Sql2).Fields(0).Value + 1返回值是空,因此插入时报错。
   增加判断If IsNull(maxid) Then       maxid = 1

  Sql2 = "select max(id) from 数据"'源程序中[数据]的方括号去掉
   For X = ks To js
     maxid = Cnn.Execute(Sql2).Fields(0).Value + 1
     if IsNull(maxid) Then  maxid = 1(如果表格为空表,那么上条语句结果maxid为null,所以报错,增加个判断)
        Sql = "insert into 数据 values(" & maxid & "," & X & "," & Combo1.Text & ",'" & Combo2.Text & "',#" & Label1.Caption & "#)"'源程序的[去掉
        Cnn.Execute (Sql)
   Next
#3
clyfd2022-02-26 11:29
回复 2楼 wds1
谢谢老师的帮助,确实是这个问题,数据库有数据后再用原来的就可以了,再次感谢
#4
独木星空2022-02-27 22:57
回复 2楼 wds1
学习了。资料宝贵。
1