2016-07-07 7 views
1

Gestern musste ich eine Abfrage in MS Access 2010 ausführen. Ein Feld, das ich brauchte, war nicht in den Tabellen, die ich normalerweise verwende (bereits durch die ODBC-Datenbank verknüpft) und ich didn ' Ich weiß, in welcher Tabelle es sich um ein Teil handelt (in den Maschinendatenquellen gibt es mehrere hundert Tabellen). Abgesehen von dem manuellen Import aller Tabellen und der Suche in jedem für dieses Feld gibt es eine Möglichkeit, nach einem Feld zu suchen, ohne die Tabelle zu kennen, entweder 1. ohne irgendwelche Tabellen aus den ODBC-Datenbanken zu importieren, oder wenn nicht 2. eine Handvoll importieren mögliche Tabellen und Suche, sobald diese Tabellen in meine aktive MS Access 2010-Sitzung verknüpft wurden?Suche nach Feld in ODBC-Maschinendatenquellen - MS Access

Antwort

0

Sie können tun dies in einer Funktion unter Verwendung von ADO Schemas für Spaltennamen (in verknüpften Tabellen aktivieren Checkbox für die Suche) suchen.

diese Funktion in einem Standardmodul Versuchen:

Function ListTablesContainingField(SelectFieldName) As String 

     Dim cn As New ADODB.Connection 
     Dim rs As ADODB.Recordset 
     Dim strTempList As String   

     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) 


     rs.Close 
     Set cn = Nothing 

    End Function 
+0

Ist der Pre-Link, wenn die Tabellen nur in der ODBC-Datenbank oder senden Sie wohnen, wenn sie in die Access-Sitzung verknüpft sind? – Bradford

+0

Sollte für verknüpfte oder lokale Tabellen funktionieren –