请问如何浏览ACCESS库内的所有表??

zyddamon 2005-06-28 02:05:35
如题,可以只要表名!
现在需要为用户做一个数据批量导入,说白了也就是把一个数据库里边的一个表的内容拷贝到另外一个具有相同字段的表中!目标数据库和源数据库都是用户自己指定,所以需要把数据库内的表显示出来,希望各位大虾帮帮忙!
...全文
106 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
白夜花寒 2005-06-28
  • 打赏
  • 举报
回复
class cls_adox
dim the_adox
Private Sub Class_Initialize
set the_adox=createobject("ADOX.Catalog")
end sub

public sub sqlserver_getactiveconnection(dsource,dbasename,uid,pwd)
the_adox.ActiveConnection="Provider=sqloledb;Data Source=" & dsource & ";Initial Catalog=" & dbasename & ";User ID=" & uid & ";PWD=" & pwd & ";"

end sub

public sub access_getactiveconnection(theaccessfile)
the_adox.ActiveConnection="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & theaccessfile
end sub

public sub create_mdb(DBPath)
the_adox.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBPath
end sub

public sub create_table(tablename,fieldnames,types)
Set tbl = createobject("ADOX.Table")
tbl.Name = tablename
for i=0 to ubound(fieldnames)-1
tbl.Columns.Append fieldnames(i), types(fieldnames(i))
next
the_adox.Tables.Append tbl
set tbl=nothing
end sub

public function tablename
dim a()
dim i : i=1
for each objtab in the_adox.tables
if objtab.type="TABLE" then
redim Preserve a(i)
a(i-1)=objtab.name
' alert(objtab.type)
i=i+1
end if
next

tablename=a
end function

public function getfieldinfo(thetabname)
dim a()
set thetableadox=the_adox.tables.item(thetabname)
for i=0 to thetableadox.columns.count-1
set ttt=createobject("scripting.dictionary")
redim preserve a(i+1)
' alert(thetableadox.columns.Item(i).type)
ttt.add "name",thetableadox.columns.Item(i).name
ttt.add "type",thetableadox.columns.Item(i).type
set a(i)=ttt
set ttt=nothing
next
' alert(isArray(a))
getfieldinfo=a
end function

Private Sub Class_Terminate
set the_adox=nothing
End Sub

end class


tablename返回的就是所有表,我这个类本来是hta中的,如果楼主希望在asp中用的话,要用server.createobject替换掉所有的createobject

用的是adox
patchclass 2005-06-28
  • 打赏
  • 举报
回复
访问系统表
patchclass 2005-06-28
  • 打赏
  • 举报
回复
可以访问系统数据库,不过需要在 access安全里面设置一下,允许访问
sutter 2005-06-28
  • 打赏
  • 举报
回复
http://dev.csdn.net/develop/article/51/51378.shtm
-----------------------------------------------------------------------
//schemaTable将取到所有用户表的信息,schemaTable取到指定表名的表的所有信息
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new Object[]{null, null, null, "table"});
DataTable schemaTable2 = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new Object[]{null, null, /*tablename*/, null});
conn.Close();

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