Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-07-2004
simon simon is offline
Miembro
 
Registrado: jun 2004
Posts: 31
Poder: 0
simon Va por buen camino
este es el codigo que estoy utilizando en el evento onchange del campo, en la tabla pedido la cual es la tabla encabezado.

Código:
procedure TFrm_Pedidos.Tbl_PedidoNumero_PedidoChange(Sender: TField);
begin
 ls_Pedido := Tbl_PedidoNumero_Pedido.Value;
  Qry_Pedidos.Close;
  with Qry_Pedidos do begin
  with sql do begin
  clear;
  add ('select * from Pedidos');
  add ('where numero_Pedido ='+IntToStr(ls_Pedido));
  open;
  if recordcount <> 0 then
   begin
   ShowMessage('@@@@@ El Numero ya Existe @@@@@');
   Abort;
   end;
	 end;
  end;
end;
en access en la opcion de indice, en la tabla peido el campo Numero_Peido esta definido como PrimaryKey, Principal si, Unica si, ignorar nulos no., en la de destalle el mismo campo esta PrimaryKey, Principal no, Unica no, ignorar nulos no
y siqueme disculpando es que esta muy estaño este error al meno que no este mal el codigo que utilizo.
gracias
Responder Con Cita
  #2  
Antiguo 05-07-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
No queda claro como le atribuyes el número al pedido, también te digo que el evento OnChange no es el más idoneo para comprobar si el pedido existe o no, si se trata de un nuevo número de pedido quizás el evento BeforeInsert te dará lugar a no obtener el error que estás obteniendo, también convendría saber que número tiene el pedido que estás insertando, o bien se repite o quizás ya esté hecho el "Post", y lo que ocurre es que se encuentre a si mismo,

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 05-07-2004
simon simon is offline
Miembro
 
Registrado: jun 2004
Posts: 31
Poder: 0
simon Va por buen camino
marcos disculpa todas las molestia pero creo que ya estamos llegando donde queremos.

cuando preciono el boton de insetar, el DBGrid me deja que digite la primera linea del DBGrid correctamente y me inserte una nueva lienea, pero me enconde la linea que digite, cuando estoy digitando en la segunda linea en el ultimo registro del DBGrid que en este caso es la cantidad del articulo como tengo un campo calculado el cual automaticamente me calculo el precio por la cantidad en esa parte es donde me esta dondo el error.
estoy ulizando este codigo en el onkeypress de la forma.

Código:
 
procedure TFrm_Pedidos.FormKeyPress(Sender: TObject; var Key: Char);
begin
 if Key = #13 then
      if not (ActiveControl is TDBGrid) then begin
      Key := #0;
      Perform(WM_NEXTDLGCTL, 0, 0);
      end
   else if (ActiveControl is TDBGrid) then
   with TDBGrid(ActiveControl) do
   if selectedindex < (fieldcount -1) then
      selectedindex := selectedindex +1
   else
      selectedindex := 0;
ya no se como disculparme por las tantas molestia pero si no puedo resolver dejare ese paso asi y mucha gracias de todo modo.

Última edición por marcoszorrilla fecha: 05-07-2004 a las 21:02:06.
Responder Con Cita
  #4  
Antiguo 05-07-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
He releido el hilo y veo que tienes una relación entre las tablas, desde Access pulsas botón derecho vas a relaciones y miras a ver si la relación es uno a muchos, verás gráficamente que de la tabla cabecera tiene que salir una unión hacia la tabla de detalle en esta mostrará el símbolo de infinito, mira no sea que por error hayas establecido una relación uno a uno y entonces puede vernir por ahí el error.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 06-07-2004
simon simon is offline
Miembro
 
Registrado: jun 2004
Posts: 31
Poder: 0
simon Va por buen camino
Mucha Gracias por tu apreciado tiempo y disculpa todas las molestia pero es que quiero a prender a programar y lo quiero hacer en delphi, creo que ya encontre el problema y tedigo a continuacion.

el problema es que las dos tablas son iguales la cual contienen un campo llamado codigo_interno_pedio pero este campo es numerico en la tabla encabezado tengo una rutina para autoincrementarlo el campo y me funciona perfectamente, ahora bien en la tabla detalle este campo cuando utilizo la rutina para autoincremetarlo me dejaba añadir el primer registro y grababa 0 y 1.
Entoce puse el campo de la tabla detalle Autoincremento y por el momento esta funcionando bien.

pero dejame aprobechar y hacerte dos pregunta. Estoy usando el Enter por el Tab en el DBGrid, como puedo hacer para cuando digite el ultimo campo en el DBGrid y precione el Enter me añada una nueva fila y por que me enconde la primera fila cuando inserta una nueva (esto lo hace solo con el tab).

mil gracias por ayudarme y pasa un feliz resto del dia
Responder Con Cita
  #6  
Antiguo 06-07-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Pon este código en el lugar apropiado:

Código Delphi [-]
DbGrid1.Perform( wm_KeyDown, vk_Down, 0 );

En cuanto a que las dos tablas el campo sea autoincrementado, no es buena idea, si está bien creada la relación maestro detalle, toda alta dada en la tabla detalle tendrá el mismo número que tenga la cabecera en ese momento.


Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.

Última edición por marcoszorrilla fecha: 06-07-2004 a las 17:35:11.
Responder Con Cita
  #7  
Antiguo 06-07-2004
simon simon is offline
Miembro
 
Registrado: jun 2004
Posts: 31
Poder: 0
simon Va por buen camino
mil gracias por su sugerencia pero es que no tengo otra opcion para resolver este mequeño problema.

sigue pasando un feliz resto del dia.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 01:07:59.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi