Ayuda con un programa de VBNET que no funciona correctamente

Iniciado por zalazar16, 6 Agosto 2017, 01:57 AM

0 Miembros y 1 Visitante están viendo este tema.

zalazar16

Hola amigos de el Foro el Hacker, pasaba por aquí para preguntarles si alguien me puede ayudar con un pequeño problemita.

Verán tengo el código fuente de un programa hecho en VBNET, el programa corre a la perfección...pero..... Hay 2 botones en dicho programa para borrar todas las jugadas y una sola seleccionada, el primer botón funciona a la perfección, borra todo, pero cuando queremos borrar una o más jugadas de la pantalla marca error y no lo hace.....

Aquí un poco más detallado el procedimiento:

arriba les muestro una foto de las jugadas en pantalla.

ahora bien cuando hago clic en el botón elimina jugada la vacía completamente, o sea, funciona bien este botón.



ahora bien, si quiero borrar una jugada porque la escribí mal, o ya no va, debería de borrar solo las marcadas:



PEROOOO....

me tira este error:



Espero me puedan ayudar, aqui les dejo un ZIP con el código Fuente del Programa, Feliz noche, día o tarde... o bien como sea donde estes jajajaja  ;D

https://www.mediafire.com/file/7ob8gxc6on2gwkv/CODIGO%20FUENTE%20L.zip

Serapis

Bufff... el formulario tiene unas 16.400 líneas de código... Eso es casi 1Mb. Pero es que además el código es completamente espagueti... Desisto de perder tiempo revisándolo.

Si te diré al menos, que cuando tengas que eliminar varios ítems, recórrelo siempre desde el final hacia atrás... si tienes que eliminar el íitem 25 y el 144, si eliminas primero el 25, el 144 ocupará luego la posición 143... si eliminas primeor el 144 (que ocupa esa posición), podrás luego perfectamente eliminar el 25 (que también sigue estando en su posición)...
Se llega al caso de qu si hay 150 elementos y hay que eliminar 10, si empiezas desde abajo, cuando vayas a eliminar el 144, ya ni siquiera existe el ítem 144. Mientras exista un ítem, no hacerlo bien implica eliminar uno erróneo y dejar (posiblemente) que debiera habers eeliminado (depende de si están contiguos, salteados, etc...).
Así tatar de eliminar un ítem inexistente arroja errores.

No obstante como además lo tienes conectado a una base de datos, puede que el error te lo esté dando por allí, antes de actualizar la vista.

En fin elimina los ítems deseados empezando desde el último y avanzando hacia atrás... y a ver si te sigue generando el error.

Desde luego bucear en ese código, como se dice a veces "ni cobrando"... Crea clases , encapsula métodos en ellas y pásalas a otros módulos... No dejes todo el peso en un único formulario... Verlo es como entrar en una ciudad por donde pasó un sunami, solo se ve CAOS  :silbar: :silbar: :silbar:

Eleкtro

#2
Cita de: NEBIRE en  6 Agosto 2017, 06:52 AMBufff... el formulario tiene unas 16.400 líneas de código... Eso es casi 1Mb. Pero es que además el código es completamente espagueti... Desisto de perder tiempo revisándolo.

...Pues no te puedes hacer una idea de cómo era el código fuente "original" :xD: http://foro.elhacker.net/ingenieria_inversa/una_duda_sobre_un_programa_con_codigo_fuente-t472356.0.html;msg2133052#msg2133052




1. Se agradece que hayas puesto imágenes, agradezco mucho la gente que se toma el tiempo de escribir y explicar bien las cosas. Pero te ha faltado mostrar lo más importante: el bloque de código del controlador del evento Button.Click del botón "Elim/Marcados"...

2. En la imagen de la caja de error estás tapando con letras rojas la última palabra del mensaje de error, no sé que narices pone ahí (¿"objeto de comando" tal vez?). De todas formas traducir/hacerse a la idea del significado de un error con mensajes de error en Español de por si ya es una tarea bastante odiosa. Te sugiero que modifiques el idioma de la aplicación a Inglés (y con ello los mensajes de error):
Código (vbnet) [Seleccionar]
Application.CurrentCulture = New CultureInfo("en-US")
Thread.CurrentThread.CurrentUICulture = New CultureInfo("en-US")

