访问VBA无效的过程调用或参数
我想写一个查询输出到文本文件使用文件系统对象。访问VBA无效的过程调用或参数
这是到目前为止我的代码:
Sub CreateAfile()
Dim rs As Object
Set rs = CreateObject("ADODB.Recordset")
Dim objFile As Object, TextFile As Object
Set rs = CurrentDb.OpenRecordset("qryOutput")
Set objFile = CreateObject("Scripting.FileSystemObject")
Set TextFile = objFile.CreateTextFile("C:\Users\Documents\Test.txt", True)
rs.MoveFirst
Do Until rs.EOF
TextFile.WriteLine rs.Fields("field1").Value
rs.MoveNext
Loop
rs.Close
TextFile.Close
End Sub
我得到一个错误: “无效的过程调用或参数” 在行:TextFile.WriteLine rs.Fields( “字段1”)值
我在这里错过了什么?
我没有该文件夹,C:\ Users \ Documents,在我的系统上。所以你的代码在CreateTextFile
行上给我错误#76,“找不到路径”。将文件夹更改为存在的文件夹以及我拥有完全权限的位置,可以让代码无误地运行。我不明白你为什么会在TextFile.WriteLine
得到一个错误。
这两条线似乎是矛盾的。
Set rs = CreateObject("ADODB.Recordset")
Set rs = CurrentDb.OpenRecordset("qryOutput")
CurrentDb.OpenRecordset
返回DAO记录集而不是ADO记录集。但是,由于rs被声明为对象,因此VBA不关心在将DAO记录集重新分配给它之前,您是否首先为其分配了ADO记录集。我不明白这是如何造成你的错误,但我会放弃CreateObject("ADODB.Recordset")
线。此外,改变声明RS到:
Dim rs As DAO.Recordset
(您将需要如果编译器抱怨该宣言设定参考)
除此之外,我还是不明白你为什么”重新获得“无效的过程调用或参数”错误。
Filesystemobject和user793468:http://stackoverflow.com/questions/9468488/写一个查询输出到文本文件使用文件系统对象 http://stackoverflow.com/questions/9470232/invalid-procedure-call-or-agrument http://stackoverflow.com/questions/ 9442215/reading-and-writing-a-csv-file-using-filesystemobject/9442846#9442846 – Fionnuala 2012-02-28 14:35:01
其他两个问题每个都由一个句子组成。在这一个中,OP向我们展示了代码,描述了一个错误,并确定了触发它的那一行。我想鼓励这类问题。所以我尝试了一个答案。 – HansUp 2012-02-28 16:25:05
请参阅http://stackoverflow.com/questions/9468488/writing-a-query-output-to-text-file-using-filesystemobject – Fionnuala 2012-02-27 21:20:30