ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 斑竹帮帮忙哦 谢谢 运行时错误'52' 文件名或者文件号错误

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-2-8 11:00 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 jasonxyk 于 2012-2-10 11:29 编辑

补充:已上传了一个附件,这个附件是可以全部导出的。按照楼下的朋友所言,是否有更加简单的办法呢?目前使用的办法,很多数据的时候会提示错误,不知道是文件名重复 还是 文件名超长 或者是文件名非法,如果只是现有的方法上来修正的话,遇到我刚才所说的情况能否自动跳过,向下执行?

SpiderResult.rar (79.17 KB, 下载次数: 15)

错误提示:运行时错误'52'  文件名或者文件号错误

小弟用下面的代码将access中的数据每一行导出为一个txt文档,txt文档的名字为access的“标题”字段,内容为标题+作者+内容

access中有一千多天数据,导出的时候有错误提示,查看了一下总共只导出了66条数据,不知道是和原因。

求助内容:如果access中的数据有不符合的数据,能否自动跳过,继续往下执行。哪位朋友帮一下忙,我不懂这下面的代码。我都是网上找来用的。

应该就是这句出问题哦,有没有办法修改一下这个语句:    Open strFileName For Output As lngHandle


Option Compare Database
Private Sub Command0_Click()
Dim rs As Object
Dim rst As Object
Dim strT As String
Dim strFileName As String
Dim lngHandle As Long
Set rs = CreateObject("adodb.recordset")
rs.ActiveConnection = CurrentProject.Connection
rs.Open ("select distinct 标题 from content")
Set rst = CreateObject("adodb.recordset")
rst.ActiveConnection = CurrentProject.Connection
Do Until rs.EOF
    rst.Open ("select [标题],[作者],[内容] from content where 标题='" & rs(0) & "'")
    strT = rst.GetString(, , "    ", Chr(13) & Chr(10))
    rst.Close
    strFileName = CurrentProject.Path & "\" & rs(0) & ".txt"
    lngHandle = FreeFile()
    Open strFileName For Output As lngHandle
    Print #lngHandle, strT
    Close lngHandle
    rs.MoveNext
Loop
rs.Close
Set rs = Nothing
Set rst = Nothing
End Sub
Private Sub Form_Close()
    DoCmd.Quit
End Sub





TA的精华主题

TA的得分主题

发表于 2012-2-8 11:21 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-2-8 12:17 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
自己顶一下 哪位朋友帮我一下忙。
我就是想用窗体导出数据,谢谢

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-2-8 20:29 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
哪位朋友来帮帮忙哦

TA的精华主题

TA的得分主题

发表于 2012-2-9 18:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
搞不懂干吗这样写,其实可以更简单些的,直接把表导出到文本就可以了(TransferText)。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-2-9 19:39 | 显示全部楼层
roych 发表于 2012-2-9 18:07
搞不懂干吗这样写,其实可以更简单些的,直接把表导出到文本就可以了(TransferText)。

是每一行导出为一个txt文本,不是全部导出为一个文本

TA的精华主题

TA的得分主题

发表于 2012-2-9 22:12 | 显示全部楼层
jasonxyk 发表于 2012-2-9 19:39
是每一行导出为一个txt文本,不是全部导出为一个文本

能不能发个示例的库(里面放几条示例用的数据),然后再给个导出结果的txt文件

从理论上来说,roych方法是可行的,包括每行导出一个txt

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-2-10 11:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Renco 发表于 2012-2-9 22:12
能不能发个示例的库(里面放几条示例用的数据),然后再给个导出结果的txt文件

从理论上来说,roych方 ...

已上传附件,请帮忙看看,谢谢

TA的精华主题

TA的得分主题

发表于 2012-2-11 01:04 | 显示全部楼层
Renco 发表于 2012-2-9 22:12
能不能发个示例的库(里面放几条示例用的数据),然后再给个导出结果的txt文件

从理论上来说,roych方 ...

给一段比较简单的代码,供参考(详见附件):
  1. Private Sub Command2_Click()
  2. '需引用库:Microsoft ActiveX Data Object Library 2.1、Microsoft Scripting Runntime
  3. Dim rst As New ADODB.Recordset
  4. Dim fso As New FileSystemObject
  5. Dim fl As TextStream
  6. Dim str()
  7. rst.Open "select [标题],[内容] from content", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
  8. str = rst.GetRows()
  9. For i = 0 To rst.RecordCount - 1
  10. Set fl = fso.OpenTextFile(CurrentProject.Path & "" & str(0, i) & ".txt", ForAppending, True)
  11. fl.WriteLine str(0, i) & Chr(13) & str(1, i)
  12. fl.Close
  13. Next i
  14. End Sub
复制代码
代码实在过于简单,不做注释。如有需要,请回复。

SpiderResult.rar

86.48 KB, 下载次数: 17

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-2-11 09:49 | 显示全部楼层
本帖最后由 jasonxyk 于 2012-2-11 10:07 编辑
roych 发表于 2012-2-11 01:04
给一段比较简单的代码,供参考(详见附件):
代码实在过于简单,不做注释。如有需要,请回复。


谢谢,不过依旧会出现”运行时错误'52'  文件名或者文件号错误 这样的提示

应该是access中“标题”字段的数据,有不符合做 txt文件的文件名的,遇到这种情况,能否自动跳过,继续往下执行。

比如txt文件重名 txt文件名不合法包括一些标点符号之类的,我想应该是这样的问题。

目前希望解决的问题是:只要遇到文件名非法的,就跳过,自动往下导出。


您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-25 12:43 , Processed in 0.037370 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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