设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 1725|回复: 11
打印 上一主题 下一主题

[其它] 用VBA设定表的主关键字

[复制链接]
跳转到指定楼层
1#
发表于 2003-6-12 00:23:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用"生成表查询"建一表后,想用按钮单击来设定某一字段为主关键字。
不懂写,请板主、高手们出手赐教!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2003-6-12 01:04:00 | 只看该作者
利用ADO 或DAO 追加INDEX
3#
 楼主| 发表于 2003-6-12 01:36:00 | 只看该作者
谢谢!
具体一点好吗?
4#
发表于 2003-6-12 04:56:00 | 只看该作者
Dim dbs As DAO.Database
    Dim tdf As DAO.TableDef
     Dim idxNew As DAO.Index
     
     Set dbs = OpenDatabase("C:\yourdatabase.mdb")
    Set tdf = dbs!yourtable

    With tdf
        ' Create new index, create and append Field
        ' objects to its Fields collection.
        Set idxNew = .CreateIndex("NewIndex")

        With idxNew
            .Fields.Append .CreateField("国家")
            .Fields.Append .CreateField("姓氏")
            .Fields.Append .CreateField("名字")
        End With

        ' Add new Index object to the Indexes collection
        ' of the Employees table collection.
       .Indexes.Append idxNew
        .Indexes.Refresh
  END WITH








[此贴子已经被作者于2003-6-12 9:07:32编辑过]

5#
 楼主| 发表于 2003-6-12 09:06:00 | 只看该作者
谢谢sunredday大侠!!!
我看不懂语句的意思,请问("NewIndex")是否为表名,("国家")等为待设定的字段名?
试一下提示:缺少 End With
在最后加 End With
又提示:方法或数据成员未找到
请指教!
6#
发表于 2003-6-12 17:10:00 | 只看该作者
引用DAO3.6
另外,增加的是索引,还不是主关键字。
7#
发表于 2003-6-12 17:12:00 | 只看该作者
NEWINDEX 是索引名称,不用管它
国家等是你的作为索引的字段名称,此处用了三个字段作为一个索引。
8#
 楼主| 发表于 2003-6-12 18:03:00 | 只看该作者
sunredday谢谢!
还是不行.
错误指向 .Indexes.Append idxNew
Set tdf = dbs!yourtable是啥意思?
请再指教!
9#
 楼主| 发表于 2003-6-12 20:10:00 | 只看该作者
我乱改为:
Private Sub 命令1_Click()
Dim dbs As Database
    Dim tdf As TableDef
     Dim idxNew As Index
     
     Set dbs = OpenDatabase("d:\db1.mdb")
     'Set dbs = CurrentDb()
    Set tdf = dbs![站点表]
    With tdf
               Set idxNew = .CreateIndex("primarykey")
        

        With idxNew
            .Fields.Append .CreateField("站点")
            '.Fields.Append .CreateField("站点ID")
            '.Fields.Append .CreateField("名字")
End With

             tdf.Indexes.Append idxNew
        tdf.Indexes.Refresh
  
   End With
   
End Sub

只可加一个索引(为无重复),如多一两字段,却只显一个,其它的是加了索引可在表设计中看不到?
现差一步之遥,请大侠们帮忙啦!
10#
发表于 2003-6-12 20:19:00 | 只看该作者
主键加
idxNew.Primary = True

Set tdf = dbs!yourtable是啥意思?
你的表的名称为表1,则
Set tdf = dbs!表1
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-21 18:59 , Processed in 0.082647 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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