设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2737|回复: 7
打印 上一主题 下一主题

[窗体] [求助]怎样在窗体中建立"自动创建或自动复制表"的按钮?

[复制链接]
跳转到指定楼层
1#
发表于 2004-2-6 02:24:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[求助]怎样在窗体中建立"自动创建或自动复制表"的按钮?
比如现有表1,窗体1,如何在窗体1中建立一个"创建表"或者"复制表"的命令来创建一个类似"表1 "的表?
期盼高手指点!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2004-2-6 03:19:00 | 只看该作者
利用生成表查询的结果新建表
创建查询,并选择包含要放到新表中的记录的表或查询。
操作方法?

在查询的“设计”视图中,单击工具栏上“查询类型”按钮  旁边的箭头,然后单击“生成表查询”选项显示“生成表”对话框。


在“表名称”框中输入所要创建或替换的表名称。


单击“当前数据库”,将新表放入当前打开的数据库;或单击“另一数据库”并键入要放入新表的数据库名,必要时键入路径。


请单击“确定”按钮。


从字段列表将要包含在新表中的字段拖动到查询设计网格。


对于拖动到网格的字段,请在“准则”单元格里,键入准则。
有关指定准则的详细内容,请单击 。

如果在新建表之前预览新表,请单击工具栏上的“视图”按钮 。如果要回到查询“设计”视图并做一些更改或者执行查询,请单击工具栏上的“视图”按钮 。


如果要新建表,请单击工具栏上的“运行”按钮 。
注意

如果要停止已开始的查询,请按 CTRL+BREAK 键。


新建的表中数据并不会继承原始表中字段的属性或主键的设置。
3#
 楼主| 发表于 2004-2-6 04:27:00 | 只看该作者
谢谢竹笛大侠!我试试!
4#
发表于 2004-2-6 05:15:00 | 只看该作者
直接用 docmd.copy 就可以新建一个和原来类似的表,包括格式、默认值、规则等绝大多数属性,这是 DDL 语句所办不到的。

全部显示

CopyObject 方法
请参阅 应用于 示例 特性
在 Visual Basic 中,CopyObject 方法执行 CopyObject 操作。

expression.CopyObject(DestinationDatabase, NewName, SourceObjectType, SourceObjectName)

expression   必需。返回“Applies To”列表中的一个对象的表达式。

DestinationDatabase  可选 Variant 型。字符串表达式,代表对象复制到的目标数据库的有效路径和文件名。若要选择当前数据库,请将该参数留空。注意:在 Microsoft Access 项目 (.adp) 中,必须将 destinationdatabase 参数留空。如果在类库数据库中执行包含 CopyObject 方法的 Visual Basic 代码,并将该参数留空,Microsoft Access 会将对象复制到类库数据库中。

NewName  可选 Variant 型。字符串表达式,代表复制对象的新名称。若要使用相同的名称,请将该参数留空。

SourceObjectType  可选 AcObjectType。

AcObjectType 可以是下列 AcObjectType 常量之一:
acDataAccessPage
acDefault 默认
acDiagram
acForm
acFunction
acMacro
acModule
acQuery
acReport
acServerView
acStoredProcedure
acTable
注意   当在数据访问页中使用 CopyObject 方法时, “默认”数据库文件夹中将创建数据访问页的 HTML 文件副本,目标数据库中将创建指向副本的链接。


SourceObjectName  可选 Variant 型。字符串表达式,代表 sourceobjecttype 参数所选类型的对象的有效名称。如果在类库数据库中运行包含 CopyObject 方法的 Visual Basic 代码,Microsoft Access 会先在类库数据库中查找具有相同名称的对象,然后再在当前数据库中查找。

说明
有关该操作及其参数如何使用的详细信息,请参阅该操作的主题。

对于该方法,必须包含 destinationdatabase 或 newname 参数之一,或两者都包括。

如果将 sourceobjecttype 和 sourceobjectname 参数留空(对于 sourceobjecttype 参数将假设为默认常量 acDefault),Microsoft Access 将复制“数据库”窗口中的选定对象。若要选择“数据库”窗口中的对象,可以使用 SelectObject 操作或 SelectObject 方法,并将 In Database Window 参数设置为“是”(True)。

如果指定 sourceobjecttype 和 sourceobjectname 参数,但是将 newname 或 destinationdatabase 参数之一留空,则必须包含 newname 或 destinationdatabase 参数的逗号。如果将末尾的参数留空,那么在指定的最后一个参数后面不要使用逗号。

示例
下面的示例使用 CopyObject 方法将“雇员”表复制到当前数据库,并为其指定一个新的名称:

DoCmd.CopyObject, "Employees Copy", acTable, "Employees"
5#
 楼主| 发表于 2004-2-7 01:57:00 | 只看该作者
谢谢cg1斑竹.
我好象不是很懂.竹笛大侠说的我倒是懂了!
谢谢!!
可能还有很多问题请教哦?

cg1斑竹,现在就有问题了!我运行"CopyObject"总会弹出两个复制时的对话筐来,请问有没有什么方法可以不让他弹出来呢?

[此贴子已经被作者于2004-2-6 20:31:50编辑过]

点击这里给我发消息

6#
发表于 2004-2-7 07:24:00 | 只看该作者
以下是引用yaoiii在2004-2-5 18:24:21的发言:
[求助]怎样在窗体中建立"自动创建或自动复制表"的按钮?
比如现有表1,窗体1,如何在窗体1中建立一个"创建表"或者"复制表"的命令来创建一个类似"表1 "的表?
期盼高手指点!!


请参见示例中的"复制表"和"输入新建表的名称"窗体





主要的代码如下:
Private Sub cmdOK_Click()
    Dim strName As String
    Dim tbl As DAO.TableDef
    Dim db As DAO.Database
    Dim ok As Boolean
   
    Set db = CurrentDb
   
    strName = Me.txtName
   
    For Each tbl In db.TableDefs
        If UCase(tbl.Name) = UCase(strName) Then
            ok = True
            Exit For
        End If
    Next
   
    If ok Then
        MsgBox "表:" & strName & vbCr & vbCr & "已经存在!", vbCritical, Me.Caption
        txtName.SetFocus
        txtName.SelStart = 0
        txtName.SelLength = Len(txtName)
    Else
        If frm.chkData Then
            ' 含有数据
            DoCmd.RunSQL "SELECT * INTO [" & strName & "] FROM [" & strSourceTable & "];"
        Else
            ' 不含数据
            DoCmd.RunSQL "SELECT * INTO [" & strName & "] FROM [" & strSourceTable & "] WHERE 1=2;"
        End If
        
        DoCmd.Close
    End If
End Sub
[此贴子已经被作者于2004-2-6 23:28:32编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
7#
发表于 2004-2-7 09:40:00 | 只看该作者
给你最简单的,一共3句话


DoCmd.SetWarnings False
DoCmd.CopyObject , "新的表名", acTable, "原来的表名"
DoCmd.SetWarnings True


8#
 楼主| 发表于 2004-2-15 00:11:00 | 只看该作者

[求助]怎样在窗体中建立"自动创建或自动复制表"的按钮?

谢谢各位前辈!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-16 04:32 , Processed in 0.092537 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表