严重错误#-2147217887多步OLE DB操作生成错误

问题描述:

我已经使用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

您应该使用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