Office中国论坛/Access中国论坛

标题: [已解决]如何在后台数据库中复制一个表,并建立链接表 [打印本页]

作者: jynj    时间: 2008-2-17 21:30
标题: [已解决]如何在后台数据库中复制一个表,并建立链接表
求助,请问如何在前台数据库中有一个按纽和一个文本框,点一下按纽,就在后台数据中复制一个新表,表名就是文本框中输入的文本,同时在前台数据库中自动生成一个同表名的链接表?

[ 本帖最后由 jynj 于 2008-2-18 20:07 编辑 ]
作者: t小宝    时间: 2008-2-17 22:22
先在后台复制,然后在前台新建链接表完整代码:

Dim dbs As DAO.Database
Set dbs = DBEngine.OpenDatabase("后台库名称")
dbs.Execute "SELECT * INTO 后台新表名称 FROM 后台表名称"
DoCmd.TransferDatabase acLink, "Microsoft Access", "后台库名称", acTable, "后台新表名称 ", "前台表名称 ", False
Set dbs = Nothing

[ 本帖最后由 t小宝 于 2008-2-17 22:37 编辑 ]
作者: 小林    时间: 2008-2-17 22:43
进来学习一下,高手提供的方法可以学习。
作者: jynj    时间: 2008-2-17 22:58
太感激了,我马上试一下
作者: jynj    时间: 2008-2-17 23:52
t小宝老大,试验不成功,由于后台数据库处于打开状态,因此无法复制成功,错误为:“成员已经存在于由本对象模块派生出的对象模块中”
作者: t小宝    时间: 2008-2-18 11:28
我试过,可以的。你是不是另外还加了什么代码,这个已经包含了复制后台表和在前台建立链接表?
作者: t小宝    时间: 2008-2-18 11:30
或者是名称搞错了?
你至少说明出错在哪一句,或者把库发上来让大伙看看。。。
作者: jynj    时间: 2008-2-18 16:42
今天在单位的机子上新建一个数据库试了一下,确实成功,回去我要好好再试一下,看一下错在哪里,谢谢t小宝大侠
作者: jynj    时间: 2008-2-18 16:47
再请教您一下可以吗?如果上述表复制并链接成功后,我想修改某个字段的"默认值"属性,可以办到吗?
如下面的的数据库中,如何将内容表2的"乡镇"字段的"默认值"修改为"第二乡镇"
作者: t小宝    时间: 2008-2-18 17:12
标题: 复制并更改字段默认值再导入
Private Sub 新建表_Click()
On Error GoTo Err_新建表_Click

Dim dbs As DAO.Database
Dim tdf As TableDef

Set dbs = DBEngine.OpenDatabase("ccc_be.mdb")
dbs.Execute "SELECT * INTO 内容表3 FROM 内容表"

Set tdf = dbs.TableDefs!内容表3
tdf.Fields("乡镇").DefaultValue = "第二乡镇"

DoCmd.TransferDatabase acLink, "Microsoft Access", "ccc_be.mdb", acTable, "内容表3", "内容表3", False

Set tdf = Nothing
Set dbs = Nothing

Exit_新建表_Click:
    Exit Sub
Err_新建表_Click:
    MsgBox Err.Description
    Resume Exit_新建表_Click
   
End Sub

顺便问一下,你是做什么工作的,用到乡镇?
作者: jynj    时间: 2008-2-18 17:18
我是为农民服务的,在县级农业部门工作,所以要用到乡镇,非常非常感激你。
还能向您请教吗?这些access命令函数是哪里有完整的书买?你怎么会知道这么多?
如果需要删除后台表同时删除前台链接,用什么代码呢?
作者: t小宝    时间: 2008-2-18 17:37
嘿嘿,我也是为农民服务的。
哪些方法、函数,在ACCESS的帮助文档里都有的。

