Excel ons在Access 2003中可用。我喜欢这个答案,但我不确定它是否适用于我,有一些细节我没有给出足够的重要性,因此没有提及。我使用的数据库是Access 97格式,但我只能访问v。2007年和2010年(我想我可以挖到97个,但我正在寻找更少的工作)。
Excel ons在Access 2003中可用。我喜欢这个答案,但我不确定它是否适用于我,有一些细节我没有给出足够的重要性,因此没有提及。我使用的数据库是Access 97格式,但我只能访问v。2007年和2010年(我想我可以挖到97个,但我正在寻找更少的工作)。,excel,ms-access,Excel,Ms Access,ons在Access 2003中可用。我喜欢这个答案,但我不确定它是否适用于我,有一些细节我没有给出足够的重要性,因此没有提及。我使用的数据库是Access 97格式,但我只能访问v。2007年和2010年(我想我可以挖到97个,但我正在寻找更少的工作)。我曾考虑升级数据库,但遇到了问题,我无法在access 97 mdb中添加任何VBA。我喜欢这个答案的简单性,但我想我可能不得不接受@barrowc的答案,因为它是基于excel的。我想这个VBA会进入Access,对吗?这可能是显而易见的,但
ons在Access 2003中可用。我喜欢这个答案,但我不确定它是否适用于我,有一些细节我没有给出足够的重要性,因此没有提及。我使用的数据库是Access 97格式,但我只能访问v。2007年和2010年(我想我可以挖到97个,但我正在寻找更少的工作)。我曾考虑升级数据库,但遇到了问题,我无法在access 97 mdb中添加任何VBA。我喜欢这个答案的简单性,但我想我可能不得不接受@barrowc的答案,因为它是基于excel的。我想这个VBA会进入Access,对吗?这可能是显而易见的,但我只是想检查一下。它可以进入Access或Excel。如果将其放入Excel,而不是使用
CurrentDb
,您将有一个变量声明为Dim myDb as DAO.Database
,并使用例如set myDb=opendatabase(“c:\thisFolder\myDb.accdb”)
来分配其值。您需要添加对Microsoft Access数据库引擎的引用。让我知道,如果你仍然卡住,我可以张贴修改后的代码。我假设这个VBA将进入访问权?这可能是显而易见的,但我只是想检查一下。它可以进入Access或Excel。如果将其放入Excel,而不是使用CurrentDb
,您将有一个变量声明为Dim myDb as DAO.Database
,并使用例如set myDb=opendatabase(“c:\thisFolder\myDb.accdb”)
来分配其值。您需要添加对Microsoft Access数据库引擎的引用。让我知道,如果你仍然坚持,我可以张贴修改后的代码。
Table1 | Field1
Table1 | Field2
Table1 | Field3
Table2 | Field1
Table2 | Field2
Table3 | Field1
Table3 | Field2
Table3 | Field3
Table4 | Field1
Table4 | Field2
...
sub goThroughTables()
dim tdf as TableDef
dim rs as DAO.Recordset
dim fld as Field
dim index as long
index=1
for each tdf in currentdb.tabledefs
set rs=currentdb.openrecordset(tdf.name)
for each fld in rs.Fields
writeToExcelSheet(tdf.name,fld.name,index)
next
next
end sub
Sub GetTablesAndFields()
Dim db As DAO.Database
Dim td As DAO.TableDef
Dim fld As DAO.Field
Set db = CurrentDb
For Each td In db.TableDefs
If UCase(Left(td.Name, 4)) <> "MSYS" Then
'ignore system tables
'Press Ctrl-G to display the Debug (Immediate) Window
For Each fld In td.Fields
Debug.Print td.Name, fld.Name
Next fld
End If
Next td
Set db = Nothing
End Sub
Sub show_column_info()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim fld As ADODB.Field
Dim i As Integer
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source='C:\Temp\Example Database.mdb';"
.Open
Set rs = .OpenSchema(adSchemaColumns)
End With
i = 0
With Worksheets("Sheet1")
.Cells.ClearContents
For Each fld In rs.Fields
i = i + 1
.Cells(1, i).Value = fld.Name
Next fld
.Cells(2, 1).CopyFromRecordset rs
.Cells.Columns.Autofit
End With
rs.Close
cn.Close
End Sub