Condición SiInm en una expresión compleja

Estoy trabajando con una tabla de cargamentos con sus respectivos clientes, envíos, mes, coste, peso, kms, etc... El cargamento es único sin duplicados pero el envío si que se repite, ya que dentro de un mismo envío hay diferentes cargamentos. Lo que busco es crear una tabla en función del envío con un campo que me diga para cada envío si tiene diferentes lugares de entrega. Me explico, imaginate en mi envío tengo un cargamento 1 y le envío a un cliente y un cargamento 2 que va a otro cliente diferente. Sería algo:

Cargamento____Cliente____Multipick

1____________S12________1

1____________S13________2

2____________D12________1

2____________D23________2

2____________D43________3

3____________V34________1

¿Sabrías cómo podría crear el campo multipick?

2 Respuestas

Respuesta
1

El campo Multipick ¿Es la cuenta de los que hay en cada cargamento?

Respuesta
1

Perdón por tardar tanto en responderte, pero estuve liado, y no tuve mucho tiempo.

Al final conseguí hacer una función que te calcula el Multipick.

Como no se la estructura exacta de tu BD, he hecho un par de suposiciones, pero si entiendes el funcionamiento, no tendrás problemas en adaptarlo.

Te explico:

he supuesto una tabla llamada DetalleEnvio con los siguientes campos [IDEnvio], [Cargamento] y [Cliente], todos numéricos, menos el cliente que es texto.

He creado un módulo, y en el he escrito esta función:

Public Function fncMultipick(Envío As Integer, Cargamento As Integer, Cliente As String) As Integer
Dim rst As Recordset
Dim miSQL As String
Dim cuenta As Integer
miSQL = "SELECT [DetalleEnvio].IDEnvio, [DetalleEnvio].Cargamento, [DetalleEnvio].Cliente FROM [DetalleEnvio] " _
& "WHERE ((([DetalleEnvio].IDEnvio) = " & Envío & ") And (([DetalleEnvio].Cargamento) = " & Cargamento & "))"
Set rst = CurrentDb.OpenRecordset(miSQL, dbOpenDynaset)
rst.MoveLast
cuenta = rst.RecordCount
rst.FindFirst "[Cliente]='" & Cliente & "'"
For i = 0 To cuenta - 1
If rst.AbsolutePosition = i Then
fncMultipick = i + 1
Exit Function
End If
Next i
End Function

Y para acabar la jugada, hice una consulta sobre esa tabla, con los 3 campos, y añadiendo una columna nueva, Multipick: fncMultipick([IDEnvio];[Cargamento];[Cliente])

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas