![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Hola vhirginia:
Más cosas, aparte de lo que te recomienda Marcos. Creo haberos entendido. La tabla de facturas (cabeceras de facturas, TACabFactu por ejemplo) está ligada en master-detail a la de clientes (TAClientes) mediante el campo NIF ¿es así? Lo que quieres es, a su vez, poder elegir el NIF del cliente de un DBLooupComboBox ¿correcto? En dicho caso conviene que emplees un segundo TTable auxiliar (TAClientesAux) enlazado a la tabla física de Clientes, y enlaces el DBLookupCombo a dicho TTable, NO al que estás utilizando como tabla maestra. Mejor aún es que lo enlazaras a una consulta, TQuery, que sólo devolviera los NIFs (¿ordenados tal vez?) más algún campo adicional necesario para identificar al cliente, de forma que redujeras el tráfico de datos (ten en cuenta que los clientes pueden ser muchos). El que te salte el error de "key violation" es tema aparte; se deberá a que se repite el campo o campos que conforman la clave maestra de la tabla de facturas (TACabFactu), normalmente este campo es el mismo Número de Factura (irrepetible), o bien un numerador interno. No veo qué relación tiene este problema con lo del NIF, salvo que, y ahora estoy pensando maliciosamente, tengas un error de diseño y en facturas el campo NIF actúe de clave maestra o algo por el estilo, eso limitaría a una sola factura por cliente, y saltaría el error al querer facturar al mismo cliente una segunda vez. Si no es esto, revisa bien los campos clave del TDBLookupComboBox, también estoy pensando que por error hayas asignado el Datasource a la misma tabla de clientes, lo cual es incorrecto. Aquí va un ejemplito: Datafield : NIF DataSource: TACabFactu (tabla de facturas) Keyfield: NIF Listfield: Apellidos; Nombre; NIF ... (lo que sea más fácil para identificar al cliente) ListSource: TAClientesAux (tabla de clientes auxiliares) Saludos
__________________
Guía de Estilo |
|
#2
|
|||
|
|||
|
Muchas gracias compañeros,
ya solucionamos nuestro error. Cita:
un saludo al foro. |
|
#3
|
|||
|
|||
|
Rectificación: donde dije "clave maestra", quise decir "clave primaria".
Si efectivamente va por ahí el error, éste no es pequeño, vhirginia, te recomiendo que te mires un buen manual de Bases de Datos, el NIF debes definirlo como índice secundario (para facilitar mediante dicho índice las búsquedas que hace Delphi / BDE / ... en la tabla de clientes), a lo sumo podría ser parte integrante de la clave maestra junto a otro campo que le dé unicidad a la clave (aunque esto me parecería una exageración). Saludos
__________________
Guía de Estilo |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|