2011-12-23 65 views
0

我有下面的代碼會拋出一個異常在我設定的屬性行「COM異常是未處理」:設置自動編號字段?

var tbdefinition = dbase.TableDefs["MyDB"]; 
var field_auid = tbdefinition.Fields["myColumn"]; 
field_auid.Attributes = 4; 

我在做什麼錯?

+0

您是否嘗試過單步執行或捕捉異常?也許它會給你更多的細節。 – Xaisoft

+0

使用調試器並查看該異常是否具有提供更多信息的'InnerException'。你確定'4'在這裏是一個有效的值嗎?請解釋(編輯問題)這與自動編號字段有什麼關係。 –

+0

對不起,4是將autoNumber屬性設置爲true的枚舉VBA值的數量。 – Pantelis

回答

1

在Jet數據庫中,如果表中已經包含記錄,則無法將現有字段的類型更改爲自動編號。 但是,您可以添加一個新字段,它是一個自動編號字段。

+0

嗨,對於遲到的迴應感到抱歉,但是我花了幾個小時在家裏設置了我的新系統。 感謝您提出明確的@Olivier。 我轉向DAO的原因是,當我執行OledbCommand ALTER命令時,我發現該字段並未更改爲AutoNumber。這很奇怪,因爲它爲我創建的另一個表做了訣竅。我的數據庫有兩個表,其中一個表有一個到另一個主鍵的外鍵。讓我們稱他們爲父母和孩子,以方便我的代碼的下列解釋。 – Pantelis

+0

1)創建Parent1並設置PK。然後使用DAO將BIT字段設置爲複選框,並從DataSet中填充表,該DataSet用不同數據保存同一數據庫的另一副本的Parent +記錄的記錄。 2)以類似的方式創建Child2。 3)修改表格我想要設置爲AutoNumber的字段。 4)刪除表父母和孩子,並將父母1和父母1重命名爲孩子。 5)最後,我將FK添加到子表中。 – Pantelis

+0

幾個奇怪的事情。我的父母的字段成功更改爲自動編號,但我的孩子沒有。那實際上呢!但是,當我將表格從Child1重命名爲Child時,它似乎失去了該屬性。 – Pantelis

相關問題