...de esta forma el mensaje de error será bastante más comprensible para todos (ya que la gran mayoría de programadores están acostumbrados a programar en Inglés y lidiar con mensajes del depurador generados en Inglés para las excepciones producidas) y podrás encontrar muchísimo más facilmente información en la World Wide Web sobre un mensaje de error específico que no conozcas o que sea poco habitual...

3. Dale a "Detalles" en la caja de error y muéstranos el rastreo de la pila de llamadas, todo el mensaje al completo (click derecho > seleccionar todo > copiar). Ahí debería indicarte al menos la linea del código fuente que ha producido la excepción, y con eso ya tendrías alguna pista más para que trates de depurar el código por ti mismo. Te muestro un ejemplo de un stack-trace de una excepción cualquiera:

Código (ini,11) [Seleccionar]
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IO.FileNotFoundException: Could not find file 'C:\fsdfsdf'.
File name: 'C:\fsdfsdf'
  at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
  at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
  at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
  at System.IO.File.Open(String path, FileMode mode)
  at WindowsApp3.Form1.Button1_Click(Object sender, EventArgs e) in C:\Visual Studio Projects\WindowsApp3\WindowsApp3\Form1.vb:line 26
  at System.Windows.Forms.Control.OnClick(EventArgs e)
  at System.Windows.Forms.Button.OnClick(EventArgs e)
  ...





Es un puto horror tratar de depurar esto. Podrías probar a empezar por expandir las variables especificadas dentro de las cadenas de texto de las sentencias 'DELETE' para comprobar que valores estás enviando exactamente en esas peticiones de la base de datos.

Código (vbnet) [Seleccionar]
Me._Button3.Text = "Elim/Marcados"

...

