Я столкнулся с необычной проблемой.У меня есть набор процедур для добавления группы элементов управления на разных страницах. Один для добавления фреймов
Public Sub AddFramesNP(form, pagina, nrpag)
Set cControl = form!main.Pages(nrpag).Controls.Add("Forms.Frame.1", "io" & masina, True)
With cControl
.Caption = "IO"
.Width = 210
.Height = 360
.Top = 2
.Left = 5
End With
Set cControl = form!main.Pages(nrpag).Controls.Add("Forms.Frame.1", "nio" & masina, True)
With cControl
.Caption = "nIO"
.Width = 210
.Height = 360
.Top = 2
.Left = 220
End With
Set cControl = form!main.Pages(nrpag).Controls.Add("Forms.Frame.1", "desc" & masina, True)
With cControl
.Caption = "Descriere"
.Width = 210
.Height = 360
.Top = 2
.Left = 435
End With
End Sub
Один для добавления меток
Public Sub AddLabsNP(form, pagina, replicare, den, den1, den2)
Dim k, l As Integer
If den = 1 Then
Set cControl = form.Controls("io" & masina).Add("Forms.Label.1", "lden1" & pagina, True)
With cControl
.Caption = den1
.Width = 40
.Height = 10
.Top = 5
.Left = 5
End With
Set cControl = form.Controls("nio" & masina).Add("Forms.Label.1", "lden1nio" & pagina, True)
With cControl
.Caption = den1
.Width = 40
.Height = 10
.Top = 5
.Left = 5
End With
End If
If replicare = 1 Then
Set cControl = form.Controls("io" & masina).Add("Forms.Label.1", "lden2" & pagina, True)
With cControl
.Caption = den2
.Width = 40
.Height = 10
.Top = 165
.Left = 5
End With
Set cControl = form.Controls("nio" & masina).Add("Forms.Label.1", "lden2nio" & pagina, True)
With cControl
.Caption = den2
.Width = 40
.Height = 10
.Top = 165
.Left = 5
End With
End If
Do While l < replicare + 1
Set cControl = form.Controls("io" & masina).Add("Forms.Label.1", "lreper" & l & pagina, True)
With cControl
.Caption = "Reper"
.Width = 35
.Height = 9
.Top = 25 + k
.Left = 5
End With
Set cControl = form.Controls("io" & masina).Add("Forms.Label.1", "lsn" & l & pagina, True)
With cControl
.Caption = "SN"
.Width = 35
.Height = 9
.Top = 25 + k
.Left = 70
End With
Set cControl = form.Controls("io" & masina).Add("Forms.Label.1", "lqt" & l & pagina, True)
With cControl
.Caption = "Qt"
.Width = 35
.Height = 9
.Top = 25 + k
.Left = 155
End With
Set cControl = form.Controls("nio" & masina).Add("Forms.Label.1", "lrepernio" & l & pagina, True)
With cControl
.Caption = "Reper"
.Width = 35
.Height = 9
.Top = 25 + k
.Left = 5
End With
Set cControl = form.Controls("nio" & masina).Add("Forms.Label.1", "lsnnio" & l & pagina, True)
With cControl
.Caption = "SN"
.Width = 35
.Height = 9
.Top = 25 + k
.Left = 70
End With
Set cControl = form.Controls("nio" & masina).Add("Forms.Label.1", "lqtnio" & l & pagina, True)
With cControl
.Caption = "Qt"
.Width = 35
.Height = 9
.Top = 25 + k
.Left = 155
End With
k = k + 155
l = l + 1
Loop
End Sub
И один для добавления комбинированных списков
Public Sub AddCboxsNP(form, pagina, replicare, nrcboxs)
Dim k, l As Integer
l = 1
Do While l < nrcboxs + 1
Set cControl = form.Controls("io" & masina).Add("Forms.ComboBox.1", "combo" & l & pagina, True)
With cControl
.Width = 60
.Height = 14
.Top = 40 + k
.Left = 5
End With
Set cControl = form.Controls("io" & masina).Add("Forms.TextBox.1", "sn" & l & pagina, True)
With cControl
.Width = 80
.Height = 28
.Top = 40 + k
.Left = 70
End With
Set cControl = form.Controls("io" & masina).Add("Forms.TextBox.1", "q" & l & pagina, True)
With cControl
.Width = 30
.Height = 14
.Top = 40 + k
.Left = 155
End With
Set cControl = form.Controls("nio" & masina).Add("Forms.ComboBox.1", "combo" & l & "nio" & pagina, True)
With cControl
.Width = 60
.Height = 14
.Top = 40 + k
.Left = 5
End With
Set cControl = form.Controls("nio" & masina).Add("Forms.TextBox.1", "sn" & l & "nio" & pagina, True)
With cControl
.Width = 80
.Height = 28
.Top = 40 + k
.Left = 70
End With
Set cControl = form.Controls("nio" & masina).Add("Forms.TextBox.1", "q" & l & "nio" & pagina, True)
With cControl
.Width = 30
.Height = 14
.Top = 40 + k
.Left = 155
End With
If replicare = 2 Then
Set cControl = form.Controls("io" & masina).Add("Forms.ComboBox.1", "combo" & l & "2" & pagina, True)
With cControl
.Width = 60
.Height = 14
.Top = 200 + k
.Left = 5
End With
Set cControl = form.Controls("io" & masina).Add("Forms.TextBox.1", "sn" & l & "2" & pagina, True)
With cControl
.Width = 80
.Height = 28
.Top = 200 + k
.Left = 70
End With
Set cControl = form.Controls("io" & masina).Add("Forms.TextBox.1", "q" & l & "2" & pagina, True)
With cControl
.Width = 30
.Height = 14
.Top = 200 + k
.Left = 155
End With
Set cControl = form.Controls("nio" & masina).Add("Forms.ComboBox.1", "combo" & l & "2nio" & pagina, True)
With cControl
.Width = 60
.Height = 14
.Top = 200 + k
.Left = 5
End With
Set cControl = form.Controls("nio" & masina).Add("Forms.TextBox.1", "sn" & l & "2nio" & pagina, True)
With cControl
.Width = 80
.Height = 28
.Top = 200 + k
.Left = 70
End With
Set cControl = form.Controls("nio" & masina).Add("Forms.TextBox.1", "q" & l & "2nio" & pagina, True)
With cControl
.Width = 30
.Height = 14
.Top = 200 + k
.Left = 155
End With
End If
k = k + 35
l = l + 1
Loop
End Sub
Проблема в том, что когда я хочу использовать их, я не знаю почему, но они не работают для страницы 3 (я использую их для страницы 2, и они работают нормально).Я должен использовать это только для этих 2 страниц (2 и 3).И у меня есть другой набор процедур для страниц, которые содержат несколько страниц, которые отлично работают на 3 страницах.Я действительно не понимаю, в чем проблема.Я пытался добавить компоненты вручную (через код), и это работало нормально.Я сделал что-то, что делает эту процедуру работать только 1 раз?Я не вижу, что, потому что то же самое с другими процедурами, которые работают несколько раз!Большое спасибо за вашу помощь!