0

特定のデータベースのすべてのテーブルには正確な列があるため、すべてのテーブルにあることがわかっている特定のいくつかの列について、それらすべてを一度にクエリできる方法があるかどうか疑問に思っています。これを行う理由は、データベース内のテーブルの数が常に増加し、新しいテーブルの名前に対応するためにクエリを毎日変更する必要がないためです。

いつものように助けていただければ幸いです

4

1 に答える 1

2

その場合は、ADO を試してください。

Function ListTablesContainingField(SelectFieldName) As String
   'Tables returned will include linked tables
   'I have added a little error coding. I don't normally do that
   'for examples, so don't read anything into it :) 
   Dim cn As New ADODB.Connection
   Dim rs As ADODB.Recordset
   Dim strTempList As String

       On Error GoTo Error_Trap

       Set cn = CurrentProject.Connection

       'Get names of all tables that have a column called <SelectFieldName>
       Set rs = cn.OpenSchema(adSchemaColumns, _
       Array(Empty, Empty, Empty, SelectFieldName))

       'List the tables that have been selected
       While Not rs.EOF
           'Exclude MS system tables
           If Left(rs!Table_Name, 4) <> "MSys" Then
               strTempList = strTempList & "," & rs!Table_Name
           End If
           rs.MoveNext
       Wend

       ListTablesContainingField = Mid(strTempList, 2)

   Exit_Here:

       rs.Close
       Set cn = Nothing
       Exit Function

   Error_Trap:

       MsgBox Err.Description
       Resume Exit_Here
   End Function

から: http://wiki.lessthandot.com/index.php/ADO_Schemas

テーブルのテーブルをまだ取得していない場合は、リンクされた Excel テーブルをリストし、アーカイブの日付などの詳細を保持するテーブルを検討することをお勧めします。これは、ある段階で制限に遭遇するためです。

于 2013-01-14T15:14:42.873 に答える