Private Sub Button3_Click(ByVal sender As Object, ByVal e As EventArgs) Handles _Button3.Click
   Dim str3 As String = ""
   Dim str4 As String = ""
   Dim str5 As String = ""
   Dim str6 As String = ""
   Dim str7 As String = ""
   Dim str8 As String = ""
   Dim num5 As Double = 0
   Dim num As Integer = 0
   Dim box As CheckedListBox = Me._CheckedListBox2
   num = (Me._CheckedListBox2.CheckedItems.Count - 1)
   Do While (num >= 0)
       Dim str22 As String
       Dim str23 As String
       Dim str24 As String
       Dim str25 As String
       str3 = Me._CheckedListBox2.CheckedItems.Item(num).ToString
       If (Strings.Len(Strings.Trim(str3)) = &H1C) Then
           str4 = Strings.Mid(str3, 1, 3)
           str6 = Strings.Mid(str3, 5, 5)
           str5 = Strings.Mid(str3, 20, 4)
           str7 = Strings.Mid(str3, &H1A, 3)
           str8 = String.Concat(New String() {str8, str7, str4, str6, str5})
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H1D) Then
           str4 = Strings.Mid(str3, 1, 3)
           str6 = Strings.Mid(str3, 5, 5)
           str5 = Strings.Mid(str3, &H15, 4)
           str7 = Strings.Mid(str3, &H1B, 3)
           str8 = String.Concat(New String() {str8, str7, str4, str6, str5})
       End If
       If (Strings.Len(Strings.Trim(str3)) = 30) Then
           str4 = Strings.Mid(str3, 1, 3)
           str6 = Strings.Mid(str3, 5, 5)
           str5 = Strings.Mid(str3, &H21, 4)
           str7 = Strings.Mid(str3, &H1A, 3)
           str8 = String.Concat(New String() {str8, str7, str4, str6, str5})
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H1F) Then
           str4 = Strings.Mid(str3, 1, 3)
           str6 = Strings.Mid(str3, 5, 5)
           str5 = Strings.Space(4)
           str7 = Strings.Mid(str3, &H1D, 3)
           str8 = String.Concat(New String() {str8, str7, str4, str6, str5})
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H20) Then
           str4 = Strings.Mid(str3, 1, 3)
           str6 = Strings.Mid(str3, 5, 5)
           str5 = Strings.Space(4)
           str7 = Strings.Mid(str3, 30, 3)
           If (StringType.StrCmp(Strings.Mid(str3, 30, 1), "", False) <> 0) Then
               str7 = Strings.Mid(str3, &H1C, 3)
           End If
           str8 = String.Concat(New String() {str8, str7, str4, str6, str5})
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H21) Then
           str4 = (Strings.Mid(str3, 1, 2) & " ")
           str6 = Strings.Mid(str3, 6, 5)
           str5 = Strings.Space(4)
           str7 = Strings.Mid(str3, &H1F, 3)
           str8 = String.Concat(New String() {str8, str7, str4, str6, str5})
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H22) Then
           str4 = Strings.Mid(str3, 1, 2)
           str6 = Strings.Mid(str3, 5, 5)
           str5 = Strings.Mid(str3, &H15, 9)
           str7 = Strings.Mid(str3, &H20, 3)
           str8 = String.Concat(New String() {str8, str7, str4, str6, str5})
       End If
       Me._CheckedListBox2.Items.Remove(RuntimeHelpers.GetObjectValue(Me._CheckedListBox2.CheckedItems.Item(num)))
       Dim str13 As String = str7
       Dim str14 As String = str4
       Dim inputStr As String = str6
       Dim str16 As String = str5
       num5 = Conversion.Val(inputStr)
       Dim connection3 As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=BD2.mdb")
       If (Strings.Len(Strings.Trim(str3)) = &H1C) Then
           str23 = "delete from imprimir where cod+numero+mid(descrip,1,4)=@var10+@var11+mid(@var13,1,4)"
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H1D) Then
           str23 = "delete from imprimir where cod+numero=@var10+@var11"
       End If
       If (Strings.Len(Strings.Trim(str3)) = 30) Then
           str23 = "delete from imprimir where cod+mid(numero,1,3)+mid(descrip,1,4)=@var10+@var11+@var13"
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H1F) Then
           str23 = "delete from imprimir where cod+numero=@var10+@var11"
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H20) Then
           str23 = "delete from imprimir where cod+numero=@var10+@var11"
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H21) Then
           str23 = "delete from imprimir where cod+numero=@var10+@var11"
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H22) Then
           str23 = "delete from imprimir where cod+mid(numero,1,2)+descrip=@var10+@var11+@var13"
       End If
       Dim command3 As New OleDbCommand(str23, connection3)
       command3.CommandType = CommandType.Text
       If (Strings.Len(Strings.Trim(str3)) = &H1C) Then
           command3.Parameters.Add("@VAR10", str13)
           command3.Parameters.Add("@VAR11", str14)
           command3.Parameters.Add("@VAR13", str16)
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H1D) Then
           command3.Parameters.Add("@VAR10", str13)
           command3.Parameters.Add("@VAR11", str14)
           command3.Parameters.Add("@VAR13", str16)
       End If
       If (Strings.Len(Strings.Trim(str3)) = 30) Then
           command3.Parameters.Add("@VAR10", str13)
           command3.Parameters.Add("@VAR11", str14)
           command3.Parameters.Add("@VAR13", str16)
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H1F) Then
           command3.Parameters.Add("@VAR10", str13)
           command3.Parameters.Add("@VAR11", str14)
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H20) Then
           command3.Parameters.Add("@VAR10", str13)
           command3.Parameters.Add("@VAR11", str14)
           command3.Parameters.Add("@VAR13", str16)
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H21) Then
           command3.Parameters.Add("@VAR10", str13)
           command3.Parameters.Add("@VAR11", str14)
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H22) Then
           command3.Parameters.Add("@VAR10", str13)
           command3.Parameters.Add("@VAR11", str14)
           command3.Parameters.Add("@VAR13", str16)
       End If
       connection3.Open()
       command3.ExecuteNonQuery()
       connection3.Close()
       Dim connection4 As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=BD2.mdb")
       Dim str19 As String = Strings.Mid(StringType.FromDate(DateAndTime.Today), 1, 2)
       Dim str20 As String = Strings.Mid(StringType.FromDate(DateAndTime.Today), 4, 2)
       Dim str18 As String = Strings.Mid(StringType.FromDate(DateAndTime.Today), 7, 4)
       Me.vfecha = DateAndTime.Today
       If (Strings.Len(Strings.Trim(str3)) = &H1C) Then
           str24 = "select monto from acumula where cod+numero+mid(signo,1,4)=@vcod+@vnum+mid(@var03,1,4) and fecha=@vfecha"
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H1D) Then
           str24 = "select monto from acumula where cod+numero=@vcod+@vnum and fecha=@vfecha"
       End If
       If (Strings.Len(Strings.Trim(str3)) = 30) Then
           str24 = "select monto from acumula where cod+mid(numero,1,3)+mid(signo,1,4)=@vcod+@vnum+mid(@var03,1,4)"
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H1F) Then
           str24 = "select monto from acumula where cod+numero=@vcod+@vnum and fecha=@vfecha"
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H20) Then
           str24 = "select monto from acumula where cod+numero=@vcod+@vnum and fecha=@vfecha"
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H21) Then
           str24 = "select monto from acumula where cod+numero=@vcod+@vnum and fecha=@vfecha"
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H22) Then
           str24 = "select monto from acumula where cod+mid(numero,1,2)+mid(signo,1,4)=@vcod+@vnum+mid(@var03,1,4) and fecha=@vfecha"
       End If
       Dim command4 As New OleDbCommand(str24, connection4)
       command4.CommandType = CommandType.Text
       If (Strings.Len(Strings.Trim(str3)) = &H1C) Then
           command4.Parameters.Add("@vcod", str13)
           command4.Parameters.Add("@vnum", str14)
           command4.Parameters.Add("@var03", str16)
           command4.Parameters.Add("@vfecha", Me.vfecha)
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H1D) Then
           command4.Parameters.Add("@vcod", str13)
           command4.Parameters.Add("@vnum", str14)
           command4.Parameters.Add("@vfecha", Me.vfecha)
       End If
       If (Strings.Len(Strings.Trim(str3)) = 30) Then
           command4.Parameters.Add("@vcod", str13)
           command4.Parameters.Add("@vnum", str14)
           command4.Parameters.Add("@var03", str16)
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H1F) Then
           command4.Parameters.Add("@vcod", str13)
           command4.Parameters.Add("@vnum", str14)
           command4.Parameters.Add("@vfecha", Me.vfecha)
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H20) Then
           command4.Parameters.Add("@vcod", str13)
           command4.Parameters.Add("@vnum", str14)
           command4.Parameters.Add("@vfecha", Me.vfecha)
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H21) Then
           command4.Parameters.Add("@vcod", str13)
           command4.Parameters.Add("@vnum", str14)
           command4.Parameters.Add("@vfecha", Me.vfecha)
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H22) Then
           command4.Parameters.Add("@vcod", str13)
           command4.Parameters.Add("@vnum", str14)
           command4.Parameters.Add("@var03", str16)
           command4.Parameters.Add("@vfecha", Me.vfecha)
       End If
       connection4.Open()
       command4.ExecuteNonQuery()
       Dim reader As OleDbDataReader = command4.ExecuteReader
       Dim expression As Double = 0
       Do While reader.Read
           expression = DoubleType.FromString(reader.Item(0).ToString)
       Loop
       connection4.Close()
       reader.Close()

       If (Conversion.Val(expression) > num5) Then
           Me.vent = StringType.FromDouble((Conversion.Val(expression) - num5))
       Else
           Me.vent = StringType.FromInteger(0)
       End If
       If (Conversion.Val(expression) = num5) Then
           Me.vent = StringType.FromDouble((Conversion.Val(expression) - num5))
       Else
           Me.vent = StringType.FromInteger(0)
       End If
       If (DoubleType.FromString(Me.vent) < 0) Then
           Me.vent = StringType.FromInteger(0)
       End If
       Me.vent = Strings.Trim(Me.vent)
       If (Strings.Len(Me.vent) = 1) Then
           str22 = ("0" & Me.vent & ".00")
       ElseIf (Strings.Len(Me.vent) = 2) Then
           If (StringType.StrCmp(Strings.Mid(Strings.Trim(Me.vent), 1, 1), ".", False) = 0) Then
               str22 = ("00" & Strings.Trim(Me.vent) & "0")
           Else
               str22 = (Strings.Trim(Me.vent) & ".00")
           End If
       ElseIf (Strings.Len(Me.vent) = 3) Then
           If (StringType.StrCmp(Strings.Mid(Me.vent, 1, 1), ".", False) = 0) Then
               str22 = ("00" & Strings.Trim(Me.vent))
           ElseIf (StringType.StrCmp(Strings.Mid(Me.vent, 2, 1), ".", False) = 0) Then
               str22 = String.Concat(New String() {"0", Strings.Mid(Strings.Trim(Me.vent), 1, 1), ".", Strings.Mid(Strings.Trim(Me.vent), 3, 1), "0"})
           Else
               str22 = (Strings.Mid(Strings.Trim(Me.vent), 1, 2) & "." & Strings.Mid(Strings.Trim(Me.vent), 3, 1) & "0")
           End If
       ElseIf (Strings.Len(Me.vent) = 4) Then
           If (StringType.StrCmp(Strings.Mid(Me.vent, 1, 1), ".", False) = 0) Then
               str22 = String.Concat(New String() {Strings.Mid(Strings.Trim(Me.vent), 2, 1), Strings.Mid(Strings.Trim(Me.vent), 3, 1), ".", Strings.Mid(Strings.Trim(Me.vent), 4, 1), "0"})
           ElseIf (StringType.StrCmp(Strings.Mid(Me.vent, 2, 1), ".", False) = 0) Then
               str22 = ("0" & Strings.Mid(Strings.Trim(Me.vent), 1, 1) & "." & Strings.Mid(Strings.Trim(Me.vent), 3, 2))
           ElseIf (StringType.StrCmp(Strings.Mid(Me.vent, 3, 1), ".", False) = 0) Then
               str22 = (Strings.Mid(Strings.Trim(Me.vent), 1, 2) & "." & Strings.Mid(Strings.Trim(Me.vent), 4, 1) & "0")
           ElseIf (StringType.StrCmp(Strings.Mid(Me.vent, 4, 1), ".", False) = 0) Then
               str22 = (Strings.Mid(Strings.Trim(Me.vent), 1, 2) & "." & Strings.Mid(Strings.Trim(Me.vent), 3, 1) & "0")
           ElseIf (StringType.StrCmp(Strings.Mid(Me.vent, 5, 1), ".", False) = 0) Then
               str22 = (Strings.Mid(Strings.Trim(Me.vent), 1, 2) & "." & Strings.Mid(Strings.Trim(Me.vent), 3, 2))
           Else
               str22 = (Strings.Mid(Strings.Trim(Me.vent), 1, 2) & "." & Strings.Mid(Strings.Trim(Me.vent), 3, 2))
           End If
       ElseIf (Strings.Len(Me.vent) = 5) Then
           If (StringType.StrCmp(Strings.Mid(Me.vent, 1, 1), ".", False) = 0) Then
               str22 = (Strings.Mid(Strings.Trim(Me.vent), 2, 1) & Strings.Mid(Strings.Trim(Me.vent), 3, 1) & "." & Strings.Mid(Strings.Trim(Me.vent), 4, 2))
           ElseIf (StringType.StrCmp(Strings.Mid(Me.vent, 2, 1), ".", False) = 0) Then
               str22 = (Strings.Mid(Strings.Trim(Me.vent), 1, 1) & Strings.Mid(Strings.Trim(Me.vent), 3, 1) & "." & Strings.Mid(Strings.Trim(Me.vent), 4, 2))
           ElseIf (StringType.StrCmp(Strings.Mid(Me.vent, 3, 1), ".", False) = 0) Then
               str22 = (Strings.Mid(Strings.Trim(Me.vent), 1, 2) & "." & Strings.Mid(Strings.Trim(Me.vent), 4, 1) & Strings.Mid(Strings.Trim(Me.vent), 5, 1))
           ElseIf (StringType.StrCmp(Strings.Mid(Me.vent, 4, 1), ".", False) <> 0) Then
               str22 = (Strings.Mid(Strings.Trim(Me.vent), 1, 2) & "." & Strings.Mid(Strings.Trim(Me.vent), 3, 2))
           Else
               str22 = Strings.Trim(Me.vent)
           End If
       End If
       Dim str21 As String = ""
       str21 = str22
       str19 = Strings.Mid(StringType.FromDate(DateAndTime.Today), 1, 2)
       str20 = Strings.Mid(StringType.FromDate(DateAndTime.Today), 4, 2)
       str18 = Strings.Mid(StringType.FromDate(DateAndTime.Today), 7, 4)
       Me.vfecha = DateAndTime.Today
       Dim connection5 As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=BD2.mdb")
       If (Strings.Len(Strings.Trim(str3)) = &H1C) Then
           str25 = "update acumula set monto=@vmonto where cod+numero+mid(signo,1,4)=@var01+@var02+mid(@var03,1,4) and fecha=@vfecha"
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H1D) Then
           str25 = "update acumula set monto=@vmonto where cod+numero=@var01+@var02 and fecha=@vfecha"
       End If
       If (Strings.Len(Strings.Trim(str3)) = 30) Then
           str25 = "update acumula set monto=@vmonto where cod+mid(numero,1,3)+mid(signo,1,9)=@var01+@var02+@var03 and fecha=@vfecha"
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H1F) Then
           str25 = "update acumula set monto=@vmonto where cod+numero=@var01+@var02 and fecha=@vfecha"
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H20) Then
           str25 = "update acumula set monto=@vmonto where cod+numero=@var01+@var02 and fecha=@vfecha"
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H21) Then
           str25 = "update acumula set monto=@vmonto where cod+numero=@var01+@var02 and fecha=@vfecha"
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H22) Then
           str25 = "update acumula set monto=@vmonto where cod+numero+mid(signo,1,9)=@var01+@var02+@var03 and fecha=@vfecha"
       End If
       Dim command5 As New OleDbCommand(str25, connection5)
       command5.CommandType = CommandType.Text
       If (Strings.Len(Strings.Trim(str3)) = &H1C) Then
           command5.Parameters.Add("@vmonto", str21)
           command5.Parameters.Add("@var01", str13)
           command5.Parameters.Add("@var02", str14)
           command5.Parameters.Add("@VAR03", str16)
           command5.Parameters.Add("@vfecha", Me.vfecha)
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H1D) Then
           command5.Parameters.Add("@vmonto", str21)
           command5.Parameters.Add("@var01", str13)
           command5.Parameters.Add("@var02", str14)
           command5.Parameters.Add("@vfecha", Me.vfecha)
       End If
       If (Strings.Len(Strings.Trim(str3)) = 30) Then
           command5.Parameters.Add("@vmonto", str21)
           command5.Parameters.Add("@VAR01", str13)
           command5.Parameters.Add("@VAR02", str14)
           command5.Parameters.Add("@VAR03", str16)
           command5.Parameters.Add("@vfecha", Me.vfecha)
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H1F) Then
           command5.Parameters.Add("@vmonto", str21)
           command5.Parameters.Add("@VAR01", str13)
           command5.Parameters.Add("@VAR02", str14)
           command5.Parameters.Add("@vfecha", Me.vfecha)
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H20) Then
           command5.Parameters.Add("@vmonto", str21)
           command5.Parameters.Add("@VAR01", str13)
           command5.Parameters.Add("@VAR02", str14)
           command5.Parameters.Add("@vfecha", Me.vfecha)
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H21) Then
           command5.Parameters.Add("@vmonto", str21)
           command5.Parameters.Add("@VAR01", str13)
           command5.Parameters.Add("@VAR02", str14)
           command5.Parameters.Add("@vfecha", Me.vfecha)
       End If
       If (Strings.Len(Strings.Trim(str3)) = &H22) Then
           command5.Parameters.Add("@vmonto", str21)
           command5.Parameters.Add("@VAR01", str13)
           command5.Parameters.Add("@VAR02", str14)
           command5.Parameters.Add("@VAR03", str16)
           command5.Parameters.Add("@vfecha", Me.vfecha)
       End If
       connection5.Open()
       command5.ExecuteNonQuery()
       connection5.Close()
       str8 = ""
       num = (num + -1)
   Loop
   box = Nothing
   Dim str9 As String = Strings.Mid(StringType.FromDate(DateAndTime.Today), 1, 2)
   Dim str10 As String = Strings.Mid(StringType.FromDate(DateAndTime.Today), 4, 2)
   Dim str As String = Strings.Mid(StringType.FromDate(DateAndTime.Today), 7, 4)
   Me.vfecha = DateAndTime.Today
   Dim connection2 As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=BD2.mdb")
   Dim number As Integer = 0
   Dim cmdText As String = "delete from acumula where monto=@vmonto2 and fecha=@vfecha"
   Dim command2 As New OleDbCommand(cmdText, connection2)
   command2.CommandType = CommandType.Text
   command2.Parameters.Add("@vmonto2", Conversion.Str(number))
   command2.Parameters.Add("@vfecha", Me.vfecha)
   connection2.Open()
   command2.ExecuteNonQuery()
   connection2.Close()
   Dim connection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=BD2.mdb")
   Dim str11 As String = "select nombre,numero,monto,cod,descrip from imprimir order by cod+numero"
   Dim command As New OleDbCommand(str11, connection)
   command.CommandType = CommandType.Text
   Try
       connection.Open()
       Dim reader2 As OleDbDataReader = command.ExecuteReader
       Me.pinnedArray = GCHandle.Alloc(Me.ListBoxTabs, GCHandleType.Pinned)
       Me.ptr = Me.pinnedArray.AddrOfPinnedObject
       Dim wParam As New IntPtr(Me.ListBoxTabs.Length)
       Me.result = Form1.SendMessage(Me._CheckedListBox2.Handle, &H192, wParam, Me.ptr)
       Me.pinnedArray.Free()
       Me._CheckedListBox2.Items.Clear()
       Dim str30 As String = ""
       Me.tem4 = 0
       Do While reader2.Read
           Dim str26 As String = reader2.Item(0).ToString
           Dim str27 As String = reader2.Item(1).ToString
           Dim str28 As String = reader2.Item(2).ToString
           Dim str29 As String = reader2.Item(3).ToString
           str30 = reader2.Item(4).ToString
           If (Strings.Len(str30) <> 0) Then
               str26 = Strings.Mid(str26, 1, 9)
           End If
           str30 = Strings.Mid(str30, 1, 9)
           If (Strings.Len(Strings.Trim(str27)) = 2) Then
               str27 = (Strings.LTrim(str27) & " ")
           Else
               str27 = Strings.LTrim(str27)
           End If
           Me.tem4 = (Me.tem4 + Conversion.Val(str28))
           Me._CheckedListBox2.Items.Add((String.Concat(New String() {str27, ChrW(9), str28, ChrW(9), str26, ChrW(9), str29}) & ChrW(9) & ChrW(9) & str30))
           If (Strings.Len(Strings.Trim(Me.tem2)) = 3) Then
               Me.ctr += 1
           Else
               Me.cte += 1
           End If
       Loop
       Me._TextBox2.Text = Me.tem4.ToString("N")
       Me._Label31.Text = Me.ctr.ToString
       Me._Label32.Text = Me.cte.ToString
       Me._Label30.Text = Me.tem4.ToString("N")
       Me.temp1 = ""
       Me._TextBox3.Focus()
       Me.Refresh()
       Me.ctr = 0
       Me.cte = 0
       str8 = ""
       connection.Close()
       reader2.Close()
   Catch exception1 As Exception
       ProjectData.SetProjectError(exception1)
       Dim exception As Exception = exception1
       Interaction.MsgBox("Error Al eliminar Numero", MsgBoxStyle.ApplicationModal, Nothing)
       ProjectData.ClearProjectError()
   Finally
       Me.temp1 = ""
   End Try
End Sub


Saludos!








zalazar16

Bueno ya funciona correctamente el botoncito es........... ahora bien, Amigo ELEKTRO, ya dirás... Que hombre tan fastidioso!!! Ya furula el bendito botón, pero hay otro programilla, bueno parte de ese que dice lo mismo que el primero Declaración duplicada del miembro point y size......... el problema identico, cómo pudiste solucionar eso? que he tratado y nadaaaaaaa, ya esto me tiene hasta la coronilla de verdad, prefiero C# antes que VB.NET

El programa otro:

https://www.mediafire.com/file/1bl0l4c5xc2nn0t/LOTER%CDA%20MONTOS%20ALTOS.zip