My UserControl
:
Весь код от UserControl
:
Option Explicit
Dim cnn As Connection
Dim indice As Integer
Public Property Get AddTypeID() As Integer
AddTypeID = cmbAddExample(indice).ItemData(cmbAddExample(indice).ListIndex)
End Property
Public Property Let AddTypeID(ByVal Value As Integer)
cmbAddExample(indice).ItemData(cmbAddExample(indice).ListIndex) = Value
End Property
Public Property Get AddType() As String
AddType = cmbAddExample(indice).Text
End Property
Public Property Let AddType(ByVal Value As String)
cmbAddExample(indice).Text = Value
End Property
Public Property Get AddNumber() As String
AddNumber = Text1(indice).Text
End Property
Public Property Let AddNumber(ByVal Value As String)
Text1(indice).Text = Value
End Property
Public Sub CargarComboUno(ByVal Data As ADODB.Recordset)
cmbAddExample(indice).Clear
Data.Open "SELECT idTipo, tipo FROM tipo_Numero", cnn, adOpenDynamic, adLockOptimistic
Do While Not Data.EOF
cmbAddExample(indice).AddItem Data!tipo
cmbAddExample(indice).ItemData(cmbAddExample(indice).NewIndex) = Data!idTipo
Data.MoveNext
Loop
End Sub
Private Sub IniciarConexion()
Set cnn = New ADODB.Connection
With cnn
.CursorLocation = adUseClient
.Open "PROVIDER=MSDASQL;driver={SQL Server};server=database;uid=database;pwd=database;database=database;"
End With
End Sub
Private Sub UserControl_Initialize()
Call IniciarConexion
End Sub
Мой интерфейс (форма) :
Añadir Button
или Добавить Button
служит для копирования UserControl
данных в PictureBox
, оставляю описательный GIF
:
Код для Añadir Button
или Добавить Button
:
Private Sub btnAñadir_Click()
Set rs = New Recordset
rs.CursorLocation = adUseServer
indice = indice + 1
Load uc1(indice)
Set uc1(indice).Container = Picture1
uc1(indice).Visible = True
uc1(indice).Top = IIf(indice = 1, 0, uc1(indice - 1).Top + uc1(indice - 1).Height + 20)
uc1(indice).CargarComboUno rs
uc1(indice).AddNumber = uc1(0).AddNumber
uc1(0).AddNumber = ""
uc1(indice).AddType = uc1(0).AddType
uc1(0).AddType = ""
Picture1.Visible = True
If indice = 3 Then
Me.btnAñadir.Enabled = False
End If
End Sub
Проблема в том, что Я не могу сохранить значения, потому что появляется следующая ошибка: R un-time error'381 ': invalid property array index
, когда я нажимаю Guardar Button
или Сохранить Button
.
В этой строке:
AddTypeID = cmbAddExample(indice).ItemData(cmbAddExample(indice).ListIndex)
Код на Гвардара Button
или Сохранить Button
:
Private Sub btnGuardar_Click()
Dim i As Integer
Dim id As String
Dim sel As Integer
Call IniciarConexion
Dim CM As ADODB.Command
For i = 0 To indice
id = uc1(i).AddTypeID
sel = uc1(i).AddNumber
Set CM = New ADODB.Command
Set CM.ActiveConnection = cnn
CM.CommandType = adCmdText
CM.CommandText = "INSERT INTO ejemplodOS(combo,nombre) VALUES (?,?)"
CM.Parameters.Append CM.CreateParameter("@cmb", adInteger, , , id)
CM.Parameters.Append CM.CreateParameter("@txt", adInteger, , , sel)
CM.Execute , , adExecuteNoRecords
Next
End Sub
Итак, какое-либо суждение? Может кто-нибудь помочь мне решить эту проблему?
Это с линией AddTypeID = 1