Como puedo realizar que un texbox me de el valor en relación a otros Combos
1º Tengo na tabla llamada TCuotas con los siguientes campos:
Tipo de cuota (anual, mensual, trimestral...)
Concepto de Cuota (3 entrenos, 4 entrenos, ...)
Importe (precios)
Y esta rellenada con valores
2º Luego tengo un formulario basado en la tabla TSocios y entre muchos campos también están los mencionados anteriormente.
3º ahora va la pregunta en cuestión, en dicho formulario tengo un combo llamada cboTipo donde me recoge los valores que hay en tipo de cuota de la tabla TCuotas.
Otro llamado cboConcepto donde se basa en los valores de Concepto de cuota de la Tabla TCuotas y por último y un texbox llamado precio que es donde yo quisiera que al recibir el enfoque se rellene con el precio que corresponda en relación a lo elegido anteriormente en los combos anteriores
1 Respuesta
En el evento al recibir enfoque de tu textbox "precio", le pones este código:
Me.Precio= DLookUp("Importe","TCuotas","[Tipo de Cuota]='" & Me.cboTipo & "' AND [Concepto de Cuota]='" & Me.cboConcepto & "'")
Muy buenas Sveinbjorn El Rojo,
Como siempre muchas gracias por contestar He adaptado el código que me pusiste con el nombre de los campos de mi formulario:
Me.Importe = DLookup("Importe", "TCuotas", "[Tipo]='" & Me.cboTipo & "' AND [Concepto Cuota]='" & Me.cboConcepto & "'")
Pero no me hace nada al recibir el enfoque, tampoco me da error simplemente no hace nada.
Y para complicar la cosa tengo que añadir 2 casillas de descuento una con el 5% y otra con el 50%. Esto no se como sera mejor hacerlo, si con un campo a la tabla llamdado dedcuento y que me recoge un valor (1,2)y en el formulario añadir un marco con las 2 opciones, ¿y claro esta esto modificaría el código anterior o como se podría hacer?
Gracias por adelantado de nuevo.
¿Puedes pasarme una copia de tu BD para verlo?
Por lo que entiendo, cboTipo y cboConcepto devuelven valores de texto, con lo que en principio la expresión es correcta. Si no fuera así, tienes que elimianr las comillas simples.
La opción del descuento, si la haces con el marco, con valores 1 y 2, siendo uno el dto del 5% y el 2 el del 50%, quedaría algo así:
Select Case Me.mrcDescuento
Case 1
Me.Importe = DLookup("Importe", "TCuotas", "[Tipo]='" & Me.cboTipo & "' AND [Concepto Cuota]='" & Me.cboConcepto & "'") * 0.05
Case 2
Me.Importe = DLookup("Importe", "TCuotas", "[Tipo]='" & Me.cboTipo & "' AND [Concepto Cuota]='" & Me.cboConcepto & "'") * 0.5
Case Else
Me.Importe = DLookup("Importe", "TCuotas", "[Tipo]='" & Me.cboTipo & "' AND [Concepto Cuota]='" & Me.cboConcepto & "'")
End Select
He añadido el campo nuevo descuento en la tabla y el marco en el formulario FAlta, he probado el código que me pasaste y sigue sin hacer nada.
Te paso el enlace para la base de datos:
http://www.filebig.net/files/XxcNvHyrq5
Gracias
Encontré el error, aunque me costó lo suyo:
El problema es que el campo de tu tabla no se llama "Concepto Cuota", si no que es "Concepto Cuota" (con dos espacios).
Si lo modificas en el código o en la tabla, funciona correctamente.
Nota: es por pijaditas como estas por lo que no es recomendable usar espacios en los nombres de campos. Es mejor sustituirlos por la barra baja (_) o no ponerlos.
ya lo he modificado y funciona correctamente pero te fijaste que el campo importe pone el % porcentaje del descuento, como lo puedo cambiar para que me aparezca el total es decir el precio que total ya con el descuento,
como no sabia como preguntarte en concreto lo hago por aquí.(si quieres abro otra pregunta)
Como me aconsejarías plantear en la bd una tabla para apuntar los cobros de los socios mensuales y poder consultarlos cuando sea necesario?por ejemplo enero 50€, febrero 45€ etc.. todo asociado al codigo cliente. y yo que se poder buscar luego pepe y que en un subformulario me aparezcan todos los pagos ( es una forma de hablar que seguro que no esta bien planteado).
Gracias de antemano como siempre.
Yo haría una tabla con esta estructura:
IDCliente (para relacionarla con la de clientes, o socios...), período (enero, febrero, primer trimestre...), cuota (para el importe) y pagado (Sí/NO, para controlar los pagos y las deudas)
Con esta estructura, ya te puedes crear consultas para saber lo que pagó cada uno, lo que debe, quien pago en un periodo concreto... y sobre esta misma tabla puedes montar el subformulario con los pagos.
Un saludo
PD: Si no te deja hacerme la pregunta directamente, indica que es para mí en el título de la misma
Es decir la estructura y campos serian:
codigo socio, periodo, cuota y pagado. luego ejemplos de cubrirla:
5 ; enero ; 50€ ; check
25 ; 1 trimestre ; 140€ ; check
este seria el planteamiento verdad?
y como hago luego la consulta me arroje los valores en un subformulario?
gracias
Puedes hacer un formulario continuo o tabulado sobre la tabla directamente, y filtrarlo desde el formulario principal, por medio de un botón, algo así:
Un cuadro de texto o combinado para seleccionar un socio (su código)
Un botón para mostrar los resultados, con un código de este estilo:
Dim miFiltro as String Dim miSocio as Integer miSocio=Nz(Me.cboSocio,-1) 'Suponiendo que tienes un cuadro combinado con ese nombre If miSocio=-1 Then Exit Sub 'Aplicas el filtro a subformulario Me.subfrmResultado.Form.Filter=miFiltro Me.subfrmResultado.Form.FilterOn=True
Si tu subformulario se llamara "subfrmResultado".
Para quitar el filtro usarías: Me.subfrmResultado.Form.FilterOn=False
Estoy intentando hacerlo y por más vueltas que le doy no soy capaz, he estado viendo un ejemplo parecido de neckitto y lo he adaptado pero tampoco me funciona del todo bien je je.
En la bd he echo un formulario (FPagos) basado en la tabla TPagos y tiene dos cbo que uno busca por código cliente y el otro para buscar por el nombre aunque los dos deberían guardar el mismo valor que debería ser código Cliente pero no se porque razón me guarda el Id.
Y el ejemplo mandaba hacer una TAux (Es igual que TPagos) para guardar unos valores en la sql de búsqueda y mandaba hacer dos formularios (TPagos que es donde buscas y esta el botón de búsqueda) y FAux que es donde devuelve resultados, pero no funciona muy bien se ven todos los valores y si eliminas alguno pone eliminado etc.. si le puedes echar un vistazo cuando puedas te lo agradezco, porque he intentado hacerlo como tu me dijiste pero tampoco lo cogí muy bien y no fui capaz llevo desde que me lo comentaste intentándolo y mientras espero respuesta en ello seguiré je je
http://www.filebig.net/files/bxgrWkJpKa
Un saludo y gracias por adelantado
Te reenvio la BD: http://filebig.net/files/rnhMucLpcp
Las tablas y formularios nuevos son los que acaban en Svein, y siguen el sistema que te explicaba arriba.
En lo que tu hiciste tienes un montón de errores:
1º/ En la tabla TPagos te sobraría el campo "Nombre"
2º/ En el formulario FPagos, te guarda el id, en vez del código de socio, porque así se lo indicas en los cuadros combinados (SELECT [TSocios].[id], [TSocios].[Codigo Socio] FROM TSocios ORDER BY [Codigo Socio] y Columna dependiente 1 para el primero, y SELECT [TSocios].[id], [TSocios].[Nombre] FROM TSocios ORDER BY [Nombre] y Columna dependiente 1 para el segundo)
3º/ En el formularioFPagos, además, el valor del segundo cuadro combinado no te lo guarda donde creo que pretendes (en Nombre de TPagos), pues le tienes como origen CodigoSocio
4º/ En el formulario TPagos, el primer error es que el cuadro combinado del encabezado lo tienes vinculado al campo CodigoSocio, en vez de ser independiente (como explica Neckkito en su ejemplo)
5º/ En el formulario TPagos, el botón Buscar te abre un nuevo formulario, en vez de filtrar el que ya tienes, y el botón Limpiar le quita el filtro al formulario (que no tiene...)
Si en el formulario quieres ver sólo los importes pagados (por ejemplo), crea una consulta sobre TPagos, la filtras por Pagado=Sí, y la asignas al formulario como origen de datos.
Muchas gracias ya he visto los errores de mi planteamiento, pero me quedo con tu planteamiento ya que solo con lleva una tabla TPagosSvein y dos formularios FPagosSvein y FVerPagosSvein, ya he echo lo de la consulta para ver solo los pagados.
Como siempre muchas gracias
En el formulario FAlta tengo un código que al cargarlo me busca el ultimo socio de la tabla Tsocios y me pone el siguiente numero es decir si el ultimo era el 34 al cargarlo pone el 35.
Pues bien quiero evitar duplicados de socios y en el evento después de actualizar del campo DNI tengo este código:
Dim vDNI As Variant, vDNIB As Variant
vDNI = Me.DNI.Value
If IsNull(vDNI) Then Exit Sub
vDNIB = DLookup("DNI", "TSocios", "DNI='" & vDNI & "'")
If vDNIB = vDNI Then
MsgBox "ESTE SOCIO YA EXISTE", vbInformation, "AVISO"
Me.Undo
Me.cmdGuardar.SetFocus
Me.DNI.SetFocus
End If
¿Funciona pero me borra el autonumérico creado en el formulario me lo pone a cero yo solo quiero que me avise como lo puedo solucionar?
Gracias de antemano.
- Compartir respuesta