我試圖通過使用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連接的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的兩大圖書館之一。
說話錯了就是思考錯了,導致做錯了。
這裏沒有理由使用Recordset。你也應該避免使用幻數,並且ADO幾乎提供了所有的枚舉,所以沒有任何藉口。
con.Execute "CREATE TABLE [Students](" _
& "[StudentNumber] LONG CONSTRAINT [PK_StudentNumber] PRIMARY KEY)", _
, _
adCmdText Or adExecuteNoRecords
注意,INTEGER,LONG,INT和INTEGER4都意味着在JET SQL符號的32位整數。如果您想要一個帶符號的16位整數,則可以說SMALLINT,SHORT或INTEGER2。
另請注意,CONSTRAINT是全局數據庫對象,需要唯一的名稱。
所以這是即時可能的,所以這就是我所做的,我在保存之前使用.EOF的力量。 &cmbRecords.Text& 「其中StudentNumber像」 &txtAddStudent.Text,CON,3,3 rs1sP1y.Open 「從選擇StudentNumber」 如果rs1sP1y.EOF然後 隨着rs1sP1y .AddNew 點域( 「StudentNumber」) = txtAddStudent.Text .Update .Requery 尾隨着 否則 MSGBOX「學生數量已經增加。」,vbCritical,「重複帳戶」 退出小組 結束如果 –