标题:子母窗体连接问题“实时错误,对象已打开,不允许操作!”
取消只看楼主
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
得分:0 
密码登陆窗体(FORM3)
2006-10-29 23:18
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
得分:0 
另外两个代码都是:

Unload Me
Form1.Show

执行均正常啊?
怎么,黄色条出现在另外的窗体(FORM3)上呢?这窗体好象与这无关吧?
2006-10-29 23:21
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
得分:0 
那到底错在啦呢?
2006-10-30 20:07
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
得分:0 

Private Sub Command1_Click()
Rst.Close(新添的)

Form1.Show
Unload Me

End Sub
但还是不行啊?
记录集在哪关闭呢?

2006-10-30 21:39
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
得分:0 
而且,那个不行的,焦点在“返回”控件上,正常使用的焦点在其他控件上!
2006-11-01 21:35
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
得分:0 
还是不行!!!
2006-11-03 23:20
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
得分:0 
再请高手帮我解决下,这问题!
谢谢!
2006-11-05 22:18
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
得分:0 

再详细补充介绍下:

我有一个主窗体FORM1、和四个子体如下:
子体一:密码窗体FORM2、子体二:FORM3、子体三:FORM4、子体四:FORM5
Private Sub Form_Load()
Form2.Show
Form1.Hide
End Sub

子体二、三、四代码均一模一样,

这三个子体的COMMAND1控件代码如下:每个

Private Sub Command1_Click()

Unload Me
Form1.Show
End Sub

点二和四子体的COMMAND1控件来返回主体时,再进入该子体时均正常,就三不正常,出现错误提示!

还是无法解决!

2006-11-06 19:23
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
得分:0 

高手提示:

“Unload Me,Form1.Hide之类的代码,从浅入深时,全部去掉。有深层次退回浅层时,保留。
这样一来,就不存在哪个问题了。
一般没有特意设置时,新打开的窗体总在最前面(为当前窗体,具有焦点)。所以,不用担心打开了窗体2,窗体1响应了操作。”

高手修改如下:“窗体2代码如下:

"Private Sub Command1_Click()
Unload Me
End Sub"

主窗体里的代码如下:

Private Sub Form_Load()
Form2.Show
End Sub

别的都可以不要。


但还是不行!因为:

把“Private Sub Form_Load()
Form2.Show
Form1.Hide
End Sub

改为:“ Private Sub Form_Load()
Form2.Show
End Sub

则我的FORM2密码登陆窗体就没有意义了,因为,同时密码登陆窗口和主窗体都打开了!

2006-11-07 14:06
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
得分:0 

经高手指点:在 在所有Rst.CursorLocation = adUseClient之前加



If (Rst.State = adStateOpen) Then
Rst.Close
End If

我于是在我那个有问题的子窗体的FORM_LOAD()里加了这句代码如下:

Private Sub Form_Load()
...
...
Dim ConString As String
ConString = "Provider=Microsoft.Jet.OleDb.4.0;Persist Security Info = False;" _
& "Data Source =" & App.Path & "\db3.mdb"

Set Conn = CreateObject("ADODB.Connection")
With Conn
.ConnectionString = ConString
.Open
End With

If (Rst.State = adStateOpen) Then
Rst.Close
End If



Rst.CursorLocation = adUseClient
Rst.Open "Select * From 亲戚信息", Conn, adOpenKeyset, adLockPessimistic, adCmdText

Text1.Text = Rst.Fields("姓名").Value
Text2.Text = Rst.Fields("单位名称").Value
Text3.Text = Rst.Fields("办公电话").Value
Text4.Text = Rst.Fields("办公电话二").Value
Text5.Text = Rst.Fields("手机").Value
Text6.Text = Rst.Fields("手机二").Value
...
...
Text17.Text = Rst.AbsolutePosition
Text16.Text = Rst.RecordCount
End Sub


现在总算把子母体解决了!只不过,有点奇怪的是其余子体却没有加,使用倒很正常!

第二个问题:我在其中一个子窗体QQBJ里面添加了DataGrid1控件和一个Adodc1,

DataGrid1控件没有做任何设置,只是摆在了上面,没有添加任何与之相关的代码;

Adodc1属性只设置了连接属性:ConnectionString,。。。。测试连接成功!(也许有了下列语句代码的话,这个属性设置可能是多余,但为防万一,还是设置了!)

其LOAD()代码又添加了如下代码:

Private Sub Form_Load()
Dim Adoc1 As String
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db3.mdb;Persist Security Info=False"
Adodc1.CursorLocation = adUseClient
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select * from 亲戚信息"
Adodc1.Refresh

。。。。

执行之,从主体进入该子体时,出现提示:“[ADODC]没有指定记录源;[ADO]没有为命令对象设置命令”

但还可以执行下去,退出子体返回主体时,也出现同样提示框!


另外,DataGrid1显示出了该数据表!

尽管这个DataGrid1几乎是孤立的,没有任何与之有关的代码,没有对它的属性做任何设置!

直接在上面就可以实现修改,但刷新不了!

要到下次打开时,才实现更新!

2006-11-16 21:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-99292-1-1.html




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

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