QT Excel 插入、删除或者更改数据之后保存保存失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT Excel 插入、删除或者更改数据之后保存保存失败相关的知识,希望对你有一定的参考价值。

用QODBC读取Excel文件,执行insert update命令之后,把程序关闭之后重新打开还是没有修改过的数据,,不过好像有时又可以保存,不知道为什么、、求指教~~~~~

参考技术A 通常如果没有关闭excel的话,按ctrl+z就可以撤销原来的操作,我用2007是可以的,其他的没有尝试过。如果退出过excel的话,但靠excel本身是恢复不了了,有人说可以通过第三方数据恢复软件可以恢复,我没有尝试过,但是...

使用 VBA 更改美国日期从 Excel 插入 Access 数据库的日期

【中文标题】使用 VBA 更改美国日期从 Excel 插入 Access 数据库的日期【英文标题】:Date inserted into Access Database from Excel using VBA changes to US date 【发布时间】:2012-12-03 13:39:03 【问题描述】:

所以我使用 VBA 生成的查询将一堆记录从 Excel 电子表格插入到 Access 数据库中。

我的查询基本上是这样的:

accName = r.Offset(x, 0)
AccNum = r.Offset(x, 1)
sector = r.Offset(x, 2)
holding = r.Offset(x, 3)
holdingvalue = r.Offset(x, 4)
holdingdate = CDate(r.Offset(x, 5))

sSQL = "INSERT INTO Holdings (AccName, AccNum, Sector, Holding, HoldingValue, HoldingDate)" & _
" VALUES ('" & Replace(accName, "'", "''") & "', '" & AccNum & "', '" & sector & "', '" & Replace(holding, "'", "''") & "', '" & holdingvalue & "', #" & holdingdate & "#)"

生成的查询示例如下所示:

INSERT INTO Holdings (AccName, AccNum, Sector, Holding, HoldingValue, HoldingDate) 
VALUES ('Account 123', '472700', '', 'IShares S&P 500', '54379.15', #03/12/2012#)

错误功能位是查询中的日期已从英国日期 (dd/mm/yyyy) 变为美国日期 (mm/dd/yyyy)。我还尝试将电子表格上的日期格式化为 ISO 日期(yyyy-mm-dd),但始终作为美国日期,即使我不使用 cdate。 知道这里发生了什么吗?

编辑:当我单步执行代码并将鼠标悬停在 holdingdate 变量上时,它显示“03/12/2012”并且查询与上面相同(即日期为 dd/mm/yyy 格式,尽管我将holdingdate定义为holdingdate = Format(r.Offset(x, 5), "yyyy-mm-dd")。单元格中的日期也是连续的(即显示为数字时的41246)。 当我在输入数据后查看访问数据库时,日期显示为 12/03/2012。我只是不明白....

【问题讨论】:

CDate(Format(r.Offset(x,5), "dd/mm/yyyy") 怎么样可能也和你的 excel 设置有关。 您的系统日期/时间是否设置为英国?您可能已将 excel 日期格式设置为英国,但将系统格式保留为美国。 是的,我的 excel 和系统时间都设置为英国。不知道为什么要这样做。上面试了Bmo的方法无效 尝试 "dd mmm yyyy" 这应该返回 '01 Jan 2012',那么无论你的设置是什么。 即使holdingdate = Format(CDate(r.Offset(x, 5).Value), "dd mmm yyyy")holdingdate 仍然返回为 03/12/2012。格式化函数似乎什么都不做 【参考方案1】:

解决了!我以前将holddate 调暗为日期,所以无论我给它什么格式,它只是返回一个excel 日期。 将其更改为 Dim holdingdate as string 已经解决了问题,并且日期现在作为字符串传递,Access 可以愉快地吃掉美国/英国的日期。

【讨论】:

以上是关于QT Excel 插入、删除或者更改数据之后保存保存失败的主要内容,如果未能解决你的问题,请参考以下文章

excel里突然多了一个空白的下拉菜单

Java 插入隐藏/显示删除Excel行或列

批量更改Excel文件中大量工作表的内容(修改公司一千多份excel表格)

批量执行SQL语句,进行删除,插入或者更改。

Excel VBA 在工作表中插入/删除行

动态树模型 (Qt)