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:
(https://preview.ibb.co/hjFP4v/pantalla_llena.png)
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.
(https://preview.ibb.co/eeOGHF/pantalla_vac_a.png)
ahora bien, si quiero borrar una jugada porque la escribí mal, o ya no va, debería de borrar solo las marcadas:
(https://preview.ibb.co/gWzZ4v/marcados_llena.png)
PEROOOO....
me tira este error:
(https://preview.ibb.co/iJnRHF/ERROR.png)
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 (https://www.mediafire.com/file/7ob8gxc6on2gwkv/CODIGO%20FUENTE%20L.zip)
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:
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):
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:
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.
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!
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 (https://www.mediafire.com/file/1bl0l4c5xc2nn0t/LOTER%CDA%20MONTOS%20ALTOS.zip)