| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 431 人关注过本帖
标题:求解VB数据库编程中程序出错解决方法
只看楼主 加入收藏
zhushaofu
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-11-8
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
求解VB数据库编程中程序出错解决方法
用VB制作一个程序将EXCEL文件导入到SQL数据表,运行时提示:“实时错误‘-2147217900(80040e14)'___仅当使用了列的列表,并且IDENTITY INSERT为ON时,才能在表‘people'中为标识列指定显示值。”检查后发现数据库文件中的数据表“people”有一列"ID"列,被指定为标识列,只是不知道这个“仅当使用了列的列表,并且IDENTITY INSERT为ON时,才能在表‘people'中为标识列指定显示值。”是什么意思?请教高手,如果不对数据库进行修改,也就是说不想取消该表的标识列。怎样才能解决上述问题?
程序代码如下:
Private Sub Command1_Click()
Dim strconn As String
CommonDialog1.Filter = "电子表格文件(.xls)|*.xls"
CommonDialog1.DialogTitle = "请选择要导入数据的文件"
Set rstemp = CreateObject("ADODB.Recordset")
Set conn = CreateObject("Adodb.connection")
strconn = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=PData_" & Year(Now) & ";Data Source=(local)"
conn.Open strconn
CommonDialog1.ShowOpen
strsql = "INSERT INTO People_Money select *  From  OpenRowset('microsoft.jet.oledb.4.0','Excel 8.0;HDR=Yes;database=" & CommonDialog1.FileName & ";','select * from [存款单$]') "
rstemp.Open strsql,conn,1,1
 MsgBox "数据导入完成", vbExclamation + vbOKOnly
conn.Close
Set conn = Nothing
retemp.Close
Set rstemp = Nothing
End
End Sub
搜索更多相关主题的帖子: 标识 数据库文件 people 数据表 
2012-11-08 22:04
mayuebo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:257
专家分:1282
注 册:2005-9-8
收藏
得分:20 
相当于,那个列是做主键用的.而且是自动编号.不能插入值.要取消主键.取消自动编号才能插入.这个是插入的有效性验证.

成功贵在坚持
2012-11-11 16:20
zhushaofu
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-11-8
收藏
得分:0 
谢谢你。我知道这是主键,只是想问在不取消主键和自动编号情况下如何才能插入值?
有的文章介绍将IDENTITY_INSERT 值改为ON就可以插入:
SET IDENTITY_INSERT [表名] ON
INSERT INTO [表名]     (id, product)     SELECT * From  OpenRowset('microsoft.jet.oledb.4.0','Excel 8.0;HDR=Yes;database=" & CommonDialog1.FileName & ";','select * from [存款单$]') "
然后:SET IDENTITY_INSERT [表名] OFF
(恢复IDENTITY_INSERT 的OFF属性)
我想问上面的SET IDENTITY_INSERT [表名] ON和SET IDENTITY_INSERT [表名] OFF语句如何使用,请师父帮忙。
2012-11-15 20:15
zhushaofu
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-11-8
收藏
得分:0 
请问如何在下面的代码中加入SET IDENTITY_INSERT [表名] ON和SET IDENTITY_INSERT [表名] OFF语句?
Private Sub Command1_Click()
Dim strconn As String
CommonDialog1.Filter = "电子表格文件(.xls)|*.xls"
CommonDialog1.DialogTitle = "请选择要导入数据的文件"
Set rstemp = CreateObject("ADODB.Recordset")
Set conn = CreateObject("Adodb.connection")
strconn = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=PData_" & Year(Now) & ";Data Source=(local)"
conn.Open strconn
CommonDialog1.ShowOpen
strsql = "INSERT INTO People_Money select *  From  OpenRowset('microsoft.jet.oledb.4.0','Excel 8.0;HDR=Yes;database=" & CommonDialog1.FileName & ";','select * from [存款单$]') "
rstemp.Open strsql,conn,1,1
MsgBox "数据导入完成", vbExclamation + vbOKOnly
conn.Close
Set conn = Nothing
retemp.Close
Set rstemp = Nothing
End
End Sub
2012-11-16 11:15
快速回复:求解VB数据库编程中程序出错解决方法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.064825 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved