使用 ADOX 是否能将已经存在的字段设置为主键 以及 将已被设置为主键的字段取消主键属性 ? 我试了很久也没办法,是不是真的不能实现? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果是access可以这样 Dim cnn As New Connection Dim cat As New ADOX.Catalog Dim k As ADOX.Key Dim i As Long cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Documents and Settings\Administrator\桌面\E_A.mdb;Persist Security Info=False" Set cat.ActiveConnection = cnn '去掉主键 For i = 0 To cat.Tables("qq").Keys.Count - 1 If cat.Tables("qq").Keys(i).Type = adKeyPrimary Then cat.Tables("qq").Keys.Delete i End If Next i '设置ii为主键 Set k = New Key k.Name = "PK" k.Type = adKeyPrimary k.Columns.Append "ii" cat.Tables("qq").Keys.Append k 谢谢bdhh(Silent)的解答。我还有几个问题,看看我后面的贴子吧 想用VB中的MSFlexGrid显示修改SQL数据没成功 [求助]谁能拖动无标题样的椭圆形的EXCEL工作表?(附图) VB控制EXCEL格式问题 求教SQL语句 自已做个软件卖行不????? 怎么访问远端服务器上的Access??? vb读写局域网文件的问题 XP下vb6用ADO2.8,在WIN7下无响应 初学问题,在线等待 VB如何处理自定义消息 请教:用VB6能开发动态联结库(DLL)吗? 怎样像冰河那样可以扫描一段IP段,然后进行连接自已的后台程序
Dim cnn As New Connection
Dim cat As New ADOX.Catalog
Dim k As ADOX.Key
Dim i As Long
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Documents and Settings\Administrator\桌面\E_A.mdb;Persist Security Info=False"
Set cat.ActiveConnection = cnn
'去掉主键
For i = 0 To cat.Tables("qq").Keys.Count - 1
If cat.Tables("qq").Keys(i).Type = adKeyPrimary Then
cat.Tables("qq").Keys.Delete i
End If
Next i
'设置ii为主键
Set k = New Key
k.Name = "PK"
k.Type = adKeyPrimary
k.Columns.Append "ii"
cat.Tables("qq").Keys.Append k