1

VBAを使用してテキストファイルに書き込もうとしています。これが私のコードです:

DoCmd.SetWarnings False

'Delete all data from the source table
DoCmd.RunSQL "DELETE * FROM tblSource;"

'Run query to fill it
DoCmd.OpenQuery "qryFilltblSource"

' Declare a FileSystemObject.
Dim fso As FileSystemObject

' Create a FileSystemObject.
Set fso = New FileSystemObject

' Declare a TextStream.
Dim stream As TextStream

' Create a TextStream. The true part overwrites a text file it it already exists
Set stream = fso.CreateTextFile("C:\Target Folder", True)

Set rst = CurrentDb.OpenRecordset("tblSource")

Dim i As Integer
i = 1

Do Until rst.EOF = True
    stream.WriteLine (rst!i)
    i = i + 1
    rst.MoveNext
Loop

stream.Close

DoCmd.SetWarnings True

最初のエラーは、おそらく別のエラーが発生すると思いますが、「許可が拒否されました」です。私はこのマシンの管理者であるため、これを理解できません。ターゲット フォルダを確認したところ、目的の操作を行うためのアクセス許可がありましたが、そのプロパティを表示すると、[読み取り専用] のボックスが強調表示されていました。これはなぜですか?

ありがとう

4

1 に答える 1

1

Cルートへの書き込みは許可されませんので、C:\Target Folder\Atextfile.txt

TransferTextの使用を検討してください:

 DoCmd.TransferText acExportDelim, , tblSource, "c:\docs\output.txt", True

次のことは言えないことに注意してください。

Dim i As Integer
i = 1

Do Until rst.EOF = True
    stream.WriteLine (rst!i) <-- i is a record, not a field
    i = i + 1
    rst.MoveNext
Loop

あなたが必要

Do Until rst.EOF 
    For i=0 to rst.Fields.Count-1
       stream.WriteLine rst(i) ''or rst(i) & "" to avoid problems with Null
    Next
    rst.MoveNext
Loop
于 2013-03-12T13:25:09.927 に答える