列出文本文件或Excel中的所有访问表

时间:2013-07-22 17:33:23

标签: ms-access

我有代码列出表名,如何将其导出到文本文件?

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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

答案 2 :(得分:0)

这将作为直接复制/粘贴。只需将输出文件名更改为您想要的任何名称。它将您要求的元数据逐行输出到.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