Vb6 创建主键不重复的表

Vb6 创建主键不重复的表,vb6,key,Vb6,Key,我试图通过使用ADODB连接的VB6在MS Access中创建一个表。 这是我的密码 dim rs as new ADODB.recordset set rs = new ADODB.recordset rs.Open "cretae table (StudentNumber Integer primary key)", con, 3, 3 代码工作正常,但StudentNumber列允许重复值。如果试图重新输入现有学号,我希望弹出一条错误消息。这不是“使用ADODB连接”,而是使用ADO。A

我试图通过使用ADODB连接的VB6在MS Access中创建一个表。 这是我的密码

dim rs as new ADODB.recordset
set rs = new ADODB.recordset
rs.Open "cretae table (StudentNumber Integer primary key)", con, 3, 3
代码工作正常,但StudentNumber列允许重复值。如果试图重新输入现有学号,我希望弹出一条错误消息。

这不是“使用ADODB连接”,而是使用ADO。ADODB只是构成ADO的两个主要库之一

说错了就是想错了,导致做错事

这里没有理由使用记录集。您还应该避免使用幻数,ADO几乎为所有内容都提供了枚举,因此没有任何理由这样做

con.Execute "CREATE TABLE [Students](" _
          & "[StudentNumber] LONG CONSTRAINT [PK_StudentNumber] PRIMARY KEY)", _
            , _
            adCmdText Or adExecuteNoRecords
请注意,在JET SQL中,整数、LONG、INT和INTEGER4都表示有符号32位整数。如果需要有符号的16位整数,可以说SMALLINT、SHORT或INTEGER2


还要注意的是,约束是全局数据库对象,需要唯一的名称。

所以这是可能的。下面是我所做的,我在保存之前使用了.EOF的强大功能。rs1sP1y.Open“select StudentNumber from”&cmbcrecords.Text&“where StudentNumber like”&txtAddStudent.Text,con,3,3如果rs1sP1y.EOF,则使用rs1sP1y.AddNew.Fields(“StudentNumber”)=txtAddStudent.Text.Update.Requery以Else MsgBox“已添加学生号”结尾,vbCritical,“重复帐户”退出子结尾如果现在说对不起太迟了(哈哈,后悔和改正你的路线永远都不会太迟。这有助于你避免在将来错误地转弯。