MDI窗体代码Private Sub MDIForm_Load()End Sub窗体A代码Dim i As IntegerPrivate Sub Form_Load() i = 0 End SubPrivate Sub Form_Unload(Cancel As Integer) Set LogoFrm = Nothing End SubPrivate Sub Timer1_Timer() i = i + 1 ProgressBar1.Value = i If i > 99 Then Unload Me Load LoginFrm LoginFrm.Show 1 End If End Sub窗体B代码Dim addlist As ListItem Dim instance As ListView Dim i As IntegerPrivate Sub Form_Load() Me.Left = (MDIMainFrm.ScaleWidth - Me.Width) / 2 Me.Top = (MDIMainFrm.ScaleHeight - Me.Height) / 2 CstLv.ColumnHeaderIcons = ImageList1 CstLv.ColumnHeaders(1).Icon = 1 sql = "select CstID,CstName,CstTel,CstAddr,CstPYCode,CstMngor,CstMngorTel,CstMngorPY," _ & "CstPrice,CstMny,CstInure,CstType,CstArea,OpData,CstOptor,Rmk from CstInfo" Call addInfo End SubPublic Sub addInfo() Call OpenConn rs.Open sql, cn, 1, 1 Do While Not rs.EOF Select Case rs.Fields("CstType") Case "有约大户机关" Lvico = 2 Case "无约一般散户" Lvico = 3 Case "知名人士" Lvico = 4 Case "政界要人" Lvico = 5 End Select Set addlv = CstLv.ListItems.Add(, , rs.Fields("CstID"), , Lvico) addlv.SubItems(1) = rs.Fields("CstName") addlv.SubItems(2) = rs.Fields("CstTel") addlv.SubItems(3) = rs.Fields("CstAddr") addlv.SubItems(4) = rs.Fields("CstMngor") addlv.SubItems(5) = rs.Fields("CstMngorTel") addlv.SubItems(6) = rs.Fields("CstPrice") addlv.SubItems(7) = rs.Fields("CstMny") addlv.SubItems(8) = rs.Fields("CstInure") addlv.SubItems(9) = rs.Fields("CstType") addlv.SubItems(10) = rs.Fields("CstArea") addlv.SubItems(11) = rs.Fields("OpData") addlv.SubItems(12) = rs.Fields("Rmk") rs.MoveNext Loop Call CloseConn End Sub窗体C代码Private Sub LoginCmd_Click() Call OpenConn sql = "select * from UserID where Uname='" & UIDComb.Text & "'" rs.Open sql, cn, 1, 1 If convert(PassComb.Text) = IIf(Trim(IsNull(rs.Fields("Upass"))), "", _ convert(Trim(rs.Fields("Upass")))) Then Optor = rs.Fields("Uname") Branch = rs.Fields("Bran") Power = rs.Fields("Power") Call CloseConn Unload Me MainFrm.Visible = True Else MsgBox "密码错误!", 48, "错误提示" PassComb.SetFocus Exit Sub End If End Sub
ProgressBar1.max=100 ProgressBar1.min=0 '窗体A代码 Private Sub Timer1_Timer() ProgressBar1.Value = (Rs.AbsolutePosition /Rs.RecordCount)*100 '假如Rs是 Module 中定义的变量 'ProgressBar1.Value = (FormB.Rs.AbsolutePosition /FormB.Rs.RecordCount)*100 '假如Rs是窗体B 中定义的变量 'Rs.AbsolutePosition /Rs.RecordCount 记录集的当前记录除以记录集的所有记录 得到已打开的记录比例 End Sub
ProgressBar1.max=100 ProgressBar1.min=0 '窗体A代码 Private Sub Timer1_Timer() ProgressBar1.Value = (Rs.AbsolutePosition /Rs.RecordCount)*100 '假如Rs是 Module 中定义的变量 'ProgressBar1.Value = (FormB.Rs.AbsolutePosition /FormB.Rs.RecordCount)*100 '假如Rs是窗体B 中定义的变量 'Rs.AbsolutePosition /Rs.RecordCount 记录集的当前记录除以记录集的所有记录 得到已打开的记录比例 End Sub
MainFrm的代码Dim addlist As ListItem Dim instance As ListView Dim i As IntegerPrivate Sub Form_Load() Me.Left = (MDIMainFrm.ScaleWidth - Me.Width) / 2 Me.Top = (MDIMainFrm.ScaleHeight - Me.Height) / 2 CstLv.ColumnHeaderIcons = ImageList1 CstLv.ColumnHeaders(1).Icon = 1 sql = "select CstID,CstName,CstTel,CstAddr,CstPYCode,CstMngor,CstMngorTel,CstMngorPY," _ & "CstPrice,CstMny,CstInure,CstType,CstArea,OpData,CstOptor,Rmk from CstInfo" Call addInfo End SubPublic Sub addInfo() Call OpenConn rs.Open sql, cn, 1, 1 Do While Not rs.EOF LogoFrm.intC = LogoFrm.intC + 1 '要在这里加才能使进度条和程序进程挂钩 DoEvents '使timer能够触发 Select Case rs.Fields("CstType") Case "有约大户机关" Lvico = 2 Case "无约一般散户" Lvico = 3 Case "知名人士" Lvico = 4 Case "政界要人" Lvico = 5 End Select Set addlv = CstLv.ListItems.Add(, , rs.Fields("CstID"), , Lvico) addlv.SubItems(1) = rs.Fields("CstName") addlv.SubItems(2) = rs.Fields("CstTel") addlv.SubItems(3) = rs.Fields("CstAddr") addlv.SubItems(4) = rs.Fields("CstMngor") addlv.SubItems(5) = rs.Fields("CstMngorTel") addlv.SubItems(6) = rs.Fields("CstPrice") addlv.SubItems(7) = rs.Fields("CstMny") addlv.SubItems(8) = rs.Fields("CstInure") addlv.SubItems(9) = rs.Fields("CstType") addlv.SubItems(10) = rs.Fields("CstArea") addlv.SubItems(11) = rs.Fields("OpData") addlv.SubItems(12) = rs.Fields("Rmk") rs.MoveNext
Loop Call CloseConn End SubLogoFrm的代码 Public intC As Integer '定义public类型,使MainFrm窗体可以使用Private Sub Form_Load() intc = 0 End SubPrivate Sub Form_Unload(Cancel As Integer) Set LogoFrm = Nothing End SubPrivate Sub Timer1_Timer() 'i=i+1 取消 ProgressBar1.Value = intC If intC > 99 Then timer1.Enabled = False '应禁止timer1再触发 Load LoginFrm LoginFrm.Show 1 Unload Me '应当最后卸载 End If End Sub
MainFrm的代码 Dim addlist As ListItem Dim instance As ListView Dim i As IntegerPrivate Sub Form_Load() Me.Left = (MDIMainFrm.ScaleWidth - Me.Width) / 2 Me.Top = (MDIMainFrm.ScaleHeight - Me.Height) / 2 CstLv.ColumnHeaderIcons = ImageList1 CstLv.ColumnHeaders(1).Icon = 1 sql = "select CstID,CstName,CstTel,CstAddr,CstPYCode,CstMngor,CstMngorTel,CstMngorPY," _ & "CstPrice,CstMny,CstInure,CstType,CstArea,OpData,CstOptor,Rmk from CstInfo" Call addInfo End SubPublic Sub addInfo() Call OpenConn rs.Open sql, cn, 1, 1 Do While Not rs.EOF LogoFrm.intC = LogoFrm.intC + 1 '要在这里加才能使进度条和程序进程挂钩 DoEvents '使timer能够触发 Select Case rs.Fields("CstType") Case "有约大户机关" Lvico = 2 Case "无约一般散户" Lvico = 3 Case "知名人士" Lvico = 4 Case "政界要人" Lvico = 5 End Select Set addlv = CstLv.ListItems.Add(, , rs.Fields("CstID"), , Lvico) addlv.SubItems(1) = rs.Fields("CstName") addlv.SubItems(2) = rs.Fields("CstTel") addlv.SubItems(3) = rs.Fields("CstAddr") addlv.SubItems(4) = rs.Fields("CstMngor") addlv.SubItems(5) = rs.Fields("CstMngorTel") addlv.SubItems(6) = rs.Fields("CstPrice") addlv.SubItems(7) = rs.Fields("CstMny") addlv.SubItems(8) = rs.Fields("CstInure") addlv.SubItems(9) = rs.Fields("CstType") addlv.SubItems(10) = rs.Fields("CstArea") addlv.SubItems(11) = rs.Fields("OpData") addlv.SubItems(12) = rs.Fields("Rmk") rs.MoveNext
Loop Call CloseConn End Sub LogoFrm的代码 Public intC As Integer '定义public类型,使MainFrm窗体可以使用Private Sub Form_Load() intc = 0 End SubPrivate Sub Form_Unload(Cancel As Integer) Set LogoFrm = Nothing End SubPrivate Sub Timer1_Timer() 'i=i+1 取消 ProgressBar1.Value = intC If intC > 99 Then timer1.Enabled = False '应禁止timer1再触发 Load LoginFrm LoginFrm.Show 1 Unload Me '应当最后卸载 End If End Sub
'设置从MDI启动:Private Sub MDIForm_Load() dim rs as recordset dim sql as string dim i as long sql = "select CstID,CstName,CstTel,CstAddr,CstPYCode,CstMngor,CstMngorTel,CstMngorPY," _ & "CstPrice,CstMny,CstInure,CstType,CstArea,OpData,CstOptor,Rmk from CstInfo" Call OpenConn rs.Open sql, cn, 1, 1 formB.hide formA.show
formA.ProgressBar1.max = rs.recordsetcount formA.ProgressBar1.min = 0 formA.ProgressBar1.Value = 0 Do While Not rs.EOF doEvents Select Case rs.Fields("CstType") Case "有约大户机关" Lvico = 2 Case "无约一般散户" Lvico = 3 Case "知名人士" Lvico = 4 Case "政界要人" Lvico = 5 End Select 'B窗体控件添加数据 Set addlv = formB.CstLv.ListItems.Add(, , rs.Fields("CstID"), , Lvico) addlv.SubItems(1) = rs.Fields("CstName") '略...... 'A窗体显示进度条 i=i+1 formA.ProgressBar1.Value = i rs.MoveNext Loop Call CloseConn unload formA '关闭A窗体 formC.show '显示登录窗体 End Sub'窗体C的代码: Private Sub LoginCmd_Click() Call OpenConn sql = "select * from UserID where Uname='" & UIDComb.Text & "'" rs.Open sql, cn, 1, 1 If convert(PassComb.Text) = IIf(Trim(IsNull(rs.Fields("Upass"))), "", _ convert(Trim(rs.Fields("Upass")))) Then Optor = rs.Fields("Uname") Branch = rs.Fields("Bran") Power = rs.Fields("Power") Call CloseConn Unload Me formB.show '登录成功显示B窗体 Else MsgBox "密码错误!", 48, "错误提示" PassComb.SetFocus Exit Sub End If End Sub 只是组织了一下你贴的现成代码的思路,没的测试,窗体名称也是用的你的贴图中的ABC,参考一下吧......
只要能访问了,用MainFrm.ListView1的某个值 改变 LogoFrm.ProgressBar1 某个值 不就很容易吗
i = 0
End SubPrivate Sub Form_Unload(Cancel As Integer)
Set LogoFrm = Nothing
End SubPrivate Sub Timer1_Timer()
i = i + 1
ProgressBar1.Value = i
If i > 99 Then
Unload Me
Load LoginFrm
LoginFrm.Show 1
End If
End Sub窗体B代码Dim addlist As ListItem
Dim instance As ListView
Dim i As IntegerPrivate Sub Form_Load()
Me.Left = (MDIMainFrm.ScaleWidth - Me.Width) / 2
Me.Top = (MDIMainFrm.ScaleHeight - Me.Height) / 2
CstLv.ColumnHeaderIcons = ImageList1
CstLv.ColumnHeaders(1).Icon = 1
sql = "select CstID,CstName,CstTel,CstAddr,CstPYCode,CstMngor,CstMngorTel,CstMngorPY," _
& "CstPrice,CstMny,CstInure,CstType,CstArea,OpData,CstOptor,Rmk from CstInfo"
Call addInfo
End SubPublic Sub addInfo()
Call OpenConn
rs.Open sql, cn, 1, 1
Do While Not rs.EOF
Select Case rs.Fields("CstType")
Case "有约大户机关"
Lvico = 2
Case "无约一般散户"
Lvico = 3
Case "知名人士"
Lvico = 4
Case "政界要人"
Lvico = 5
End Select Set addlv = CstLv.ListItems.Add(, , rs.Fields("CstID"), , Lvico)
addlv.SubItems(1) = rs.Fields("CstName")
addlv.SubItems(2) = rs.Fields("CstTel")
addlv.SubItems(3) = rs.Fields("CstAddr")
addlv.SubItems(4) = rs.Fields("CstMngor")
addlv.SubItems(5) = rs.Fields("CstMngorTel")
addlv.SubItems(6) = rs.Fields("CstPrice")
addlv.SubItems(7) = rs.Fields("CstMny")
addlv.SubItems(8) = rs.Fields("CstInure")
addlv.SubItems(9) = rs.Fields("CstType")
addlv.SubItems(10) = rs.Fields("CstArea")
addlv.SubItems(11) = rs.Fields("OpData")
addlv.SubItems(12) = rs.Fields("Rmk")
rs.MoveNext
Loop
Call CloseConn
End Sub窗体C代码Private Sub LoginCmd_Click()
Call OpenConn
sql = "select * from UserID where Uname='" & UIDComb.Text & "'"
rs.Open sql, cn, 1, 1
If convert(PassComb.Text) = IIf(Trim(IsNull(rs.Fields("Upass"))), "", _
convert(Trim(rs.Fields("Upass")))) Then
Optor = rs.Fields("Uname")
Branch = rs.Fields("Bran")
Power = rs.Fields("Power")
Call CloseConn
Unload Me
MainFrm.Visible = True
Else
MsgBox "密码错误!", 48, "错误提示"
PassComb.SetFocus
Exit Sub
End If
End Sub
ProgressBar1.min=0
'窗体A代码
Private Sub Timer1_Timer()
ProgressBar1.Value = (Rs.AbsolutePosition /Rs.RecordCount)*100 '假如Rs是 Module 中定义的变量
'ProgressBar1.Value = (FormB.Rs.AbsolutePosition /FormB.Rs.RecordCount)*100 '假如Rs是窗体B 中定义的变量
'Rs.AbsolutePosition /Rs.RecordCount 记录集的当前记录除以记录集的所有记录 得到已打开的记录比例
End Sub
ProgressBar1.min=0
'窗体A代码
Private Sub Timer1_Timer()
ProgressBar1.Value = (Rs.AbsolutePosition /Rs.RecordCount)*100 '假如Rs是 Module 中定义的变量
'ProgressBar1.Value = (FormB.Rs.AbsolutePosition /FormB.Rs.RecordCount)*100 '假如Rs是窗体B 中定义的变量
'Rs.AbsolutePosition /Rs.RecordCount 记录集的当前记录除以记录集的所有记录 得到已打开的记录比例
End Sub
Dim instance As ListView
Dim i As IntegerPrivate Sub Form_Load()
Me.Left = (MDIMainFrm.ScaleWidth - Me.Width) / 2
Me.Top = (MDIMainFrm.ScaleHeight - Me.Height) / 2
CstLv.ColumnHeaderIcons = ImageList1
CstLv.ColumnHeaders(1).Icon = 1
sql = "select CstID,CstName,CstTel,CstAddr,CstPYCode,CstMngor,CstMngorTel,CstMngorPY," _
& "CstPrice,CstMny,CstInure,CstType,CstArea,OpData,CstOptor,Rmk from CstInfo"
Call addInfo
End SubPublic Sub addInfo()
Call OpenConn
rs.Open sql, cn, 1, 1
Do While Not rs.EOF
LogoFrm.intC = LogoFrm.intC + 1 '要在这里加才能使进度条和程序进程挂钩
DoEvents '使timer能够触发
Select Case rs.Fields("CstType")
Case "有约大户机关"
Lvico = 2
Case "无约一般散户"
Lvico = 3
Case "知名人士"
Lvico = 4
Case "政界要人"
Lvico = 5
End Select Set addlv = CstLv.ListItems.Add(, , rs.Fields("CstID"), , Lvico)
addlv.SubItems(1) = rs.Fields("CstName")
addlv.SubItems(2) = rs.Fields("CstTel")
addlv.SubItems(3) = rs.Fields("CstAddr")
addlv.SubItems(4) = rs.Fields("CstMngor")
addlv.SubItems(5) = rs.Fields("CstMngorTel")
addlv.SubItems(6) = rs.Fields("CstPrice")
addlv.SubItems(7) = rs.Fields("CstMny")
addlv.SubItems(8) = rs.Fields("CstInure")
addlv.SubItems(9) = rs.Fields("CstType")
addlv.SubItems(10) = rs.Fields("CstArea")
addlv.SubItems(11) = rs.Fields("OpData")
addlv.SubItems(12) = rs.Fields("Rmk")
rs.MoveNext
Loop
Call CloseConn
End SubLogoFrm的代码
Public intC As Integer '定义public类型,使MainFrm窗体可以使用Private Sub Form_Load()
intc = 0
End SubPrivate Sub Form_Unload(Cancel As Integer)
Set LogoFrm = Nothing
End SubPrivate Sub Timer1_Timer()
'i=i+1 取消
ProgressBar1.Value = intC
If intC > 99 Then
timer1.Enabled = False '应禁止timer1再触发
Load LoginFrm
LoginFrm.Show 1
Unload Me '应当最后卸载
End If
End Sub
Dim addlist As ListItem
Dim instance As ListView
Dim i As IntegerPrivate Sub Form_Load()
Me.Left = (MDIMainFrm.ScaleWidth - Me.Width) / 2
Me.Top = (MDIMainFrm.ScaleHeight - Me.Height) / 2
CstLv.ColumnHeaderIcons = ImageList1
CstLv.ColumnHeaders(1).Icon = 1
sql = "select CstID,CstName,CstTel,CstAddr,CstPYCode,CstMngor,CstMngorTel,CstMngorPY," _
& "CstPrice,CstMny,CstInure,CstType,CstArea,OpData,CstOptor,Rmk from CstInfo"
Call addInfo
End SubPublic Sub addInfo()
Call OpenConn
rs.Open sql, cn, 1, 1
Do While Not rs.EOF
LogoFrm.intC = LogoFrm.intC + 1 '要在这里加才能使进度条和程序进程挂钩
DoEvents '使timer能够触发
Select Case rs.Fields("CstType")
Case "有约大户机关"
Lvico = 2
Case "无约一般散户"
Lvico = 3
Case "知名人士"
Lvico = 4
Case "政界要人"
Lvico = 5
End Select Set addlv = CstLv.ListItems.Add(, , rs.Fields("CstID"), , Lvico)
addlv.SubItems(1) = rs.Fields("CstName")
addlv.SubItems(2) = rs.Fields("CstTel")
addlv.SubItems(3) = rs.Fields("CstAddr")
addlv.SubItems(4) = rs.Fields("CstMngor")
addlv.SubItems(5) = rs.Fields("CstMngorTel")
addlv.SubItems(6) = rs.Fields("CstPrice")
addlv.SubItems(7) = rs.Fields("CstMny")
addlv.SubItems(8) = rs.Fields("CstInure")
addlv.SubItems(9) = rs.Fields("CstType")
addlv.SubItems(10) = rs.Fields("CstArea")
addlv.SubItems(11) = rs.Fields("OpData")
addlv.SubItems(12) = rs.Fields("Rmk")
rs.MoveNext
Loop
Call CloseConn
End Sub
LogoFrm的代码 Public intC As Integer '定义public类型,使MainFrm窗体可以使用Private Sub Form_Load()
intc = 0
End SubPrivate Sub Form_Unload(Cancel As Integer)
Set LogoFrm = Nothing
End SubPrivate Sub Timer1_Timer()
'i=i+1 取消
ProgressBar1.Value = intC
If intC > 99 Then
timer1.Enabled = False '应禁止timer1再触发
Load LoginFrm
LoginFrm.Show 1
Unload Me '应当最后卸载
End If
End Sub
email [email protected]
qq 940965619
MDI做为启动窗体,在MDI的load事件中:
formB.hide
fromA.show
fromA条进度和formB添加数据都在这儿写
数据添加完成后
unload formA 卸载A窗体
formC.show 显示登录窗体这样formB是始终隐藏的,直到formC登录成功再formB.show.......
因为加载数据库数据需要比较长的时间,显示数据库数据的窗口暂时需要隐藏,
数据库数据加载的进度必须通过另一个窗口的进度条显示出来这就存在两个窗口间数据的访问问题
Form1.Ctrl.val=Form2.Ctrl.Val ’在控件前加窗体名就可以了
Form1.Var=Form2.Var ’在变量前加窗体名就可以了
'设置从MDI启动:Private Sub MDIForm_Load()
dim rs as recordset
dim sql as string
dim i as long sql = "select CstID,CstName,CstTel,CstAddr,CstPYCode,CstMngor,CstMngorTel,CstMngorPY," _
& "CstPrice,CstMny,CstInure,CstType,CstArea,OpData,CstOptor,Rmk from CstInfo"
Call OpenConn
rs.Open sql, cn, 1, 1 formB.hide
formA.show
formA.ProgressBar1.max = rs.recordsetcount
formA.ProgressBar1.min = 0
formA.ProgressBar1.Value = 0 Do While Not rs.EOF
doEvents
Select Case rs.Fields("CstType")
Case "有约大户机关"
Lvico = 2
Case "无约一般散户"
Lvico = 3
Case "知名人士"
Lvico = 4
Case "政界要人"
Lvico = 5
End Select
'B窗体控件添加数据
Set addlv = formB.CstLv.ListItems.Add(, , rs.Fields("CstID"), , Lvico)
addlv.SubItems(1) = rs.Fields("CstName")
'略......
'A窗体显示进度条
i=i+1
formA.ProgressBar1.Value = i
rs.MoveNext
Loop
Call CloseConn
unload formA '关闭A窗体
formC.show '显示登录窗体
End Sub'窗体C的代码:
Private Sub LoginCmd_Click()
Call OpenConn
sql = "select * from UserID where Uname='" & UIDComb.Text & "'"
rs.Open sql, cn, 1, 1
If convert(PassComb.Text) = IIf(Trim(IsNull(rs.Fields("Upass"))), "", _
convert(Trim(rs.Fields("Upass")))) Then
Optor = rs.Fields("Uname")
Branch = rs.Fields("Bran")
Power = rs.Fields("Power")
Call CloseConn
Unload Me
formB.show '登录成功显示B窗体
Else
MsgBox "密码错误!", 48, "错误提示"
PassComb.SetFocus
Exit Sub
End If
End Sub
只是组织了一下你贴的现成代码的思路,没的测试,窗体名称也是用的你的贴图中的ABC,参考一下吧......