Título: Sumar datos cocretos de una base de datos desde VB 6.0 con ADO Publicado por: RiasChan 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 Código: 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: Código: 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 Título: Re: Sumar datos cocretos de una base de datos desde VB 6.0 con ADO Publicado por: RiasChan en 21 Marzo 2018, 18:35 pm Ya está ya lo solucioné. Lo que hice fue llamar a esta función cuando carga la lista y los demás componentes de los texbox
Código: Private Sub lauchita() Dim rs2 As ADODB.Recordset Dim cod2 As Integer Dim sql2 As String cod2 = Val(Left(opc, 3)) [b]sql2 = "Select sum(CantFiado) as importe from Fiar where CodigoCliente =" & Val(txtccodigo.Text)[/b] If Not Conectar() Then Exit Sub Set rs2 = cn.Execute(sql2) txtLaucha = IIf(IsNull(rs2!importe), "(vacío)", rs2!importe) Set rs2 = Nothing Desconectar End Sub Entonces, le digo que me haga el cálculo SQL donde CodigoCliente sea igual al valor que haya en el texto del código del cliente. Obviamente serán iguales, es comparar el valor del RS de la base de datos con el mismo valor traído de la misma base de datos pero ya guardado en el textbox. Entonces cuando esos dos 2 son iguales (siempre) me trae la suma de la columnna de cantidad fiados. Bueno, parece q funcionó luego de mucho insistir, ya lo probe con 1, 2 y 3 registros y funciona |