VB 程序运行后提示:对象打开时,不允许操作。 15

PublicadoConAsNewADODB.Connection'定义一个数据连接Publicrs1AsNewADODB.RecordsetPublicFunction... Public adoCon As New ADODB.Connection '定义一个数据连接Public rs1 As New ADODB.RecordsetPublic Function Cnn() As ADODB.Connection '定义函数 Set Cnn = New ADODB.Connection '返回一个数据库连接 Cnn.Open "Provider=SQLOLEDB.1;Password=853562;Persist Security Info=True;User ID=sa;Initial Catalog=hyzl01;Data Source=167.129.20.197"End FunctionPrivate Sub Form_Load()Adodc1.ConnectionString = Cnn'Adodc1.RecordSource = "select PRTypeId as 价格编号 ,prdisname as 价格名称 from xw_P_PriceType"Adodc1.RecordSource = "select a.pfullname as 商品全名,b.Unit1 as 单位,b.ordid as 单位排序, c.Price as 价格 from ptype as a,xw_PtypeUnit as b,xw_P_PtypePrice as c "If Cnn.State = 1 ThenCnn.CloseEnd IfAdodc1.RefreshSet MSHFlexGrid1.DataSource = Adodc1MSHFlexGrid1.Refresh 展开
 我来答
网海1书生
科技发烧友

2016-11-02 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部
Adodc1.ConnectionString = Cnn
ConnectionString属性是个字符串值,也就是"Provider=SQLOLEDB.1;Pass……"这个字符串,而Cnn是个函数,返回值是个连接对象,不是字符串。

此外,
If Cnn.State = 1 Then
Cnn.Close
End If
这里的Cnn也仍然是函数,不是对象,不能这样用的(每运行一次就会Open一次,这样就会出现对象打开时再次打开的情况)。

总之你这段代码很乱啊,既有数据库连接控件,又有数据库连接对象,不知你要干嘛。
sbj518
2016-11-02 · TA获得超过4.4万个赞
知道大有可为答主
回答量:1.1万
采纳率:81%
帮助的人:5298万
展开全部
应该是你关闭界面时,adodc1还未关闭。这样是不允许的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式