如果一个表是由另一个表的某列文本为行坐标,能否对这两个表进行关联?
例如某表某列为日期,另一表“行”为日期……这样的情况
追加,如果不可以的话,有没有办法将某个表行列互换生成一个新表?
关于access数据库表格关联
答案:2 悬赏:30 手机版
解决时间 2021-04-04 13:22
- 提问者网友:相思似海深
- 2021-04-04 01:25
最佳答案
- 五星知识达人网友:归鹤鸣
- 2021-04-04 01:52
在ACCESS中有一种查询叫交叉表查询,就是专门解决你的问题的,它可以将某个字段的值当成列标题来生成一个查询。
查询向导里面就有交叉表查询!
查询向导里面就有交叉表查询!
全部回答
- 1楼网友:怀裏藏嬌
- 2021-04-04 03:02
是,用链接表可以实现。
下面是代码的动态实现表链接。
'首先 , 作如下测试工作:
'新建空白 access 数据库 (.mdb) 文件,
'并添加若干类型链接表:
'dbase 5 (*.dbf)、
'microsoft excel (*.xls)、
'microsoft access (*.mdb;*.mda;*.mde) 等,
'然后再编写如下 vb6 程序:
'delphi、vc 等程序同理也可引用 adox
'引用 microsoft activex data objects 2.x library
'引用 microsoft ado ext. 2.x for ddl and security
'控件: form1、command1、command2、command3
private sub command1_click() '测试链接表信息
dim adoconnection as new adodb.connection
adoconnection.open "provider=microsoft.jet.oledb.4.0;data source=e:\lnktbls.mdb;persist security info=false;jet oledb:database password=123"
dim adocatalog as new adox.catalog
set adocatalog.activeconnection = adoconnection
dim adotable as new adox.table
set adotable.parentcatalog = adocatalog
dim i as integer
for each adotable in adocatalog.tables
if adotable.type = "link" then
debug.print adotable.name
for i = 0 to adotable.properties.count - 1
debug.print " " & adotable.properties.item(i).name & ": " & adotable.properties.item(i).value
next i
debug.print vba.vbcrlf
end if
next adotable
end sub
'编程添加链接表
private sub command2_click()
dim adoconnection as new adodb.connection
adoconnection.open "provider=microsoft.jet.oledb.4.0;data source=e:\lnktbls.mdb;persist security info=false;jet oledb:database password=123"
dim adocatalog as new adox.catalog
dim adotable as new adox.table
'access
set adocatalog.activeconnection = adoconnection
set adotable.parentcatalog = adocatalog
adotable.properties.item("jet oledb:link datasource").value = "e:\nwind2kpwd.mdb"
adotable.properties.item("jet oledb:remote table name").value = "产品"
adotable.properties.item("jet oledb:create link").value = true
adotable.properties.item("jet oledb:link provider string").value = "ms access;pwd=456"
adotable.name = "access"
adocatalog.tables.append adotable
adoconnection.close
'dbase
adoconnection.open
set adocatalog.activeconnection = adoconnection
set adotable.parentcatalog = adocatalog
adotable.properties.item("jet oledb:link datasource").value = "e:\borland\shared\data"
adotable.properties.item("jet oledb:remote table name").value = "animals#dbf"
adotable.properties.item("jet oledb:create link").value = true
adotable.properties.item("jet oledb:link provider string").value = "dbase 5.0"
adotable.name = "dbase5"
adocatalog.tables.append adotable
adoconnection.close
'excel
adoconnection.open
set adocatalog.activeconnection = adoconnection
set adotable.parentcatalog = adocatalog
adotable.properties.item("jet oledb:link datasource").value = "e:\book97.xls"
adotable.properties.item("jet oledb:remote table name").value = "sheet1$"
adotable.properties.item("jet oledb:create link").value = true
adotable.properties.item("jet oledb:link provider string").value = "excel 5.0;hdr=no;imex=2"
adotable.name = "excel"
adocatalog.tables.append adotable
adoconnection.close
'...
end sub
'编程删除链接表
private sub command3_click()
dim adoconnection as new adodb.connection
adoconnection.open "provider=microsoft.jet.oledb.4.0;data source=e:\lnktbls.mdb;persist security info=false;jet oledb:database password=123"
dim adocatalog as new adox.catalog
set adocatalog.activeconnection = adoconnection
dim j as integer
dim i as integer
for i = adocatalog.tables.count to 1 step -1
if adocatalog.tables.item(i - 1).type = "link" then
debug.print adocatalog.tables.item(i - 1).name
for j = 0 to adocatalog.tables.item(i - 1).properties.count - 1
debug.print " " & adocatalog.tables.item(i - 1).properties.item(j).name & ": " & adocatalog.tables.item(i - 1).properties.item(j).value
next j
debug.print vba.vbcrlf
if vba.msgbox("delete link table [" & adocatalog.tables.item(i - 1).name & "]?", vbyesno) then
adocatalog.tables.delete adocatalog.tables.item(i - 1).name
end if
end if
next i
end sub
private sub command4_click()
dim adoconnection as new adodb.connection
adoconnection.open "provider=microsoft.jet.oledb.4.0;data source=e:\lnktbls.mdb;persist security info=false;jet oledb:database password=123"
dim adocatalog as new adox.catalog
set adocatalog.activeconnection = adoconnection
adocatalog.tables.item("excel").properties.item("jet oledb:link provider string").value = "excel 5.0;hdr=yes;imex=2"
end sub
private sub form_load()
command1.caption = "链接表信息"
command2.caption = "添加链接表"
command3.caption = "删除链接表"
command4.caption = "刷新链接表"
end sub
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