2015-03-31 53 views
0

我已經使用MS訪問中的內置升遷嚮導將訪問數據庫轉換爲SQL Express數據庫。但是,當我嘗試以編程方式向SQL服務器表中添加記錄時,現在出現錯誤:嚴重錯誤#-2147217887多步OLE DB操作生成錯誤

嚴重錯誤#-2147217887多步OLE DB操作生成錯誤。

這個失敗的字段是當我設置SQL字段時[注意]。我試圖將其設置爲vbnullstring(使用VB6)。

訪問升遷嚮導將該字段創建爲nvarchar(255)並將所有空值設置爲true,它最初是一個長度爲255(毫秒)訪問的文本字段。

將sql中的nvarchar字段設置爲vbnullstring有問題嗎?

任何可能出錯的建議將不勝感激!

Set RS = OpenRecordsetSQL("SELECT TOP 1 * FROM AvailabilityBlocks WHERE BlockID=-1") 
' ' Add a specific entry to the Availability DB Table ' 
RS.AddNew 
RS("Begin") = wblock.BeginTime 
RS("Type") = wblock.BlockType 
RS("OCampus") = wblock.Campus 
RS("End") = wblock.EndTime 
RS("LocationID") = wblock.LocationID 
RS("ResourceID") = wblock.ResourceID 
RS("RecurringSetNumber") = wblock.RWWSetNumber 
RS("Notes") = wblock.Notes 
RS("InternalNotes") = wblock.InternalNotes 
RS.Update 
+0

告訴我們你的代碼 – Rob 2015-03-31 09:28:36

+0

集RS = OpenRecordsetSQL(「SELECT TOP 1 * FROM AvailabilityBlocks WHERE BlockID = -1「)' '將特定條目添加到可用性數據表表 ' RS.AddNew(「開始」)= wblock.BeginTime RS(「LocationID」)= )= wblock.LocationID RS( 「資源ID」)= wblock.ResourceID RS( 「RecurringSetNumber」)= wblock.RWWSetNumber RS( 「註釋」)= wblock.Notes RS( 「InternalNotes」)= wblock.InternalNotes RS.Update – user1801904 2015-03-31 13:59:15

+0

我在帖子中添加了這個 - 不可能作爲評論閱讀。將「註釋」設置爲空而不設置它? – Rob 2015-03-31 14:02:57

回答

0

您應該使用Null而不是vbNullString。 vbNullString是一個設計用於將數據傳遞給API的常量。空值是空值的VB表示。數據庫意義上爲NULL。

您遇到的一個問題是,在VB中,字符串不能爲空。當然你也可以使用VB的變型數據類型,以便聲明Notes作爲

Notes as Variant 

然後要麼

wblock.Notes = "some text" 

wblock = Null 
+0

哇,那麼你是說我需要在使用vbnullstring的代碼中隨處追查,並且如果有可能將以前的vbnullstring寫出到SQL服務器數據庫中,將其更改爲「」(空字符串)? – user1801904 2015-03-31 14:57:43

+0

如果將它保存到字段,可以使用vbNullString小心。 – Rob 2015-03-31 15:13:47

相關問題