|
Mostrar Temas
|
Páginas: 1 [2] 3
|
11
|
Programación / Programación Visual Basic / Recorrer listview al buscar y que seleccione la siguiente coincidencia
|
en: 19 Abril 2018, 18:18 pm
|
Tengo este codigo, que me vale bien para buscar por columna, y seleccionar la coincidencia: Private Sub cmdBuscar_Click() Dim Opcion As Integer Dim dato As String Dim Item As ListItem ' busca por las demás columnas ( por SubItem ) If Option1.Value = True Then dato = txtSearch.Text Opcion = lvwSubItem ' busca por los subitems End If
Next i ' Busca por la primer columna ( por item ) If Option2.Value = True Then dato = txtSearch.Text Opcion = lvwText ' busca por el item End If ' si lo ingresado es una cadena vacia sale If dato = vbNullString Then Exit Sub End If ' Busca con el método FindItem, estableciendo la opcion de búsqueda Set Item = ListView1.FindItem(dato, Opcion, , lvwPartial) ' si el item es nothing no se encontró If Item Is Nothing Then MsgBox " No se encontró el dato", vbInformation Exit Sub Else ' .. si no , selecciona el elemento encontrado Item.EnsureVisible Item.Selected = True ListView1.SetFocus End If
End Sub le faltaría agregarle un ciclo para que continue con la palabra siguiente al volver a aprtar el boton. Alguna idea?
|
|
|
12
|
Programación / Programación Visual Basic / Mover al siguiente elemento igual en un listbox
|
en: 14 Abril 2018, 03:31 am
|
Tengo este codigo robado de por ahí... que hace lo que quiero casi a la perfeccion. LO que hace, a medida q voy escribiendo me va encontrando las coincidencias en eel list box, en el orden q sea, cuantas entradas sean, sin importar orden ni mayusculas ni minusculas (es realmente muy bueno) Pero tiene un detalle que me gustaria solucionar. Me gustaria q cada vez q aprieto el enter, o sea el la key13 del evento keypress del textbox, la seleccion se desplaze hacia la siguiente coincidencia, que no se quede siempre en la misma. Que tendria que agregarla al codigo? Saludos!! Function ListIsIn(lst As ListBox, zString As String) As Boolean On Error Resume Next For i = 0 To lst.ListCount If InStr(UCase$(lst.List(i)), UCase$(zString)) Then ListIsIn = True: lst.ListIndex = i: GoTo grr i = i + 1 Next i ListIsIn = False grr: End Function
Private Sub Command1_Click() Me.Caption = ListIsIn(List1, Text1.Text) End Sub
Private Sub Form_Load() List1.AddItem "MÉXICO" & " Pepe " List1.AddItem "VENEZUELA" & "Jose" List1.AddItem "ARGENTINA" List1.AddItem "ESPAÑA" List1.AddItem "GUATEMALA" List1.AddItem "ARGENTINA" List1.AddItem "CHILE" End Sub
Private Sub Text1_Change() Label1.Caption = ListIsIn(List1, Text1.Text) End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
End If
End Sub
de Yapa pregutno, q modificacion le hago para hacer esto mismo en un listvew?
|
|
|
13
|
Programación / Programación Visual Basic / Sumar decimales desde una lista a un texbox
|
en: 3 Abril 2018, 22:57 pm
|
Este codigo me vale para sumar numeros decimales y enteros en un listbox, y luego mostrar la suma en un texbox.
Dim i Dim total total = 0 For i = 0 To List11.ListCount - 1 total = total + CDbl(List11.List(i)) Next i txtPrecioTotal.Text = total End Sub
El problema es que esos numeros estan mezclados con letras (primero antes que nada va el numero) Por lo que si le pongo VAL, me suma aunque tenga letras, pero no me suma los decimales. Y si le pongo CDBL, no anda. Si le saco las letras y le dejo el CBDL, si me suma y con decimales.
Lo que necesito es que me sume enteros, y decimales, incluso haya palabras mezcladas luego de los primeros caracteres que vendrian a ser los numeros a sumar
|
|
|
14
|
Programación / Programación Visual Basic / ListView no me suma el indice 0
|
en: 3 Abril 2018, 20:51 pm
|
Este codigo me suma sin problemas todas las entradas del listview depediendo lo que le ponga en SubItems(X) con 1 me suma el valor 2 de la lista (ya que es 0, 1, 2) Pero si justamente quiero q me sume el primer valor de la lista, q es el 0, el subitem deberia ser 0. Pero me dice error. Y si le dejo el 1, me suma el 2do campo de la lista, q es correto ya que es 0, 1. Alguna idea como puedo arreglar esto? Dim i As Long 'Recorre todos los items y para sumar los SubItems For i = 1 To ListView1.ListItems.Count sumar = sumar + CDbl(ListView1.ListItems(i).SubItems(1)) Next i txtDia0 = sumar RESUMEN: neceisto q me sume cada valor de esas columinas en los txts negros de abajo...
|
|
|
15
|
Programación / Programación Visual Basic / Sumar datos cocretos de una base de datos desde VB 6.0 con ADO
|
en: 21 Marzo 2018, 01:25 am
|
Necesitaria saber como sumar una columna en específico de clientes en especifico con visual 6.0. La idea es esta: Cada vez que le "anoto" a un cliente una venta que no paga (que saca fiado) en la base de datos se anota un 1. Entonces, cuando ese cliente me vuelve a pedir fiado y lo fio de nuevo, me agrega otro registro con el mismo codigo de cliente, y otro 1. Entonces en la base de datos, tengo el codigo de cliente (repetido tantas veces lo fie) Sus datos de esa venta fiada, y un número 1 por cada vez que lo fie. la idea es, traer a un textbox la suma de esos "1" que corresponden al cliente "4" por ejemplo. Por ejemplo: Pepito es el cliente 4 Jose es el cliente 5 A Pepito lo fié 1 vez (+1 a la cuenta de fiado) A Jose lo fie 1 vez (+1) A pepito lo volvi a fiar (+1) Entonces, quiero que en el textbox me diga que a Pepito en total lo fie 2 veces (que me sume los 2 números 1 que tengo en el registro correspondiente a Pepito.) El campo donde almaceno la cantidad de fiados es (donde va el 1), es CantFiado El cambo donde almaceno el código de cada cliente, es CodigoCliente y al tabla se llama Fiar. Tengo entendido q se hace con uan sentencia sql de sum, pero no sé usarla. gracias, espero me puedan ayudar Asi lo tengo codificado: Primero el form load carga esto, carga los datos de la base de datos a una lista, me trae unos ciertos datos de la base de datos no todos los registros Dim rs As adodb.Recordset Dim sql As String sql = "Select * from Fiar order by Apellido" If Not Conectar() Then Exit Sub Set rs = cn.Execute(sql) List4.Clear Do While Not rs.EOF List4.AddItem Format(rs!FiadoNumero, "000") & vbTab & rs!Apellido & ", " & vbTab & rs!Nombre rs.MoveNext Loop Set rs = Nothing ''Call cargardatosventas ''Call ordenar Desconectar 'List1.ListIndex = 0
Despues, cuando hago click en algun elemento de la lista, me trae cada campo de la base de datos en un txtbox diferente: Private Sub cargafiado()
Dim opc As String Dim cod As Integer Dim sql As String opc = List4.List(List4.ListIndex) cod = Val(Left(opc, 3)) sql = "Select * from Fiar where FiadoNumero = " & cod Dim rs As adodb.Recordset If Not Conectar() Then Exit Sub Set rs = cn.Execute(sql) '' un registro para cada textbox como este: txtccodigo = IIf(IsNull(rs!CodigoCliente), "(vacío)", rs!CodigoCliente) Set rs = Nothing Desconectar end sub
La idea seria en una sub nueva o a continuación de "Cargafiado" haga lo que pido arriba, gracias
|
|
|
16
|
Sistemas Operativos / Windows / Pantalla de inicio de Windows vista en Windows 7
|
en: 19 Marzo 2018, 16:26 pm
|
una aplicacion me me cambió la panalla de inicio de windows 7 x la de windows Vista. Ya probe todo para sacarla y poner la de w7 de nuevo, con este link: https://support.microsoft.com/es-es/help/2445937Tambien con sysprep, formatendo incluso, y no hay forma, no puedo volver a la pantalla de inciio de windows 7 alguna idea? Mother gigabyte ga ep45 ud3l con el @BIOS de gigabyte le cambie el BIOS, se me hace q algunas de esas 2 opciones esta probocando q no aparezca la pantalla de windows, cual será?
|
|
|
17
|
Programación / Programación Visual Basic / Validacion de comas y puntos VB6
|
en: 12 Marzo 2018, 17:03 pm
|
Pido perdon si consideran mis topics como spam, pero en realidad son dudas que tengo q ya vengo aquí luego de recontra googlear la solución y no encontrarla. Y agradezco mucho la ayuda, hasta ahora he podido resolver mis problemas gracias a las respuestas. Resumen: Tengo 4 texbox y 1 cmdboton. un txtbox de costo, otro de ganancia, otro de porcentaje, y otro de ganancia discriminada. y el cmdbotn hace el cálculo.
Cuando el numero el grande (y decimal) No hay problema. Pero cuando el numero es pequeño (0,xx) El cálculo no lo hace, tengo q ponerle el puto tradicional en vez de la coma decimal. Pero esto no sirve para la base de datos ya que me guarda cualquier cosa. Que puedo hacer? El problema que tengo ahora, es que tengo un problema con la validación de la Coma y el Punto. Utilizo este codigo para directamente reemplazar el punto del numepad por la coma de decimales, asi poder cargar registros decimales en una base de datos sin problemas y rápido. En el evento keypress del textbox, pongo esto If KeyAscii = 46 Then KeyAscii = 44
Anda bien, con numeros grandes, como pueden ver en la siguiente foto. En costo añado un numero, en % un porcentaje, con el botoncito amarillo hago la cuenta en el último textbox suma el porcentaje al costo. Adicionalmente en un txt aparte muestra la cantidad del porcentaje discriminada. Y todo maravilloso, hasta que me topé con un problema que me tiene de la cabeza. Resulta que si ingreso un numero pequeño (algo menor a 1) No realiza correctamente la suma y adhición de porcentaje. Directamente no lo hace, como la siguiente foto: Luego le modifique el codigo en algunas cosas, pero el gran cambio que hice fue reemplazar la coma por el punto tradicional, al hacer so, si hace el cálculo correctamente, sean pequeñas o grandes cantidades. El problema, es que el punto para la base de datos es basura y añadie cualquier numero incorrecto, tiene q ser la coma si o si para que que se guarde correctamente el numero en la bd. Que solucion puedo tener? Pensé en que al hacer click en el boton amarillo me copie el contenido del txtbox con punto a uno nuevo con el mismo valor pero con la coma, y q el programa guarde ese casillero en la base de datos., pero no sé como hacer eso? U otra solución seria darle un correcto funcionamiento al casillero con la coma y numeros pequeños, peo tampoco sé hacerlo. Espero puedan ayudarme, gracias! MOD: Imagenes adaptadas a lo permitido.
|
|
|
18
|
Programación / Programación Visual Basic / Anda mal el IF, o estoy haciendo algo mal? Visual 6.0
|
en: 12 Marzo 2018, 02:10 am
|
Eso, tan simple como eso, No entiende la sentencia IF, no anda! ya probe con varias combinaciones y no anda, que puedo hacer? La idea es la siguiente, yo tengo un stock y un punto de reposicion Por ejemplo, Stock 50 Punto de reposición 20 Si yo tengo más de 20, deberia decirme "Stock normal" si tengo menos de 20, "Faltante de stock" y si tengo 0 "Sin Stock" bueno la cosa, es que el IF que hice es este: Private Sub Command1_Click() If Text1.Text = 0 Then MsgBox "Stock 0 !!!!!" Else If Text1.Text > Text2.Text Then MsgBox "Stock mayor" Exit Sub Else MsgBox "Stock menor" Exit Sub End If End If End Sub
Pero que rayos, el if no anda! si por ejemplo en el txt de stock pongo 2 y en el txt de reposicion pongo 10, deberia decirme "Stock menor" ya que hay pocas unidades, hay menos unidades de las que deberia tener para avisarme (10) Y deberia ponerme "Stock menor", Pero no! me pone stock mayor! y encima eso pasa asi le ponga cualquier numero, mayor o menor a 10, siempre sale por el lado del mayor, WTF? Seguramente tengo algunos errrores menores en el codigo, pero por que sale por el positivo cuando es negativo?
|
|
|
19
|
Programación / Programación Visual Basic / Borrado incorrecto de base de datos con Ado con el metodo rs.delete
|
en: 10 Marzo 2018, 18:36 pm
|
Es visual basic 6.0 (tenia un proyecto del 2007 y ho 11 años despues quise retomarlo) Bueno resulta que tengo este codigo: Dim rs As ADODB.Recordset If Not Conectar() Then Exit Sub Set rs = New ADODB.Recordset rs.Open ("Elementos"), cn, adOpenKeyset, adLockOptimistic On Error Resume Next rs!Categoria = txtcate rs.Delete rs.Close rs.update Set rs = Nothing Desconectar Elimina el registro de la base de datos, pero no el seleccionado. El registro está en el txtcate. Ahi está escrito el valor que quiero borrar de la base de datos (obviamente es un txt no modificable y son identicos). Lo que quiero es que me borre de la base de datos, el valor de ese txt. Lo que pasa es que me borra el primer registro de la base de datos y no el que esta escrito en el txt. Comopuedo hacer para que me borre el registro seleccionado en el txt? Ah, es la única columina de la tabla en el access, es solo 1 columna gracias
|
|
|
|
|
|
|