2013-07-22 24 views
0

我有列出表名稱的代碼,如何將其導出到文本文件?列出文本文件或Excel中的所有訪問表

For Each tbl In db.TableDefs 
If Left$(tbl.Name, 4) <> "MSys" Then 
    Debug.Print tbl.Name & "  " & tbl.DateCreated & "  " & _ 
    tbl.LastUpdated & "  " & tbl.RecordCount 
+0

可能重複[如何創建並寫入使用VBA一個txt文件(http://stackoverflow.com/questions/11503174/how-to -create和寫入到一個-TXT文件-使用-VBA) –

回答

0

您可以使用簡單的文件I/O寫入文本文件。 MSDN:Write# Statement

下面是從頁的例子:

Open "TESTFILE" For Output As #1 ' Open file for output. 
Write #1, "Hello World", 234 ' Write comma-delimited data. 
Write #1, ' Write blank line. 

Dim MyBool, MyDate, MyNull, MyError 
' Assign Boolean, Date, Null, and Error values. 
MyBool = False: MyDate = #2/12/1969#: MyNull = Null 
MyError = CVErr(32767) 
' Boolean data is written as #TRUE# or #FALSE#. Date literals are 
' written in universal date format, for example, #1994-07-13# 
'represents July 13, 1994. Null data is written as #NULL#. 
' Error data is written as #ERROR errorcode#. 
Write #1, MyBool; " is a Boolean value" 
Write #1, MyDate; " is a date" 
Write #1, MyNull; " is a null value" 
Write #1, MyError; " is an error value" 
Close #1 ' Close file. 

更改文件名和擴展,以,例如, 「C:\ SomeFolder \ myfile.txt的」。

還有其他更復雜的方法可以做到這一點,包括使用如David提供的鏈接中所示的FileSystemObject

0

參見如何創建一個文本文件MSDN文章:

http://msdn.microsoft.com/en-us/library/aa265018(v=vs.60).aspx

爲您的需要稍加修改,你將不得不調整它定義dbTableDefs等:

Sub CreateAfile 
    Dim fs as Object, a as Object 
    Dim lineText as String 
    #Create and open text file for writing: 
    Set fs = CreateObject("Scripting.FileSystemObject") 
    Set a = fs.CreateTextFile("c:\testfile.txt", True) 
    '#Iterate over your TableDefs 
    For Each tbl In db.TableDefs 
     If Left$(tbl.Name, 4) <> "MSys" Then 
       lineText = tbl.Name & "  " & tbl.DateCreated & "  " & _ 
       tbl.LastUpdated & "  " & tbl.RecordCount 

       '# Adds a line to the text file 
       a.WriteLine(lineText) 
     End If 
    Next 
    '#Close the textfile 
    a.Close 
End Sub 
0

這將作爲一個直接複製/粘貼。只需將輸出文件名稱更改爲任何你想要的。它輸出的元數據,你要求的逐行TOA .TXT

Dim db As DAO.Database 
    Set db = CurrentDb 


    Dim filename As String 
    filename = "C:\Users\Scotch\Desktop\now\t.txt"  'add your file name here 
    Const ForReading = 1, ForWriting = 2, ForAppending = 3 
    Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0 
    Dim fs, f, ts, s 
    Set fs = CreateObject("Scripting.FileSystemObject") 
    fs.CreateTextFile filename 'Create a file 
    Set f = fs.GetFile(filename) 
    Set ts = f.OpenAsTextStream(ForWriting, TristateUseDefault) 



    For Each tbl In db.TableDefs 
     If Left$(tbl.name, 4) <> "MSys" Then 
      ts.Write tbl.name & "  " & tbl.DateCreated & "  " & _ 
      tbl.LastUpdated & "  " & tbl.RecordCount & vbNewLine 
     End If 

    Next 
    ts.Close 
相關問題