用UPDATE语句无法更新数据

zlh18984234193 2019-06-06 09:49:48

程序如图所示,我的数据库中有“姓名、第一单元到第八单元”共9个字段,当在窗体的姓名和单元中输入数据时能正确写入数据到数据库,如果记录中已经有了学生姓名,输入单元数据后应该更新这个单元的数据,但程序显示成功,数据却没有更新,请各位指点,哪儿出错……
...全文
573 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlh18984234193 2019-06-12
  • 打赏
  • 举报
回复
谢谢!听君一席话,胜过查阅N本书!我因工作需要,才开始学习VB,今后若有难处,还请多多指教!
milaoshu1020 2019-06-11
  • 打赏
  • 举报
回复
赞同楼上,用rs.open应该不适用于delete的sql语句;
应该用cn.execute;
现在还是人类 2019-06-11
  • 打赏
  • 举报
回复
like 我竟然打错字了
现在还是人类 2019-06-11
  • 打赏
  • 举报
回复
看了你的两个函数我也是醉了,首先是 ExecSQL 这个函数,有什么必要去写这么一个函数? 你直接 cn.execute SQL 不就可以了,还多弄个 Recordset 对象出来干嘛。 还有你的 RecExist 函数,只是为了判断数据是否存在? 如果给个大点的数据表查询给你,估计你单是为了判断是否有数据在时间上都耗死你。 因为ADO的这个RecordCount属性是轮训查询记录来统计数量的,有个几十万条含文本的数据都轮到你CPU发烫。 所以如果想得到查询的数据条数,通常的做法是直接用 SQL 语句用相同的条件先查询数据条数,再进行具体数据的查询。 SQL语句中有个叫聚合函数的理念,比如 Count 这个函数,就可以统计查询数据的数量。 而使用聚合函数得到这个数量的速度,远比你用ADO对象的RecordCount 属性得到数量的速度快出 n 倍,如:

' conn 为全局的数据连接对象

Dim str_sql As String, _
        i As Long, _
        rs As Recordset, _
        rs_count As Long
Set rs = New Recordset
' 这里是根据条件统计数据数量
str_sql = "select count(id) as c from 表1 where ff link '%ABC%'"
rs.open str_sql,conn,3,1
rs_count = rs!c
rs.close
if rs_count>0 then
    ' 这里是用相同的条件同时排序查询具体的数据
    str_sql = "select * from 表1 where ff link '%ABC%' order by id"
    rs.open str_sql,conn,3,1
    for i=1 to rs_count
        debug.print rs!id
        if i<rs_count then rs.movenext
    next i
    rs.close
end if
 Set rs = Nothing
这样的操作特别是对于数据量大的时候速度差别最为明显。 所以我之前才说你的数据库操作习惯很不正确。
zlh18984234193 2019-06-11
  • 打赏
  • 举报
回复
引用 7 楼 milaoshu1020 的回复:
你的ExecSQL函数是什么样子的?能不能发一下?

谢谢您的指点及提醒!帮我解决了大问题,我的很多编程习惯不够规范:数据库使用完后应该关闭释放内存。
zlh18984234193 2019-06-10
  • 打赏
  • 举报
回复
引用 7 楼 milaoshu1020的回复:
你的ExecSQL函数是什么样子的?能不能发一下?
谢谢指点,明天请你指正。
milaoshu1020 2019-06-10
  • 打赏
  • 举报
回复
你的ExecSQL函数是什么样子的?能不能发一下?
zlh18984234193 2019-06-09
  • 打赏
  • 举报
回复
如果您方便的话,请指点一下"insert into\update\delete from\select from"这几个语句的语法结构,主要是空格该加在哪里?为了能找到不能正确得到结果的原因,我都快崩溃了!
zlh18984234193 2019-06-09
  • 打赏
  • 举报
回复
谢谢指点!我想破脑袋也没找出语法错误,原来就差了一个空格!另外,这个程序中的一段删除数据库记录的代码也是运行没有错误提示,我也找不出错在哪里,可就是删除不了,是不是哪里也差一个空格呢?
现在还是人类 2019-06-09
  • 打赏
  • 举报
回复
应该是你的数据对比条件本来就不对,还有就是你的数据库操作习惯很不正确哟。
milaoshu1020 2019-06-07
  • 打赏
  • 举报
回复
不一样,加了一个空格;
zlh18984234193 2019-06-07
  • 打赏
  • 举报
回复
谢谢关注!但你回复的修改前后一样,什么意思呢?
milaoshu1020 2019-06-06
  • 打赏
  • 举报
回复
strsql = "update 学生成绩统计 set"
改成
strsql = "update 学生成绩统计 set "
试试?
内容概要:SSD2828QN4是一款MIPI主桥接芯片,用于连接应用处理器与传统并行LCD接口及支持MIPI从属接口的LCD驱动器。该芯片支持最高每通道1Gbps的串行链路速度,最多可配置4个数据通道,显著减少了信号数量。它支持多种接口模式,包括RGB+SPI组合接口,适用于驱动智能或非智能显示面板,并能通过命令模式和视频模式传输数据。芯片内置时钟和复位模块、外部接口、协议控制单元(PCU)、包处理单元(PPU)、错误校正码/循环冗余校验(ECC/CRC)模块、长包和命令缓冲区、D-PHY控制器、模拟收发器以及内部锁相环(PLL),确保了高效的数据传输和系统稳定性。此外,文档详细描述了芯片的引脚分配、寄存器设置、操作模式、电源序列、时序特性等关键参数,为开发者提供了全面的技术指导。 适合人群:具备一定硬件设计基础,从事嵌入式系统开发、显示技术研究的研发人员。 使用场景及目标:①实现应用处理器与MIPI兼容显示屏之间的高速数据传输;②优化显示系统的功耗表现,减少电磁干扰(EMI);③通过灵活配置不同接口模式来适应各种显示设备的需求。 阅读建议:此文档面向具有一定电子工程背景的专业人士,建议读者结合实际项目需求深入理解各章节内容,特别是关于寄存器配置、时序要求等方面的具体说明。对于初次接触此类技术的开发者而言,建议先熟悉基本概念再逐步掌握高级功能的应用方法。

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