我有这段代码:
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
这意味着连接到访问数据库并生成制表符分隔的文本文件。 tblAuction1是数据库中的一个查询,并且确定存在并且不会以任何方式拼写错误,但是我收到一个无法找到或不存在的错误。当我将它更改为tblAuction(表的名称)时,我收到一个错误,指出f.WriteLine a被错误地调用。
编辑:我现在只遇到f.writeline a的问题,说已经提供了错误的参数。我不再遇到tblAuction1
的问题编辑:用于查询的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;
答案 0 :(得分:2)
我曾尝试在多个数据库和计算机上重现这一点,但我无法让您的代码失败。
离开:
回答(看看我们如何得到答案看评论)
你的数据库中有unicode字符,其中writeline不接受,因为你创建了文本文件作为ASCI。在这种情况下的字符特别是♥♥♥
使其有效:
Set f = fs.CreateTextFile(TextExportFile, True, True)
P.S。
之前使用transfertext宏here回答了这个问题 正如Remou指出这看起来更清晰。使其适用于非默认分隔符有点痛苦。首先通过右键单击导出要导出的查询,然后选择导出。在以下对话框中,指定规范并保存这些规范。创建宏时,请选择刚保存的规格。
答案 1 :(得分:0)
我认为连接字符串中的空格有问题
试试这个:
cn.Provider = "Microsoft.Jet.OLEDB.4.0"
cn.ConnectionString = db
cn.Open
HTH
更新: 也许数据库的访问权限存在问题? 或者mdb已经由另一个用户独占打开(您可以在设计模式下访问)?
答案 2 :(得分:0)
试试这个
cn.Open _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Persist Security Info=False;" & _
"Data Source=" & db