日期:2014-05-16  浏览次数:20899 次

Access 中 如何实现如下功能
在一个Access数据库中,每个表的第一列作为主键,类型是6位数字,将每个表中第一列相同的选择出来,生成一个表,表里要有每个表中相同的第一列和来自哪个表的名称,如何做啊

------解决方案--------------------
表名可以从系统表中获取,但是字段名就需要用代码写了。

如:

--列出所有的用户表

SELECT *
FROM MSysObjects
WHERE Flags=0 AND Type=1


--下面代码列出指定表的所有字段名和文本类型字段的长度

'引用ADOX
'--> VBA窗口“工具”菜单
'--> 引用
'--> Microsoft ADO Ext. 2.X for DLL and Security

Public Sub list(strTblName As String)
Dim Cnn As New ADODB.Connection
Dim Fld As New ADOX.Column
Dim Cat As New ADOX.Catalog
Dim Tbl As New ADOX.Table

Set Cnn = CurrentProject.Connection

Set Cat.ActiveConnection = Cnn
Set Tbl.ParentCatalog = Cat
Set Tbl = Cat.Tables(strTblName)

Debug.Print "字段个数: " & Tbl.Columns.Count

For Each Fld In Tbl.Columns
Debug.Print "字段名: " & Fld.Name & ",宽度: " & Fld.DefinedSize
Next

End Sub