una tipos tabla que pasos para informe formulario datos crear consultas campo ms-access

ms-access - tipos - que es una tabla en access



¿Cómo puedo obtener nombres de tablas de una base de datos MS Access? (7)

Microsoft SQL Server y MySQL tienen una tabla INFORMATION_SCHEMA que puedo consultar. Sin embargo, no existe en una base de datos de MS Access.

¿Hay un equivalente que pueda usar?


Aquí hay una respuesta actualizada que funciona en Access 2010 VBA utilizando objetos de acceso a datos (DAO). El nombre de la tabla se guarda en TableDef.Name. La colección de todas las definiciones de tablas se guarda en TableDefs. Aquí hay un ejemplo rápido de bucle a través de los nombres de la tabla:

Dim db as Database Dim td as TableDef Set db = CurrentDb() For Each td In db.TableDefs YourSubTakingTableName(td.Name) Next td



Mejor no meterse con msysObjects (en mi humilde opinión).

CurrentDB.TableDefs CurrentDB.QueryDefs CurrentProject.AllForms CurrentProject.AllReports CurrentProject.AllMacros


Obteniendo una lista de tablas:

SELECT Table_Name = Name, FROM MSysObjects WHERE (Left([Name],1)<>"~") AND (Left([Name],4) <> "MSys") AND ([Type] In (1, 4, 6)) ORDER BY Name


Para construir sobre la respuesta de Ilya, intente con la siguiente consulta:

SELECT MSysObjects.Name AS table_name FROM MSysObjects WHERE (((Left([Name],1))<>"~") AND ((Left([Name],4))<>"MSys") AND ((MSysObjects.Type) In (1,4,6))) order by MSysObjects.Name

(este funciona sin modificación con un MDB)

Los usuarios de ACCDB pueden necesitar hacer algo como esto

SELECT MSysObjects.Name AS table_name FROM MSysObjects WHERE (((Left([Name],1))<>"~") AND ((Left([Name],4))<>"MSys") AND ((MSysObjects.Type) In (1,4,6)) AND ((MSysObjects.Flags)=0)) order by MSysObjects.Name

Como hay una tabla adicional incluida que parece ser una tabla del sistema de algún tipo.


Puede usar esquemas en Access.

Sub ListAccessTables2(strDBPath) Dim cnnDB As ADODB.Connection Dim rstList As ADODB.Recordset Set cnnDB = New ADODB.Connection '' Open the connection. With cnnDB .Provider = "Microsoft.Jet.OLEDB.4.0" .Open strDBPath End With '' Open the tables schema rowset. Set rstList = cnnDB.OpenSchema(adSchemaTables) '' Loop through the results and print the '' names and types in the Immediate pane. With rstList Do While Not .EOF If .Fields("TABLE_TYPE") <> "VIEW" Then Debug.Print .Fields("TABLE_NAME") & vbTab & _ .Fields("TABLE_TYPE") End If .MoveNext Loop End With cnnDB.Close Set cnnDB = Nothing End Sub

De: http://msdn.microsoft.com/en-us/library/aa165325(office.10).aspx


SELECT Name FROM MSysObjects WHERE (Left([Name],1)<>"~") AND (Left([Name],4) <> "MSys") AND ([Type] In (1, 4, 6)) ORDER BY Name