ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: xchjh

请教关于sql自动按条件总表拆分问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-10-19 01:14 | 显示全部楼层
增加一个代码过程,通过修改注册表的 TypeGuessRows=0,在数据提取后的程序结束之前,恢复TypeGuessRows=8,不知可行不可行?

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-10-21 20:32 | 显示全部楼层
QUOTE:
以下是引用office2008在2008-10-19 1:14:00的发言:
增加一个代码过程,通过修改注册表的 TypeGuessRows=0,在数据提取后的程序结束之前,恢复TypeGuessRows=8,不知可行不可行?

我试了:通过修改注册表:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel] 将TypeGuessRows修改为0,即TypeGuessRows=0,然后再加    字符imex=1

最后如   cn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;imex=1';data source=" & ThisWorkbook.FullName   保存后,重启电脑, 这样就可以了。修改注册表后,不重启电脑好像不行。 但用VBA操作修改注册表的过程不知怎写?

[此贴子已经被作者于2008-10-21 20:34:44编辑过]

TA的精华主题

TA的得分主题

发表于 2008-10-21 21:14 | 显示全部楼层
QUOTE:
以下是引用xchjh在2008-10-21 20:32:00的发言:

我试了:通过修改注册表:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel] 将TypeGuessRows修改为0,即TypeGuessRows=0,然后再加    字符imex=1

最后如   cn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;imex=1';data source=" & ThisWorkbook.FullName   保存后,重启电脑, 这样就可以了。修改注册表后,不重启电脑好像不行。 但用VBA操作修改注册表的过程不知怎写?


Sub fig()
Set x = CreateObject("wscript.shell")
 
x.RegWrite "HKLM\SOFTWARE\Microsoft\Jet\4.0\Engines\excel\typeguessrows", 0

End Sub

[此贴子已经被作者于2008-10-21 21:14:34编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-10-23 21:59 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
QUOTE:
以下是引用figfig在2008-10-21 21:14:00的发言:

Sub fig()
Set x = CreateObject("wscript.shell")
 
x.RegWrite "HKLM\SOFTWARE\Microsoft\Jet\4.0\Engines\excel\typeguessrows", 0

End Sub


太好啦,真的就这样很方便的改了注册表,让typeguessrows = 0了。以后,遇到用sql来拆分总表为几个分表时,就先加你写的过程 sub fig(),然后再在连接字符中加:imex=1 对于这类问题,这是一种满意的解决办法。谢谢figfig老师提供的办法。

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-10-23 22:30 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
QUOTE:
以下是引用figfig在2008-10-21 21:14:00的发言:

Sub fig()
Set x = CreateObject("wscript.shell")
 
x.RegWrite "HKLM\SOFTWARE\Microsoft\Jet\4.0\Engines\excel\typeguessrows", 0

End Sub


进一步完善这个过程:

Sub fig()
Set x = CreateObject("wscript.shell")
 m = x.regread("HKLM\SOFTWARE\Microsoft\Jet\4.0\Engines\excel\typeguessrows")
 If m = "0" Then Exit Sub  '当typeguessrows为0时就退出,否则执行以下语句让typeguessrows为0
 x.RegWrite "HKLM\SOFTWARE\Microsoft\Jet\4.0\Engines\excel\typeguessrows", 0

End Sub

[此贴子已经被作者于2008-10-23 22:31:02编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-10-24 21:52 | 显示全部楼层

怪啦,我把刚才完善的过程,和加了连接字符imex=0的信息表拿到其它电脑上去试,结果又出问题啦:先运行sub fig()过程,再运行sheet1中的Private Sub CommandButton1_Click()拆分表宏,结果各独立的分表中只有数字能显示,文本则不能显示。请用附件帮忙测试一下,又是什么原因呢?原本以为对这一问题己经是解决了,可换了其它电脑又出问题啦。

  GlKhel2n.rar (18.14 KB, 下载次数: 14)


[此贴子已经被作者于2008-10-24 22:29:14编辑过]

ynfymbzN.rar

18.19 KB, 下载次数: 24

请教关于sql自动按条件总表拆分问题

TA的精华主题

TA的得分主题

发表于 2008-10-24 22:04 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

代码里有个STOP

[em05]

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-10-24 22:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
QUOTE:
以下是引用figfig在2008-10-24 22:04:00的发言:

代码里有个STOP

我删了stop 重发附件了,请测试,谢谢。

TA的精华主题

TA的得分主题

发表于 2010-4-8 21:54 | 显示全部楼层
绕了大半天,终于找到根源所在:
按照某楼高手的注册表代码(这里是excel2007):
Set x = CreateObject("wscript.shell")
x.RegWrite "HKLM\SOFTWARE\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Excel\TypeGuessRows", 0

结果是会出错的,因为按此代码会将此键值改为字符串样式,原本是DWORD值,从而导致excel不认,就相当于没改!
正确的注册表代码应该如下:
Set x = CreateObject("wscript.shell")
x.RegWrite "HKLM\SOFTWARE\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Excel\TypeGuessRows", 0, "REG_DWORD"

测试结果正确!

TA的精华主题

TA的得分主题

发表于 2016-7-6 20:05 | 显示全部楼层
本帖最后由 雪魄梅魂 于 2016-7-6 20:17 编辑

Excel 2016 .xlsx 文档 数据源一列混合数字和文本,用ExcelSQL 读取后丢失了文本的记录。
尝试:
Mode=Share Deny Write;Extended Properties="HDR=YES;IMEX=1;";Jet OLEDB:System
并更改HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel
和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Access Connectivity Engine\Engines\Excel
的 TypeGuessRows项值为0(也尝试过1048576)

结果均无效。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-12 10:00 , Processed in 0.025816 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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