首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 实时错误'-2147217887(80040e21)'字段太小而不能接受所要添加的数据的数量。试着插入或粘贴较少的数据 [已结贴,结贴人:xueluoqiuqian]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xueluoqiuqian
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-06-01 20:20:38 楼主
    实时错误'-2147217887(80040e21)'字段太小而不能接受所要添加的数据的数量。试着插入或粘贴较少的数据
    这个错误该怎么改呢?请高手指教

    出错的这段代码:Private Sub readerInfoadd_Click()
      Dim rs As New ADODB.Recordset
      Dim sql As String
      sql = "select * from readers"
      Dim sql2 As String
      sql2 = "select * from readers where readerid = '" & readerID.Text & "'"
      If Trim(readerID.Text) = "" Or Trim(readerName.Text) = "" Or Trim(readerSex.Text) = "" Or _
        Trim(readerType.Text) = "" Or Trim(idCardNO.Text) = "" Or Trim(department.Text) = "" Or _
        Trim(readerEmail.Text) = "" Or Trim(readerPhone.Text) = "" Or Trim(readerEnroDTP.Value) = "" Or _
        Trim(validDTP.Value) = "" Or Trim(readerOther.Text) = "" Then
        MsgBox "信息录入不能为空!", vbOKOnly
      Else
        Set rs = TransactSQL(sql2)
        If rs.EOF = flase Then
          MsgBox "该编号读者已经存在!", vbOKOnly
          rs.Close
        Else
          Set rs = TransactSQL(sql)
          rs.AddNew          '添加新记录
          rs.Fields(0) = Trim(readerID.Text)
          rs.Fields(1) = Trim(readerName.Text)
          rs.Fields(2) = Trim(readerType.Text)
          rs.Fields(3) = Trim(idCardNO.Text)
          rs.Fields(4) = Trim(department.Text)
          rs.Fields(5) = Trim(readerEmail.Text)
          rs.Fields(6) = Trim(readerPhone.Text)
          rs.Fields(7) = Trim(readerEnroDTP.Value)
          rs.Fields(8) = Trim(validDTP.Value)
          rs.Fields(9) = Trim(readerOther.Text)
          rs.Update
          MsgBox "读者添加成功!", vbOKOnly
          rs.Close
        End If
      End If
    End Sub
    运行到      rs.Fields(2) = Trim(readerType.Text)这一句时提示这个错误,但是我在数据库里把字段长度都改的很长了还是不行。麻烦高手指教
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • CityBird
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-06-01 20:53:321楼 得分:20
    可能是"select *"中返回的字段顺序与你用rs.fields(index)这种方式的顺序不匹配造成的,

    一种解决方法是用Select查询时显示的规定字段返回的顺序,比如把sql语句改成"select id,name,type,cardno………… from readers …………"

    另一种方法是在给字段赋值时不用字段索引而使用字段名称,比如将rs.fields(0)改成rs.fields("id")
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xueluoqiuqian
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-06-01 21:55:442楼 得分:0
    谢谢三楼的狼,果然是你说的原因。
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved