擷取ACCESS表結構

來源:互聯網
上載者:User
經常有朋友問怎麼得到ACCESS的表結構。
  1. Public Sub getTables()
  2.     Dim rs As New ADODB.Recordset
  3.     Dim conn As ADODB.Connection
  4.     Dim sSql As String
  5.     
  6.     
  7.     Set conn = CurrentProject.Connection
  8.     sSql = "select id,Name from MSysObjects where Type=1 and flags=0"
  9.     rs.Open sSql, conn
  10.     Do While Not rs.EOF
  11.         Debug.Print "****"; rs.Fields("Name").Value; "****************"
  12.         getTableColumns rs.Fields("Name").Value
  13.         rs.MoveNext
  14.     Loop
  15.     rs.Close
  16.     Set rs = Nothing
  17.     Set conn = Nothing
  18.     
  19. End Sub
  20. Public Sub getTableColumns(sTableName As String)
  21.     Dim rs As New ADODB.Recordset
  22.     Dim conn As ADODB.Connection
  23.     Dim fld As ADODB.Field
  24.     Set conn = CurrentProject.Connection
  25.     rs.Open sTableName, conn, , , adCmdTable
  26.     
  27.     For Each fld In rs.Fields
  28.         Debug.Print fld.Name, sFldType(fld.Type), fld.NumericScale, fld.Precision
  29.         
  30.     Next
  31.     
  32.     rs.Close
  33.     Set rs = Nothing
  34.     Set conn = Nothing
  35. End Sub
  36. Public Function sFldType(iType As Integer)
  37.     Select Case iType
  38.         Case 20
  39.             sFldType = "BigInt"
  40.         Case 128
  41.             sFldType = "Binary"
  42.         Case 11
  43.             sFldType = "Boolean"
  44.         Case 8
  45.             sFldType = "BSTR"
  46.         Case 136
  47.             sFldType = "Chapter"
  48.         Case 129
  49.             sFldType = "Char"
  50.         Case 6
  51.             sFldType = "Currency"
  52.         Case 7
  53.             sFldType = "Date"
  54.         Case 133
  55.             sFldType = "DBDate"
  56.         Case 134
  57.             sFldType = "DBTime"
  58.         Case 135
  59.             sFldType = "DBTimeStamp"
  60.         Case 14
  61.             sFldType = "Decimal"
  62.         Case 5
  63.             sFldType = "Double"
  64.         Case 0
  65.             sFldType = "Empty"
  66.         Case 10
  67.             sFldType = "Error"
  68.         Case 64
  69.             sFldType = "FileTime"
  70.         Case 72
  71.             sFldType = "GUID"
  72.         Case 9
  73.             sFldType = "IDispatch"
  74.         Case 3
  75.             sFldType = "Integer"
  76.         Case 13
  77.             sFldType = "IUnknown"
  78.         Case 205
  79.             sFldType = "LongVarBinary"
  80.         Case 201
  81.             sFldType = "LongVarChar"
  82.         Case 203
  83.             sFldType = "LongVarWChar"
  84.         Case 131
  85.             sFldType = "Numeric"
  86.         Case 138
  87.             sFldType = "PropVariant"
  88.         Case 4
  89.             sFldType = "Single"
  90.         Case 2
  91.             sFldType = "SmallInt"
  92.         Case 16
  93.             sFldType = "TinyInt"
  94.         Case 21
  95.             sFldType = "UnsignedBigInt"
  96.         Case 19
  97.             sFldType = "UnsignedInt"
  98.         Case 18
  99.             sFldType = "UnsignedSmallInt"
  100.         Case 17
  101.             sFldType = "UnsignedTinyInt"
  102.         Case 132
  103.             sFldType = "UserDefined"
  104.         Case 204
  105.             sFldType = "VarBinary"
  106.         Case 200
  107.             sFldType = "VarChar"
  108.         Case 12
  109.             sFldType = "Variant"
  110.         Case 139
  111.             sFldType = "VarNumeric"
  112.         Case 202
  113.             sFldType = "VarWChar"
  114.         Case 130
  115.             sFldType = "WChar"
  116.         Case Else
  117.             sFldType = "unKnown"
  118.     End Select
  119. End Function

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.