
Problema en For Next
Publicado por Antoñito Manuel (30 intervenciones) el 11/09/2014 20:03:12
Hola a todos:
Espero que me podáis ayudar, estoy haciendo un programa con bloques de números para grabarlo en Access 2010, en tabla de 2003 con Visual Basic 6.0, pero me encuentro con un comunicado que no me aclaro, que dice "Error en tiempo de ejecución: se requiere objeto.
Pongo el código por si veis el quid de la cuestión.
Gracias de antemano.
Dim ORDEN As Long
Dim Nº1 As Byte
Dim Nº2 As Byte
Dim Nº3 As Byte
Dim Nº4 As Byte
Dim Nº5 As Byte
Dim Cuenta As Long
Dim ORDEN2 As Long
Dim P1 As Byte
Dim P2 As Byte
Dim P3 As Byte
Dim P4 As Byte
Dim P5 As Byte
Dim ORDENBUCLE As Long
Dim ORDENBUCLE2 As Long
Dim Cantidad As Long
Dim Decremento As Long
Dim Incremento As Long
Dim Porcentaje1 As Single
Dim Porcentaje2 As Single
Dim Recordset As Adodc
Private Sub Fin_Click()
End
End Sub
Private Sub Inserta_Click()
Inserta.Enabled = False
Adodc1.Recordset.AddNew
ORDEN = 0
Cuenta = 0
' Cantidad es la cantidad de combinaciones del Bloque
Cantidad = 2542512
Decremento = Cantidad
Incremento = Cuenta
' Prepara para introducir Datos.
For Nº1 = 1 To 46
Label2.Caption = Nº1
DoEvents
For Nº2 = 2 To 47
If Nº2 > Nº1 Then
' Muestra los Números de la Col 2
Label3.Caption = Nº2
DoEvents
End If
For Nº3 = 3 To 48
If Nº3 > Nº2 And Nº2 > Nº1 Then
' Muestra los Números de la Col 3
Label4.Caption = Nº3
DoEvents
End If
For Nº4 = 4 To 49
If Nº4 > Nº3 And Nº3 > Nº2 And Nº2 > Nº1 Then
' Muestra los Números de la Col 4
Label5.Caption = Nº4
DoEvents
End If
For Nº5 = 5 To 50
If Nº5 > Nº4 And Nº4 > Nº3 And Nº3 > Nº2 And Nº2 > Nº1 Then
' Muestra los Números de la Col 5
Label6.Caption = Nº5
DoEvents
' ORDEN es el Contador de Registros
ORDEN = ORDEN + 1
' Muestra los Nºs. del Contador
Registr.Text = ORDEN
' Muestra el Contador Cuenta en Label8
Cuenta = Cuenta + 1
Label8.Caption = Cuenta
' Asigna los Nºs. de Columnas
text1.Text = Nº1
text2.Text = Nº2
text3.Text = Nº3
text4.Text = Nº4
text5.Text = Nº5
Porcentaje1 = (Cuenta * 100) / Cantidad
Porcentaje2 = 100 - Porcentaje1
Label9.Caption = Format(Porcentaje1, "#0.00") & " %"
Label10.Caption = Format(Porcentaje2, "#0.00") & " %"
Decremento = Decremento - 1
Label14.Caption = Decremento
Incremento = Incremento + 1
Label13.Caption = Incremento
DoEvents
Call Graba
End If
If Nº1 = 46 And Nº2 = 47 And Nº3 = 48 And Nº4 = 49 And Nº5 = 50 Then
MsgBox ("Por fin se ha llegado al Final de las Combinaciones.")
End
End If
' Prepara para introducir nuevos Datos.
Next Nº5
Next Nº4
Next Nº3
Next Nº2
Next Nº1
End Sub
Public Sub Graba()
With recorset
If Adodc1.Recordset.EOF And Adodc1.Recordset.BOF = False Then
MsgBox ("No hay Registros")
Adodc1.Recordset.MoveFirst
Else
Adodc1.Recordset.AddNew
Adodc1.Recordset.MoveLast
Adodc1.Recordset.Fields("ORDEN") = ORDEN
Adodc1.Recordset.Fields("Col1") = Nº1
Adodc1.Recordset.Fields("Col2") = Nº2
Adodc1.Recordset.Fields("Col3") = Nº3
Adodc1.Recordset.Fields("Col4") = Nº4
Adodc1.Recordset.Fields("Col5") = Nº5
Adodc1.Recordset.Update
Adodc1.Refresh
End If
End With
End Sub
Espero que me podáis ayudar, estoy haciendo un programa con bloques de números para grabarlo en Access 2010, en tabla de 2003 con Visual Basic 6.0, pero me encuentro con un comunicado que no me aclaro, que dice "Error en tiempo de ejecución: se requiere objeto.
Pongo el código por si veis el quid de la cuestión.
Gracias de antemano.
Dim ORDEN As Long
Dim Nº1 As Byte
Dim Nº2 As Byte
Dim Nº3 As Byte
Dim Nº4 As Byte
Dim Nº5 As Byte
Dim Cuenta As Long
Dim ORDEN2 As Long
Dim P1 As Byte
Dim P2 As Byte
Dim P3 As Byte
Dim P4 As Byte
Dim P5 As Byte
Dim ORDENBUCLE As Long
Dim ORDENBUCLE2 As Long
Dim Cantidad As Long
Dim Decremento As Long
Dim Incremento As Long
Dim Porcentaje1 As Single
Dim Porcentaje2 As Single
Dim Recordset As Adodc
Private Sub Fin_Click()
End
End Sub
Private Sub Inserta_Click()
Inserta.Enabled = False
Adodc1.Recordset.AddNew
ORDEN = 0
Cuenta = 0
' Cantidad es la cantidad de combinaciones del Bloque
Cantidad = 2542512
Decremento = Cantidad
Incremento = Cuenta
' Prepara para introducir Datos.
For Nº1 = 1 To 46
Label2.Caption = Nº1
DoEvents
For Nº2 = 2 To 47
If Nº2 > Nº1 Then
' Muestra los Números de la Col 2
Label3.Caption = Nº2
DoEvents
End If
For Nº3 = 3 To 48
If Nº3 > Nº2 And Nº2 > Nº1 Then
' Muestra los Números de la Col 3
Label4.Caption = Nº3
DoEvents
End If
For Nº4 = 4 To 49
If Nº4 > Nº3 And Nº3 > Nº2 And Nº2 > Nº1 Then
' Muestra los Números de la Col 4
Label5.Caption = Nº4
DoEvents
End If
For Nº5 = 5 To 50
If Nº5 > Nº4 And Nº4 > Nº3 And Nº3 > Nº2 And Nº2 > Nº1 Then
' Muestra los Números de la Col 5
Label6.Caption = Nº5
DoEvents
' ORDEN es el Contador de Registros
ORDEN = ORDEN + 1
' Muestra los Nºs. del Contador
Registr.Text = ORDEN
' Muestra el Contador Cuenta en Label8
Cuenta = Cuenta + 1
Label8.Caption = Cuenta
' Asigna los Nºs. de Columnas
text1.Text = Nº1
text2.Text = Nº2
text3.Text = Nº3
text4.Text = Nº4
text5.Text = Nº5
Porcentaje1 = (Cuenta * 100) / Cantidad
Porcentaje2 = 100 - Porcentaje1
Label9.Caption = Format(Porcentaje1, "#0.00") & " %"
Label10.Caption = Format(Porcentaje2, "#0.00") & " %"
Decremento = Decremento - 1
Label14.Caption = Decremento
Incremento = Incremento + 1
Label13.Caption = Incremento
DoEvents
Call Graba
End If
If Nº1 = 46 And Nº2 = 47 And Nº3 = 48 And Nº4 = 49 And Nº5 = 50 Then
MsgBox ("Por fin se ha llegado al Final de las Combinaciones.")
End
End If
' Prepara para introducir nuevos Datos.
Next Nº5
Next Nº4
Next Nº3
Next Nº2
Next Nº1
End Sub
Public Sub Graba()
With recorset
If Adodc1.Recordset.EOF And Adodc1.Recordset.BOF = False Then
MsgBox ("No hay Registros")
Adodc1.Recordset.MoveFirst
Else
Adodc1.Recordset.AddNew
Adodc1.Recordset.MoveLast
Adodc1.Recordset.Fields("ORDEN") = ORDEN
Adodc1.Recordset.Fields("Col1") = Nº1
Adodc1.Recordset.Fields("Col2") = Nº2
Adodc1.Recordset.Fields("Col3") = Nº3
Adodc1.Recordset.Fields("Col4") = Nº4
Adodc1.Recordset.Fields("Col5") = Nº5
Adodc1.Recordset.Update
Adodc1.Refresh
End If
End With
End Sub
Valora esta pregunta


0