Private Sub Command1_Click()
Rst.Close(新添的)
Form1.Show
Unload Me
End Sub
但还是不行啊?
记录集在哪关闭呢?
再详细补充介绍下:
我有一个主窗体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控件来返回主体时,再进入该子体时均正常,就三不正常,出现错误提示!
还是无法解决!
高手提示:
“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密码登陆窗体就没有意义了,因为,同时密码登陆窗口和主窗体都打开了!
经高手指点:在 在所有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几乎是孤立的,没有任何与之有关的代码,没有对它的属性做任何设置!
直接在上面就可以实现修改,但刷新不了!
要到下次打开时,才实现更新!