2016-04-21 167 views
0

我最近升遷了一個數據庫後端到SQL並保持相同的前端,所以我正在更新一些代碼,但是,我不明白爲什麼這會爲.Fields返回一個空值(「BuildingID」) 。任何幫助將非常感激!SQL查詢返回空表

Set rst = CurrentDb.OpenRecordset("SELECT * FROM Buildings, dbOpenDynaset, dbSeeChanges) 
    . 
    . 
    . 
If Not rst Then 
    With rst 
    .AddNew 
    NewID = .Fields("BuildingID") 
+0

我懷疑‘的AddNew’只添加一條記錄的記錄,它還未插入一行到數據庫表,我也懷疑BuildingID在SQL Server中被聲明爲IDENTITY列,我不認爲對Recordset所做的更改會應用到數據庫,直到您在Recordset上執行.Update爲止。在插入到SQL Server數據庫之前,IDENTITY列將不會被分配給新行。)這不是一個答案,它只是一個猜測。 – spencer7593

回答

0

我覺得「應該有像在選擇查詢的末尾

Set rst = CurrentDb.OpenRecordset("SELECT * FROM Buildings", dbOpenDynaset, dbSeeChanges) 
+0

我認爲S的結尾ELECT查詢在建築物之後的逗號前面。我認爲SELECT查詢後面是選項(例如,僅向前滾動,僅爲只讀等)(此代碼看起來更像Microsoft棧(例如DAO和VB),它看起來像MySQL。 – spencer7593