ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

EH搜索     
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel 2016函数公式学习大典 Office知识技巧免费学 打造核心竞争力的职场宝典
300集Office 2010微视频教程 Tableau-数据可视化工具 精品推荐-800套精选PPT模板,点击获取 ExcelHome出品 - VBA代码宝免费下载
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 Excel VBA经典代码实践指南
查看: 465|回复: 12

[已解决] 不能更新,数据库或对象为只读!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-1-12 13:26 | 显示全部楼层 |阅读模式
本帖最后由 peterpu 于 2020-1-12 23:04 编辑

目的:向数据库最后行插入“Sj.Fields("五分钟").Value = 888” 数据,程序“正确”正常运行(第一句Sql=);但程序“错误”无法正常运行(第二句Sql=);
          不知道是否是SQL语句的复杂程度不同造成的?(不同部分用红色标注

Sql = "SELECT lc1.日期,lc1.收盘,lc1.五分钟 FROM lc1 WHERE lc1.时间=1500 AND lc1.日期>= #" & Sheet5.Range("F13") & "# AND lc1.日期<= #" & Sheet5.Range("G13") & "# ORDER BY lc1.日期 asc"  (正常运行程序)

Sql = "SELECT lc1.日期, lc1.收盘,lc1.五分钟,Round([量能],0) AS New量能, 振幅之平均值, 交量之合计,主控之合计 FROM lc1 INNER JOIN (SELECT lc1.日期, Sum(lc1.交量) AS 交量之合计, Avg(lc1.振幅) AS 振幅之平均值, Sum(lc1.主控) AS 主控之合计 FROM lc1 GROUP BY lc1.日期)  AS T ON lc1.日期 = T.日期 WHERE lc1.时间=1500 AND lc1.日期>= #" & Sheet5.Range("F13") & "# AND lc1.日期<= #" & Sheet5.Range("G13") & "# ORDER BY lc1.日期 asc" (无法正常运行)

         谢谢您的帮助!

具体资料.rar






示意图.png

TA的精华主题

TA的得分主题

发表于 2020-1-12 16:28 | 显示全部楼层
又发新帖,都告诉你把字段名字列明出处就好了

评分

参与人数 2鲜花 +4 收起 理由
hope9966 + 2
peterpu + 2 感谢帮助

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-1-12 16:45 | 显示全部楼层
本帖最后由 peterpu 于 2020-1-12 16:53 编辑
microyip 发表于 2020-1-12 16:28
又发新帖,都告诉你把字段名字列明出处就好了

谢谢您的关注和帮助,数据库就一个表,字段名都在一个表里(已经上传),我并不明白您要什么?再次表示感谢!感觉可能因为SQL语句里面有了变量“T”导致的,本人已经失去信心,尽管又努力了一番,也许太困难了吧。

TA的精华主题

TA的得分主题

发表于 2020-1-12 17:00 | 显示全部楼层
你那个错误的SQL语句里面有些字段比如  New量能,振幅之平均值  等等字段,这些字段在源表里面是没有的,既然没有那你就必须指明这些字段的与源表的对应关系,否则你就不能调用update来更新数据,这样说你可能好理解点

评分

参与人数 1鲜花 +2 收起 理由
peterpu + 2 太强大了

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-1-12 17:08 | 显示全部楼层
本帖最后由 peterpu 于 2020-1-12 17:14 编辑
huang1314wei 发表于 2020-1-12 17:00
你那个错误的SQL语句里面有些字段比如  New量能,振幅之平均值  等等字段,这些字段在源表里面是没有的,既 ...

这下我明白了!“New量能,振幅之平均值  等等字段”我通过SQL求出来的,按您的说法是无法“update来更新数据”的吧? 谢谢版主指导!
看来也只能另想办法解决了,只是可能会影响一点速度了(比如重新打开数据库及更新SQL语句)。

TA的精华主题

TA的得分主题

发表于 2020-1-12 22:12 | 显示全部楼层
目前我大概明白是你想干嘛,对某些记录的某个字段进行更新,你目前的写法基本是错的,更新应该用Update而不是Select来获取记录所在位置再更新

评分

参与人数 1鲜花 +2 收起 理由
peterpu + 2 感谢帮助

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-1-12 22:26 | 显示全部楼层
本帖最后由 peterpu 于 2020-1-12 23:14 编辑
microyip 发表于 2020-1-12 22:12
目前我大概明白是你想干嘛,对某些记录的某个字段进行更新,你目前的写法基本是错的,更新应该用Update而不 ...

谢谢您的帮助!可能你没有看过我上传的文件,所以到目前还没有完全明白我的情况,其实并不是对原有的字段进行更新,而是将某一个数据反馈给数据库新字段(比如:平均股价),仅从SQL语法上目前并没有发现错误,否则第一行能正常运行的SQL语句应该也无法执行更新了,当然确实少不了Update语句。不过本人一开始想解决的问题其实并没有解决,考虑到版主认为应该使SQL里面的新字段名在原表上找到对应出处我是无法实现的,原本比较复杂的SQL语句甚至采用了变量 T等,所以自己最后就放弃了!

TA的精华主题

TA的得分主题

发表于 2020-1-13 07:56 | 显示全部楼层
peterpu 发表于 2020-1-12 22:26
谢谢您的帮助!可能你没有看过我上传的文件,所以到目前还没有完全明白我的情况,其实并不是对原有的字段 ...

就是看了你原文件我才这么说的,原文件的做法就是把记录游标移到指定位置,然后进行字段修改,再更新

评分

参与人数 1鲜花 +2 收起 理由
peterpu + 2 值得肯定

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-1-13 08:39 | 显示全部楼层
不如把你的需求想法说一说,大家共同研讨处理方法吧

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-1-13 08:55 | 显示全部楼层
本帖最后由 peterpu 于 2020-1-13 08:57 编辑
microyip 发表于 2020-1-13 08:39
不如把你的需求想法说一说,大家共同研讨处理方法吧

你真是太好了,让我感动!其实我就是要资料里能“正确”运行的效果,但后面SQL语言复杂了造成无法运行(希望不是这个原因),根据版主的意思应该也是这方面的缘故吧。呵呵,所以我放弃了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关注官方微信,每天学会一个新技能

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2020-4-10 05:04 , Processed in 0.076297 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2020 Wooffice Inc.

   

沪公网安备 31011702000001号 沪ICP备11019229号

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:徐怀玉律师 李志群律师

快速回复 返回顶部 返回列表