下面的示例删除当前库指定的表:
DoCmd.DeleteObject acTable, "表名"
作者: t小宝    时间: 2008-2-18 17:42
标题: 还有一个用DAO方法:
删除外部库的表
Dim dbs As DAO.Database
Set dbs = DBEngine.OpenDatabase("指定库")
dbs.TableDefs.Delete "表名"

删除当前库的表
Dim dbs As DAO.Database
Set dbs = CurrentDb
dbs.TableDefs.Delete "表名"

当然还有其它方法如ADO
作者: fangkinght    时间: 2008-2-18 20:00
呵呵,不错,多多学习
作者: jynj    时间: 2008-2-18 20:09
t小宝是真大侠啊!!!
作者: jynj    时间: 2008-2-18 22:09
回到家里,发现继续错误,请小宝大侠帮助。
1、提示找不到后台数据库文件,如何指定为当前文件夹?
2、后台数据库有密码,如何指定?
作者: jynj    时间: 2008-2-18 22:24
第二个问题已解决
Dim dbs As DAO.Database
Set dbs = DBEngine.OpenDatabase("后台库名称",False, False, "MS AccessWD=密码")
dbs.Execute "SELECT * INTO 后台新表名称 FROM 后台表名称"
DoCmd.TransferDatabase acLink, "Microsoft Access", "后台库名称", acTable, "后台新表名称 ", "前台表名称 ", False
Set dbs = Nothing
作者: jynj    时间: 2008-2-18 22:32
第一个问题也解决了(当前路径下)
Dim dbs As DAO.Database
Set dbs = DBEngine.OpenDatabase( Application.CurrentProject.path & "\后台库名称",False, False, "MS Access;pwd=密码")
dbs.Execute "SELECT * INTO 后台新表名称 FROM 后台表名称"
DoCmd.TransferDatabase acLink, "Microsoft Access", Application.CurrentProject.path & "\后台库名称", acTable, "后台新表名称 ", "前台表名称 ", False
Set dbs = Nothing
作者: t小宝    时间: 2008-2-19 16:06
不错,学得真快!
本来我也在OpenDatabase方法中加了密码参数的,后来发现变成了这个笑脸 ,就取消了
作者: t小宝    时间: 2008-2-19 16:06
你签名上的网站好象有木马。。。
作者: jynj    时间: 2008-2-19 22:25
好象是,可能是服务器的问题,我没法管理服务器,解决不了
作者: jynj    时间: 2008-2-19 22:40
请问 t小宝大侠
Private Sub 新建表_Click()
Dim dbs As DAO.Database
Dim tdf As TableDef

Set dbs = DBEngine.OpenDatabase("ccc_be.mdb")
dbs.Execute "SELECT * INTO 内容表3 FROM 内容表"

Set tdf = dbs.TableDefs!内容表3
tdf.Fields("乡镇").DefaultValue = "第二乡镇"

DoCmd.TransferDatabase acLink, "Microsoft Access", "ccc_be.mdb", acTable, "内容表3", "内容表3", False

Set tdf = Nothing
Set dbs = Nothing

End Sub
--------------------------
如果更改如下
dim xjb as string
xjb=me.输入乡镇
'那么,下面这名如何将内容表3更改为xjb
Set tdf = dbs.TableDefs!内容表3
--------------------------------------------
作者: jynj    时间: 2008-2-19 22:48
试了一次又一次,最后发现原是来把“!”这个符号取消啊
Set tdf = dbs.TableDefs(xjb)
作者: t小宝    时间: 2008-2-19 22:57
~~~~~~~~~~~~~~~~~~~~~~~~~
作者: suve    时间: 2008-5-20 11:06
标题: 收藏
好讨论,收藏
作者: zhengyx    时间: 2009-1-10 16:40
受益匪浅,收藏学习!
作者: Henry D. Sy    时间: 2009-1-10 16:46
顺便问一下,你是做什么工作的,用到乡镇
县长




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3