Jump to content
Sign in to follow this  
nickmartinez

ANSWERED Encontrar la ultima compra realizada por un cliente

Recommended Posts

Hola que tal saludos a todos a través de sql y usando excel, requiero consultar la cantidad de la ultima compra de un cliente,intente usando esta sentencia pero no sirve:

Sub Compras_anterior()

ABRIR_RS

 Sql = "select Max(FECHA) as Next_Date,[CANTIDAD COMPRA] from [Registros$]R WHERE R.cliente='" & UserForm1.Cliente & "' and" & _
        " R.Asesor='" & UserForm1.ComVendedor.List(UserForm1.ComVendedor.ListIndex, 1) & "'" & _
        " group by [CANTIDAD COMPRA]"
          Rs.Open Sql, Cnn, 1, 1
            
            If Rs.RecordCount > 0 Then
            
                Rs.MoveLast
           
                 UserForm1.Compra_anterior = Rs.Fields(1)
                 
           
            End If
        
Conexion.CERRAR_RS
        
End Sub

si alguno sabe como se puede, agradezco de su valiosa ayuda,adjunto el archivo de ejemplo,luego de seleccionar el asesor o vendedor,darle click al check luego nos traerá la cantidad de la ultima compra de el cliente,pero en esto ultimo he fracasado : (

ultima compra.xlsm

Share this post


Link to post
Share on other sites

Hola

Estás mal entendiendo el uso de Max, en realidad, tal como estabas haciéndolo deberías también haber usado la consulta con una sub consulta, pero como probablemente aún no ves esos temas, sugiero usar Max con Last:

 Sql = "Select Max([FECHA]) as Next_Date, Last([CANTIDAD COMPRA]) As UltimoDeCANTIDAD from [Registros$]R WHERE [cliente]='" & UserForm1.Cliente & "' and" & _
        " [Asesor]='" & UserForm1.ComVendedor.List(UserForm1.ComVendedor.ListIndex, 1) & "'" & _
        " group by [ASESOR]"


Por cierto, en VBA cada variable tiene que tener su tipo, de lo contrario la memoria la toma como Variant. Por ejemplo, en donde tienes esto:

Public Sql, Q, Tabla As String

Es lo mismo que:

Public Sql as Variant, Q as Variant, Tabla As String

Deberías ponerlo así:

Public Sql as String, Q as String, Tabla As String

O así:

Public Sql$, Q$, Tabla$

Saludos

Abraham Valencia

Share this post


Link to post
Share on other sites
Hace 1 hora, avalencia dijo:

Hola

Estás mal entendiendo el uso de Max, en realidad, tal como estabas haciéndolo deberías también haber usado la consulta con una sub consulta, pero como probablemente aún no ves esos temas, sugiero usar Max con Last:


 Sql = "Select Max([FECHA]) as Next_Date, Last([CANTIDAD COMPRA]) As UltimoDeCANTIDAD from [Registros$]R WHERE [cliente]='" & UserForm1.Cliente & "' and" & _
        " [Asesor]='" & UserForm1.ComVendedor.List(UserForm1.ComVendedor.ListIndex, 1) & "'" & _
        " group by [ASESOR]"


Por cierto, en VBA cada variable tiene que tener su tipo, de lo contrario la memoria la toma como Variant. Por ejemplo, en donde tienes esto:


Public Sql, Q, Tabla As String

Es lo mismo que:


Public Sql as Variant, Q as Variant, Tabla As String

Deberías ponerlo así:


Public Sql as String, Q as String, Tabla As String

O así:


Public Sql$, Q$, Tabla$

Saludos

Abraham Valencia

gracias Abraham probare el codigo a ver como corre,y te aviso que tal,un saludo cordial y gracias por responder

 

Share this post


Link to post
Share on other sites
Hace 14 horas, nickmartinez dijo:

gracias Abraham probare el codigo a ver como corre,y te aviso que tal,un saludo cordial y gracias por responder

 

Hermano funciono genial,desconocia esta parte "Last(xxxxxx)"  investigare mas al respecto,como seria con una subconsulta ?para ampliar mis conocimientos de como hacer algo de varias formas,si no es mucho pedir,si no puedes pues tema cerrado y muchas gracias,Aaah y también las declaraciones de las variables muy útil tu obseravcion

 


 
Edited by nickmartinez

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×
×
  • Create New...

Important Information

Privacy Policy

Ayuda Excel - Madrid, Madrid, ES - Valorada por 6254 personas - Aprender Excel - Total: 4.7 / 5