Ms access vbscript将access查询导出到以制表符分隔的文件不起作用
我有以下代码:Ms access vbscript将access查询导出到以制表符分隔的文件不起作用,ms-access,vbscript,Ms Access,Vbscript,我有以下代码: db = "C:\Dokumente und Einstellungen\hom\Anwendungsdaten\BayWotch4\Neuer Ordner\baywotch.db5" TextExportFile = "C:\Dokumente und Einstellungen\hom\Anwendungsdaten\BayWotch4\Neuer Ordner\Exp.txt" Set cn = CreateObject("ADODB.Connection") Set
db = "C:\Dokumente und Einstellungen\hom\Anwendungsdaten\BayWotch4\Neuer Ordner\baywotch.db5"
TextExportFile = "C:\Dokumente und Einstellungen\hom\Anwendungsdaten\BayWotch4\Neuer Ordner\Exp.txt"
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cn.Open _
"Provider = Microsoft.Jet.OLEDB.4.0; " & _
"Data Source =" & db
strSQL = "SELECT * FROM tblAuction1"
rs.Open strSQL, cn, 3, 3
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.CreateTextFile(TextExportFile, True)
a = rs.GetString
f.WriteLine a
f.Close
这意味着要连接到access数据库并生成以制表符分隔的文本文件。tblAuction1是数据库中的一个查询,它确实存在,并且没有以任何方式出现错误,但我得到一个错误,即它找不到或不存在。当我将其更改为tblAuction(表的名称)时,会出现一个错误,表明f.WriteLine a被错误调用
编辑:我现在只发现f.writeline a有问题,说提供了不正确的参数。我不再有TBLAUCTION 1的问题
编辑:用于我的查询的sql代码:
SELECT tblAuction.article_no, tblAuction.article_name, tblAuction.subtitle, tblAuction.current_bid, tblAuction.start_price, tblAuction.bid_count, tblAuction.quant_total, tblAuction.quant_sold, tblAuction.start, tblAuction.ends, tblAuction.origin_end, tblUser.user_name, tblAuction.best_bidder_id, tblAuction.finished, tblAuction.watch, tblAuction.buyitnow_price, tblAuction.pic_url, tblAuction.private_auction, tblAuction.auction_type, tblAuction.insert_date, tblAuction.update_date, tblAuction.cat_1_id, tblAuction.cat_2_id, tblAuction.article_desc, tblAuction.countrycode, tblAuction.location, tblAuction.condition, tblAuction.revised, tblAuction.paypal_accept, tblAuction.pre_terminated, tblAuction.shipping_to, tblAuction.fee_insertion, tblAuction.fee_final, tblAuction.fee_listing, tblAuction.pic_xxl, tblAuction.pic_diashow, tblAuction.pic_count, tblAuction.item_site_id
FROM tblUser INNER JOIN tblAuction ON tblUser.id = tblAuction.seller_id;
我认为连接字符串中的空格有问题 试试这个:
cn.Provider = "Microsoft.Jet.OLEDB.4.0"
cn.ConnectionString = db
cn.Open
嗯
更新:
对数据库的访问权限可能有问题?
或者mdb已经被另一个用户独占打开(您可以在设计模式下访问)?试试这个
cn.Open _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Persist Security Info=False;" & _
"Data Source=" & db
我已经试着在几个数据库和机器上复制这个,我不能让你的代码失败 离开:
- 数据库已损坏,请运行修复并重试好吗
- 在数据库中抛出查询的字段中,我尝试了几种可能的方法,但找不到任何阻止代码的方法。若要排除其他内容,可以尝试创建一个新表,并查看代码是否在该表上工作
- 你的dll有问题,你能在另一台机器上试试吗
Set f = fs.CreateTextFile(TextExportFile, True, True)
附言
前面使用transfertext宏回答了这个问题
正如所指出的,这看起来像是一个更清洁的解决方案。让它与非默认分隔符一起工作有点麻烦。首先,右键单击并选择“导出”,开始导出要导出的查询。在以下对话框中,指定规范并保存这些规范。创建宏时,请选择刚保存的规范。您好,谢谢您的帮助,但这并不能解决问题。我得到错误80040e37,这没有帮助。应该是dbo.tblAuction1 nstead还是别的什么?access数据库对任何人都是开放的,如果access完全关闭,我就会收到错误。从我读到的内容来看,我需要给出完整的标识符,但我不确定这意味着什么。要尝试的两件事:向表中添加大括号:[tblAuction1]并向连接字符串中添加User Id=admin。这仍然没有什么区别。在access中运行宏时,我会遇到相同的错误:请在access中尝试“压缩/修复数据库”。损坏的access db通常是所有神秘错误的来源,它在我的机器上工作,windows XP上安装了visual studio 2005和MS access 2000,没有问题。你能详细介绍一下你的配置吗?您的查询在access self中工作吗?你能让它为你定义的新表工作吗?(有几个简单的列)这与此相关,正如该线程中提到的,如果无法从Access导出,则会出现一些主要问题。您使用的是纯MS Access还是其他后端?我使用的是纯Access 2003。在access中运行TransferText宏时出现的错误是错误3001,在尝试运行vbscript时出现错误80040e37。是否使用表名而不是查询来尝试此操作?如果这样做,我在f.writeline a上会出现错误,但我仍然需要此查询?能否向文件写入简单字符串?将行[f.WriteLine a]替换为[f.WriteLine“Testing”],然后查看是否可以向文件写入任何内容。它现在正在查找tblAuction1,但现在表示f.WriteLine a有问题,这是程序的错误参数。如果它现在正在查找表,请尝试正常的传输文本。当我提供上面的代码时,它是为了测试您的数据库,看看有什么可能是错误的。你用的是什么操作系统?你做了什么让它找到它?修理?它对tblAuction有效吗?您可以发布TBLAUCTION 1的sql查询吗?我还原了数据库的一个旧版本,这很有趣,因为查询根本没有更改,所以它一定有点损坏。我现在遇到的问题是宏找不到我指定要写入的文件名,而vbs的f.WriteLink有问题。能否将文件写入没有空格的路径?C:\temp\Exp.txt还是什么?