Access - Individualizar Cobros Por Fecha a Cada Cliente

 
Vista:
sin imagen de perfil

Individualizar Cobros Por Fecha a Cada Cliente

Publicado por Arm (8 intervenciones) el 11/03/2023 19:32:46
Buenos días, no se si la pregunta ya ha sido realizada con anterioridad pero he revisado y no he encontrado ninguna que resuelva el problema o duda que tengo, sucede que tengo una base de datos, ésta tiene dos tablas TabC-1 (que es para definir datos generales de un "id" para un control de cobros - estilo factura digamos), la segunda tabla es TabC-2 (ésta contiene un campo que es [FPago] y otro [id]que en adelante será uno de los que nos interesará, de ésta TabC-2 se alimenta la consulta Cons-1 que es la que nos va a ocupar mayoritariamente, ésta consulta es la que contiene los procesos pues lo que interesaba hacer era lo siguiente: Dado que es una base para cobros y a veces el "id" se retrasa en sus pagos, necesitaba realizar un proceso en el cual se restaran las fechas y me diera como resultado en un campo nuevo el resultado de cuántos meses está retrasado el "id" (no me interesa en días, me interesa en meses, pero meses calendario), esto lo he logrado de ésta manera: ((Nz(DifFecha("m";[FPago];DÚltimo("FPago";"TabC-2";"FPago <#" & [FPago] & "#"))))), y me ha funcionado, pero el problema que tengo es el que como en un formulario tengo como subformulario a la consulta para que al seleccionar al "id" su historial de pagos y deuda aparezca abajo (al estilo de una factura) hasta acá todo bien pero el problema es que la Consulta me calcula la diferencia entre fechas de Id-1 d Id-2, por ejemplo si escirbo la fecha 10/10/2022 y luego selecciono Id-2 y escribo 25/12/2022 me calcula la diferencia entre ambas fechas indiferentemente si es de un id u otro, se que debe de existir una forma de "filtrar" para que solo me calcule las fechas de Id-1 con las fechas de Id-1, y las de Id-2 con Id-2 , consecutivamente id-3 con las fechas de id-3 y así continuamente, solicito su valiosa ayuda y agradezco de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Individualizar Cobros Por Fecha a Cada Cliente

Publicado por Anonimo (3316 intervenciones) el 11/03/2023 23:16:24
Dos puntos:

El mensaje (tal como ha sido publicado) se parece mas a un ladrillo que a un mensaje y no es cómodo interpretarlo máxime si no se conoce la base de datos (y a momento actual solo su autor la conoce).

Una muestra de datos (sean los de partida o los obtenidos con la consulta o ...) serian útiles para poder encontrar una solución, solución que es probable requiera mas información (o un pesado análisis 'del ladrillo' para ver si se dejan entrever).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Individualizar Cobros Por Fecha a Cada Cliente

Publicado por Arm (8 intervenciones) el 12/03/2023 02:02:49
Buenas tardes, primeramente me disculpo por la mala presentación de mi mensaje, trataré de explicarme mejor tal como se debe para que me puedan echar una manito; sucede que estoy creando una base de datos la cual es de cobros, sin embargo he logrado que me calcule los meses de retraso pero no logro que me los calcule individualmente por usuario, para que se comprenda mejor trataré de incluirlo en la siguiente imágen:


Imagen_1



Acá se aprecia las diferentes fechas que he incluído para hacer pruebas, pero sucede que como se puede apreciar está seleccionado arriba el cliente 1 y en la "grilla" o sea en el subformulario en el campo meses se ve que está haciendo cálculo pero no vemos que concuerde mucho, ésto hasta que vemos la segunda imágen:



Imagen_2




Al cliente 1 vemos que en la fecha 08/10/2022 nos marca 0 por que no hay fecha anterior, pero al cliente 2 al colocarle la fecha 10/12/2022 nos da como resultado que hay 2 meses de retraso pero es por que está tomando en cuenta el hacer la resta a la fecha de cliente 1, pero yo necesito que las fechas de cliente 1 solo se operen entre fechas de cliente 1, al cliente 2 se le operen las fechas únicamente del cliente 2.




Ésta es la consulta que da "vida" al subformulario que he presentado antes y allí está espero mas claro lo que trato de transmitir; para hacer ésta resta "entre fechas" he estado utilizando:


Imagen_3



((Nz(DifFecha("m";[FPago];DÚltimo("FPago";"TabC-2";"FPago <#" & [FPago] & "#")))))

Pero necesito como ya he dicho que a Cliente 1 le reste fechas solo de cliente 1 y a cliente 2 a fechas de cliente 2 y si hubiera 3, 4, 5, 6, 7 y a la "n", sea respectivo de sus propias fechas, agradezco muchísimo su apoyo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Individualizar Cobros Por Fecha a Cada Cliente

Publicado por Anonimo (3316 intervenciones) el 12/03/2023 10:27:21
Lo único que se precisa para poder obtener un periodo que evaluar es: cuando comienza y cuando termina.

Poco afecta que el pagador o deudor sea el cliente uno o el cliente mil doscientos quince, los datos serán los de la negociación de ese contrato (con sus respectivos plazos si ha lugar a ello) esto es: su fecha de inicio y la de su final o el final de cada plazo.

Trabajar con meses es ambiguo, del 31 de enero al 1 de febrero del mismo año, no va un mes (ni dos si la fecha final es el 1 de marzo), lo ético es considerarlo morosidad si no se cumple en los plazos acordados (sean horas, días, meses ..) y si no figura esa clausula en el contrato, antes del siguiente plazo a cumplir de esa negociación.

Como el/los cálculos se hacen en base a plazos pautados y plazo a plazo, el cliente solo es un dato útil para filtrar por el y obtener solo sus contratos y plazos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Individualizar Cobros Por Fecha a Cada Cliente

Publicado por Arm (8 intervenciones) el 12/03/2023 19:13:13
Buenas tardes de antemano gracias por tu tiempo, pero el caso es que se está realizando así por que así es requerido por que el plazo no es finito, es un pago perenne y contínuo que no tiene fin, es básicamente el pago por mantenimiento e indiferentemente de quien llegue a vivir al lugar el pago correrá indeterminadamente por que el id cliente no es por el nombre si no por el número asignado al lugar que paga ese mantenimiento.

Por otra parte el calculo se realiza por mes por que es por mes que se cobra así sea de un día final de mes a un día inicio de mes, el cobro se realiza mes completo, lo que cuenta es que ya ha pasado de un mes calendario a otro no importando los días (espero explicarme), ya he logrado que la consulta me calcule eso con la expresión que escribí anteriormente, sin embargo me los calcula (corridos) como te expuse en la imágen de la consulta que envié, y lo que necesito es que calcule fechas id-1 solo con fechas id-1, y así.

Lo otro que me estás sugiriendo bien podría hacerse con "pago" pero no es eso lo que requiero por que no tiene un tiempo finito, espero haber explicado mejor, muy amable y gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Individualizar Cobros Por Fecha a Cada Cliente

Publicado por Anonimo (3316 intervenciones) el 12/03/2023 23:56:42
Al parecer se trata de otro tipo de cobro, pero sigue siendo lo mismo.

En la formula expuesta le falta un dato que es el que se necesita para que se adapte a la necesidad : EL pagador (o moroso).

En la formula cambiaria lo de ultima por mayor, evitaría falsos positivos y se supone que la mayor será la ultima aunque se introduzcan aleatoriamente los datos.

Lo que esta publicado:

1
Meses_de_retraso: ((Nz(DifFecha("m";[FPago];DÚltimo("FPago";"TabC-2";"FPago <#" & [FPago] & "#")))))

Lo que podria funcionar de forma satisfactoria:

1
2
Meses_de_retraso: Nz(DifFecha("m";[FPago];DMax ("FPago";"TabC-2";"FPago <#" & [FPago] & "# And [aqui el campo con el ID del pagador" = " & [aquí el dato con el ID del cliente actual] ));0)
Si el dato del pagador fuera alfanumérico:

1
Meses_de_retraso: Nz(DifFecha("m";[FPago];DMax ("FPago";"TabC-2";"FPago <#" & [FPago] & "# And [aqui el campo con el ID del pagador] = '" & [aquí el dato con el ID del cliente actual] & "'"));0)


Desconociendo la estructura de las tablas y los campos implicados es lo que puedo aportar.
(espero que la sintaxis sea correcta)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Individualizar Cobros Por Fecha a Cada Cliente

Publicado por Arm (8 intervenciones) el 13/03/2023 17:18:23
Buenos días agradézco sobremanera tu buena voluntad, estoy leyendo tu mensaje y de antemano pido disculpas por que no comprendo en la última expresión que escribiste cuando indicas [aquí el dato con el Id del cliente actual], por que la parte de [aqui el campo con el Id del pagador] te lo comprendo bien.

Pero ¿cómo podría insertar luego el dato del id en la expresión?, ¿ésto no me la volvería rígida para únicamente operar el id que incluya en la expresión?, perdón por mi ignorancia pero si lo supiera no pediría ayuda, gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Individualizar Cobros Por Fecha a Cada Cliente

Publicado por Anonimo (3316 intervenciones) el 14/03/2023 02:09:26
Entiendo que para ti la privacidad es indispensable, pero si no muestras lo que tienes (y no me refiero a que publiques clientes cantidades DNIs o cualquier dato), pero sin una visión general (todo esta tachado y lo que se muestra puede ser cualquier cosa) no puedo aportar soluciones solo... lo publicado.

En alguna parte tendrá que estar un dato que relacione el registro a valorar (si esta pagado o no lo esta) con el pagador o cliente o cualquier dato que sirva para saber a quien hay que reclamarle (y posiblemente este ... pero tachado).

En esa tabla de pagos de la que se desconoce la estructura habrá un campo para la fecha, otro para la cantidad y otro para (?¿?¿) sea Pepe , Manuel o Luis.

El nombre del campo (en el que en un registro estará Pepe y en otro Luis ...) ===> [aquí el campo con el ID del pagador]

Sea Pepe o Luis o .. estará en el formulario, o el registro actual ... y ese dato indispensable para que funcione cualquier solución (la otra: aplicar la función RND y que le toque al que tenga peor suerte) es el que se ha de utilizar como: ===> [aquí el dato con el ID del cliente actual], normalmente se le conoce como el ID = Identificador único para ese cliente, porque no todos se llaman Pepe o Luis pero seguro que se repiten mas de una vez apellidos aparte) y lo mas 'económico' suele ser un campo autonumérico.

Veras, yo puedo imaginar un entorno pero no creo que se adapte al real que has diseñado y una solución adecuada a tu entorno requiere conocerlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Individualizar Cobros Por Fecha a Cada Cliente

Publicado por Arm (8 intervenciones) el 16/03/2023 01:37:32
Buenas tardes, me disculpo por no responder antes pues estaba preparando la base de datos para que me puedan echar una manito, si me proporcionaras un correo te podría enviar la base si quisieras y no es mucho abuso de tu buena voluntad para podertela enviar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Individualizar Cobros Por Fecha a Cada Cliente

Publicado por Arm (8 intervenciones) el 16/03/2023 01:53:17
Buenas tardes Eduardo Pérez Fernández, agradezco sobremanera su muy buena voluntad, me tardé un poquito en responder porque la preparé y estoy justo cargándola en éste momento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar