Ir al contenido


Foto

[RESUELTO] Either BOF or EOF is True


  • Por favor identifícate para responder
19 respuestas en este tema

#1 abraham85

abraham85

    Advanced Member

  • Miembros
  • PipPipPip
  • 128 mensajes

Escrito 22 marzo 2010 - 05:34

hola gente como stan?
bueno como dice el titulo...me sale un error cuando desabilito todos los tabsheets de mi pagecontrol

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record

creo que debe ser porq tengo codigo que se ejecuta cuando se hace el cambio entre los tabsheets(consultas query) 
lo que yo quiero es poder desabilitar todo el pagecontrol.
spero que alguno me de una manito heheeh..saludos.
  • 0

#2 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 22 marzo 2010 - 06:36

Saludos.

El PageControl tiene la propiedad Enabled le puedes asignar False con esto deshabilitas el conjunto completo.

¿Que  sentencias tienes puesto en el OnChange?  Muéstranos un poco de código para ver si llegamos a entender el porque.
  • 0

#3 abraham85

abraham85

    Advanced Member

  • Miembros
  • PipPipPip
  • 128 mensajes

Escrito 22 marzo 2010 - 07:20

aca sta el codigo:



delphi
  1. procedure TFArticulos.PageControl1Change(Sender: TObject);
  2. begin
  3.   //aca obtengo los negocios asociados un determinado articulo
  4.   if pagecontrol1.ActivePage = tabsheet3 then
  5.   begin
  6.   ADOArtiNego2.SQL.Text := ' SELECT  n.idnegocio,n.descripcion,n.abrev '+
  7.                         ' FROM  negocio as n, relaprne as z ' +
  8.                         ' where (z.idneg = n.idnegocio) AND z.idart = '+ dbedit1.Text ;
  9.   ADOArtiNego2.OPEN;
  10.   end;
  11. //aca lleno un combobox con los negocios asociados al articulo
  12. if pagecontrol1.ActivePage = tabsheet5 then
  13.   begin
  14.   combobox1.Clear;
  15.   AQTempNeg.SQL.Text := ' SELECT distinct n.descripcion '+
  16.                         ' FROM  negocio as n, relaprne as z ' +
  17.                         ' where (z.idneg = n.idnegocio) AND z.idart = '+ dbedit1.Text ;
  18.   AQTempNeg.Active:=true;
  19.  
  20.   if AQTempNeg.IsEmpty then  combobox1.Clear
  21.   else
  22.     While not AQTempNeg.Eof do
  23.     begin
  24.       combobox1.Items.Add(AQTempNeg.Fields[0].Text);
  25.       AQTempNeg.Next;
  26.     end;
  27.   AQTempNeg.Active := False;
  28.   end;
  29.  
  30.  
  31. end;



Gracias!
  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 22 marzo 2010 - 07:45

mmm, creo que es mejor utilizar el evento OnClick con un Case + ActivePageIndex.

Saludos.
  • 0

#5 abraham85

abraham85

    Advanced Member

  • Miembros
  • PipPipPip
  • 128 mensajes

Escrito 22 marzo 2010 - 08:01

hola gente..saben..comente el codigo que me estaba molestando y aun asi me sigue tirando mismo error  :shocked:



delphi
  1. procedure TFPrincipal.Articulos1Click(Sender: TObject);
  2. begin
  3.     FArticulos:=TFArticulos.Create(self);  //aca puse el breackpoint
  4.   try
  5.     FArticulos.ShowModal;
  6.     FArticulos.PageControl1.TabIndex:=0;
  7.   finally
  8.     FArticulos.Free;
  9.   end;
  10. end;



puse un breakpoint (FArticulos:=TFArticulos.Create(self);) y me ahi me sale el error  :shocked:
no entiendo nada  :undecided:

 
  • 0

#6 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 22 marzo 2010 - 08:06

Claro, porque como tienes una consulta en el evento OnChange esa se dispara cuando creas el formulario, por eso creo que es mejor utilizarlo en el evento OnClick con un Case + TabIndex.

Saludos.
  • 0

#7 luk2009

luk2009

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.040 mensajes
  • LocationSanto Domingo

Escrito 22 marzo 2010 - 09:29

Que valor es el que tiene el dbedit1.text?
  • 0

#8 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 22 marzo 2010 - 09:42

Hola
Intenta asi:


delphi
  1. procedure TFPrincipal.Articulos1Click(Sender: TObject);
  2. begin
  3.     FArticulos:=TFArticulos.Create(self); 
  4.   try
  5.     FArticulos.PageControl1.TabIndex:=0;
  6.     FArticulos.ShowModal;
  7.   finally
  8.     FArticulos.Free;
  9.   end;
  10. end;


Saludos
  • 0

#9 abraham85

abraham85

    Advanced Member

  • Miembros
  • PipPipPip
  • 128 mensajes

Escrito 22 marzo 2010 - 12:37

caral..prove lo que me sugiriste y nada  :embarrassed:

le comente lo que habia puesto en create y nada  :cry:  le saque las lineas que le habia puesto y nada  :embarrassed:

me aparece ese mensaje dos veces..le pongo aceptar y despues me aparece el formulario  :cry:

luk2009...el dbedit1.text tiene el numero de articulo  :sad:
  • 0

#10 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 22 marzo 2010 - 12:44

Hola
Puedes poner el codigo completo del Unit a ver si se ve algo mas?.
Saludos
  • 0

#11 abraham85

abraham85

    Advanced Member

  • Miembros
  • PipPipPip
  • 128 mensajes

Escrito 22 marzo 2010 - 01:09

aca sta:



delphi
  1. unit UFArticulos;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, Grids, DBGrids, DB, ADODB, ExtCtrls, StdCtrls, Mask,
  8.   DBCtrls, Buttons, ComCtrls, CheckLst,DataModule,jpeg;
  9.  
  10. type
  11.   TFArticulos = class(TForm)
  12.     ADOQArticulos: TADOQuery;
  13.     DSQArticulos: TDataSource;
  14.     DBNavigator1: TDBNavigator;
  15.     PageControl1: TPageControl;
  16.     TabSheet1: TTabSheet;
  17.     TabSheet3: TTabSheet;
  18.     BitBtn1: TBitBtn;
  19.     BitBtn2: TBitBtn;
  20.     Label1: TLabel;
  21.     DBEdit1: TDBEdit;
  22.     Panel1: TPanel;
  23.     Label2: TLabel;
  24.     Label3: TLabel;
  25.     Label4: TLabel;
  26.     Label9: TLabel;
  27.     DBEdit9: TDBEdit;
  28.     Panel4: TPanel;
  29.     DBMemo1: TDBMemo;
  30.     DBLookupComboBox1: TDBLookupComboBox;
  31.     ADOTDiv: TADOTable;
  32.     ADOTGrupo: TADOTable;
  33.     DSTDiv: TDataSource;
  34.     DSTGrupo: TDataSource;
  35.     DBLookupComboBox2: TDBLookupComboBox;
  36.     TClase: TADOTable;
  37.     DSClase: TDataSource;
  38.     DBEdit2: TDBEdit;
  39.     TabSheet2: TTabSheet;
  40.     Label5: TLabel;
  41.     Panel3: TPanel;
  42.     DSSubClase: TDataSource;
  43.     BitBtn3: TBitBtn;
  44.     BitBtn5: TBitBtn;
  45.     ATSubClase: TADOTable;
  46.     AQTemp: TADOQuery;
  47.     BitBtn4: TBitBtn;
  48.     DBLookupComboBox3: TDBLookupComboBox;
  49.     DBLookupComboBox4: TDBLookupComboBox;
  50.     Label7: TLabel;
  51.     Label8: TLabel;
  52.     TabSheet4: TTabSheet;
  53.     Panel5: TPanel;
  54.     Label20: TLabel;
  55.     DBEdit8: TDBEdit;
  56.     DBEdit15: TDBEdit;
  57.     Label21: TLabel;
  58.     GroupBox1: TGroupBox;
  59.     Label10: TLabel;
  60.     Label11: TLabel;
  61.     DBEdit11: TDBEdit;
  62.     DBLookupComboBox5: TDBLookupComboBox;
  63.     ADONegocio: TADOTable;
  64.     DSNegocio: TDataSource;
  65.     DBGrid1: TDBGrid;
  66.     ADOArtNeg: TADOTable;
  67.     DSArtNeg: TDataSource;
  68.     ADOArtiNego2: TADOQuery;
  69.     DSrel: TDataSource;
  70.     ADOArtNegidart: TIntegerField;
  71.     ADOArtNegidneg: TIntegerField;
  72.     ADOArtiNego2idnegocio: TIntegerField;
  73.     ADOArtiNego2descripcion: TWideStringField;
  74.     ADOArtiNego2abrev: TWideStringField;
  75.     TabSheet5: TTabSheet;
  76.     DBGrid2: TDBGrid;
  77.     BitBtn6: TBitBtn;
  78.     BitBtn7: TBitBtn;
  79.     ADOartmar: TADOTable;
  80.     DSartmar: TDataSource;
  81.     ADOartmar2: TADOQuery;
  82.     DSartmar2: TDataSource;
  83.     ADOartmaridart: TIntegerField;
  84.     ADOartmaridmar: TIntegerField;
  85.     Label6: TLabel;
  86.     Label12: TLabel;
  87.     AQTempNeg: TADOQuery;
  88.     DStempneg: TDataSource;
  89.     ComboBox1: TComboBox;
  90.     ADOartmar2descripcion: TStringField;
  91.     ADOartmar2idmarca: TIntegerField;
  92.     ADOartmar2marca: TStringField;
  93.     ADOartmar2cantidad: TStringField;
  94.     DBEdit3: TDBEdit;
  95.     Label13: TLabel;
  96.     ADOQArticulosidarticulo: TIntegerField;
  97.     ADOQArticulosdescripcion: TWideStringField;
  98.     ADOQArticulosunidmed: TWideStringField;
  99.     ADOQArticuloscodpon: TIntegerField;
  100.     ADOQArticulosindice: TBCDField;
  101.     ADOQArticulossubclase: TIntegerField;
  102.     ADOQArticulosnotas: TMemoField;
  103.     ADOQArticulosclase: TIntegerField;
  104.     ADOQArticulosgrupo: TIntegerField;
  105.     ADOQArticulosdivision: TIntegerField;
  106.     ADOQArticuloscantidad: TIntegerField;
  107.     procedure BitBtn1Click(Sender: TObject);
  108.     procedure BitBtn2Click(Sender: TObject);
  109.     procedure FormCreate(Sender: TObject);
  110.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  111.     procedure ADOQArticulosAfterInsert(DataSet: TDataSet);
  112.     procedure ADOQArticulosBeforeInsert(DataSet: TDataSet);
  113.     procedure BitBtn7Click(Sender: TObject);
  114.     procedure BitBtn3Click(Sender: TObject);
  115.     procedure BitBtn4Click(Sender: TObject);
  116.     procedure DBLookupComboBox1Enter(Sender: TObject);
  117.     procedure DBLookupComboBox2Enter(Sender: TObject);
  118.     procedure DBLookupComboBox3Enter(Sender: TObject);
  119.     procedure PageControl1Change(Sender: TObject);
  120.     procedure DBEdit1Change(Sender: TObject);
  121.     procedure BitBtn6Click(Sender: TObject);
  122.     procedure ADOQArticulosAfterPost(DataSet: TDataSet);
  123.     procedure ComboBox1Change(Sender: TObject);
  124.     procedure BitBtn5Click(Sender: TObject);
  125.     procedure FormShow(Sender: TObject);
  126.  
  127.   private
  128.     { Private declarations }
  129.       procedure InitButtons; // esto es lo nuevo
  130.   public
  131.     negocio :string;{ Public declarations }
  132.   end;
  133.  
  134. var
  135.   FArticulos: TFArticulos;
  136.  
  137.  
  138. implementation
  139.  
  140. uses UFAgregaNeg, UFSelCodigo, UFBuscaArticulos, UFAgregaMar, Principal;
  141.  
  142.  
  143.  
  144. {$R *.dfm}
  145.  
  146.  
  147. // de aqui en adelante
  148. type
  149.   TDBNavigator = class(DBCtrls.TDBNavigator);
  150.  
  151. procedure TFArticulos.InitButtons;
  152. const
  153. BtnTypeName: array[TNavigateBtn] of String = (
  154. 'First', 'Prior', 'Next', 'Last', 'Insert', 'Delete', 'Edit', 'Post',
  155. 'Cancel', 'Refresh');
  156.  
  157. var
  158. I: TNavigateBtn;
  159.  
  160. begin
  161. with TDBNavigator(DBNavigator1)do
  162. for I := Low(Buttons) to High(Buttons) do
  163. begin
  164. Buttons[I].Glyph.LoadFromResourceName(
  165. HInstance, Format('CDBN_%s', [BtnTypeName[I]]));
  166. Buttons[I].Caption := BtnTypeName[I];
  167.       Buttons[I].Layout := blGlyphTop;
  168. end;
  169. end;
  170.  
  171.  
  172.  
  173. procedure TFArticulos.BitBtn1Click(Sender: TObject);
  174. begin
  175.   If (AdoQArticulos.State = dsEdit) or (AdoQArticulos.State = dsInsert) then
  176.       AdoQArticulos.Post;
  177.   Close;
  178. end;
  179.  
  180. procedure TFArticulos.BitBtn2Click(Sender: TObject);
  181. begin
  182.   Close;
  183. end;
  184.  
  185. procedure TFArticulos.FormCreate(Sender: TObject);
  186. begin
  187.   AdoQArticulos.Active := True;
  188.   DBLookupComboBox2.Enabled:=False;
  189.   DBLookupComboBox3.Enabled:=False;
  190.   DBLookupComboBox4.Enabled:=False;
  191.   combobox1.Clear;
  192.  
  193. end;
  194.  
  195.  
  196. procedure TFArticulos.ADOQArticulosAfterInsert(DataSet: TDataSet);
  197. begin
  198.   If Cancelar then AdoQArticulos.Cancel
  199.   else
  200.   begin
  201.     DbEdit1.Field.AsString:=Codigo;
  202.  
  203.   end;
  204. end;
  205.  
  206. procedure TFArticulos.ADOQArticulosBeforeInsert(DataSet: TDataSet);
  207. begin
  208.   tabsheet2.Enabled:=false;
  209.   tabsheet5.Enabled:=false;
  210.   Cancelar := true;
  211.   Tabla := 'A';
  212.   FSelCodigo:=TFSelCodigo.Create(self);
  213.   try
  214.       FSelCodigo.ShowModal;
  215.   finally
  216.       FSelCodigo.Free;
  217.   end;
  218. end;
  219.  
  220. procedure TFArticulos.BitBtn7Click(Sender: TObject);
  221. begin
  222.  
  223.   if MessageDlg('Esta seguro que desea eliminar esta marca '+ADOartmar2idmarca.AsString+' del artículo '+DBEdit1.Text,
  224.                 mtConfirmation,[mbYes,mbNo],0) = mrYes then
  225.   begin
  226.     with AQTemp do
  227.     begin
  228.       SQL.Text := 'select idnegocio from negocio where descripcion = ' + QuotedStr(combobox1.Text)  ;
  229.       Active:=true;
  230.       negocio := Fields[0].asstring;
  231.       Close;
  232.     end;
  233.  
  234.       AQTemp.SQL.Text := 'Delete From artmarneg where (idneg = '+negocio+
  235.                         ') AND (idart = '+DBEdit1.Text+') and (idmar= '+ADOartmar2idmarca.asString +')';
  236.       AQTemp.ExecSQL;
  237.  
  238.       AQTemp.SQL.Text := 'Delete From precios where (idneg = '+negocio+
  239.                         ') AND (idart = '+DBEdit1.Text+') and (idmarca= '+ADOartmar2idmarca.asString +
  240.                         ') and (periodo is null) and (mes is null) and (anio is null) and (precio is null)';
  241.       AQTemp.ExecSQL;
  242.  
  243.       ADOartmar2.Requery;
  244.       ADOartmar2.Active := False;
  245.       ADOartmar2.Active := True;
  246.   end;
  247. end;
  248.  
  249. procedure TFArticulos.BitBtn3Click(Sender: TObject);
  250. begin
  251.   FAgregaNeg:=TFAgregaNeg.Create(self);
  252.   //parametros para el form
  253.   FAgregaNeg.CodParte    := ADOQArticulosidarticulo.AsString;
  254.   FAgregaNeg.Descripcion := ADOQArticulosdescripcion.AsString;
  255.   try
  256.       FAgregaNeg.ShowModal;
  257.   finally
  258.       FAgregaNeg.Free;
  259.   end;
  260.   ADOArtNeg.Requery;
  261.   ADOArtiNego2.Active := False;
  262.   ADOArtiNego2.Active := True;
  263. end;
  264.  
  265. procedure TFArticulos.BitBtn4Click(Sender: TObject);
  266. begin
  267.   FBuscaArticulo:=TFBuscaArticulo.Create(self);
  268.   try
  269.       FBuscaArticulo.ShowModal;
  270.   finally
  271.       If FBuscaArticulo.Cod_Parte <> '' then
  272.         ADOQArticulos.Locate('idarticulo',FBuscaArticulo.Cod_Parte,[]);
  273.       FBuscaArticulo.Free;
  274.   end;
  275. end;
  276.  
  277. procedure TFArticulos.DBLookupComboBox1Enter(Sender: TObject);
  278. begin
  279. DBLookupComboBox2.Enabled:=True;
  280. end;
  281.  
  282. procedure TFArticulos.DBLookupComboBox2Enter(Sender: TObject);
  283. begin
  284. DBLookupComboBox3.Enabled:=True;
  285. end;
  286.  
  287. procedure TFArticulos.DBLookupComboBox3Enter(Sender: TObject);
  288. begin
  289. DBLookupComboBox4.Enabled:=True;
  290. end;
  291.  
  292.  
  293. procedure TFArticulos.PageControl1Change(Sender: TObject);
  294. begin      {
  295.  if pagecontrol1.ActivePage = tabsheet3 then
  296.   begin
  297.   ADOArtiNego2.SQL.Text := ' SELECT  n.idnegocio,n.descripcion,n.abrev '+
  298.                         ' FROM  negocio as n, relaprne as z ' +
  299.                         ' where (z.idneg = n.idnegocio) AND z.idart = '+ dbedit1.Text ;
  300.   ADOArtiNego2.OPEN;
  301.   end;
  302.  
  303.  if pagecontrol1.ActivePage = tabsheet5 then
  304.   begin
  305.   combobox1.Clear;
  306.   AQTempNeg.SQL.Text := ' SELECT distinct n.descripcion '+
  307.                         ' FROM  negocio as n, relaprne as z ' +
  308.                         ' where (z.idneg = n.idnegocio) AND z.idart = '+ dbedit1.Text ;
  309.   AQTempNeg.Active:=true;
  310.  
  311.   if AQTempNeg.IsEmpty then  combobox1.Clear
  312.   else
  313.     While not AQTempNeg.Eof do
  314.     begin
  315.       combobox1.Items.Add(AQTempNeg.Fields[0].Text);
  316.       AQTempNeg.Next;
  317.     end;
  318.   AQTempNeg.Active := False;
  319.   end;
  320.         }
  321.  
  322. end;
  323.  
  324. procedure TFArticulos.DBEdit1Change(Sender: TObject);
  325. begin
  326.  
  327. If not (AdoQArticulos.State IN [dsInsert,dsEdit]) then
  328.   begin
  329.   ADOArtiNego2.SQL.Text := ' SELECT  n.idnegocio,n.descripcion,n.abrev '+
  330.                         ' FROM  negocio as n, relaprne as r ' +
  331.                         ' where (r.idneg = n.idnegocio) AND r.idart = '+ dbedit1.Text ;
  332.   ADOArtiNego2.OPEN;
  333.  
  334.     combobox1.Clear;
  335.     AQTempNeg.SQL.Text := ' SELECT distinct n.descripcion '+
  336.                         ' FROM  negocio as n, relaprne as z ' +
  337.                         ' where (z.idneg = n.idnegocio) AND z.idart = '+ dbedit1.Text ;
  338.   AQTempNeg.Active:=true;
  339.  
  340.   if AQTempNeg.IsEmpty then  combobox1.Clear
  341.   else
  342.     While not AQTempNeg.Eof do
  343.     begin
  344.       combobox1.Items.Add(AQTempNeg.Fields[0].Text);
  345.       AQTempNeg.Next;
  346.     end;
  347.   AQTempNeg.Active := False;
  348.   end;
  349.  
  350. end;
  351.  
  352. procedure TFArticulos.BitBtn6Click(Sender: TObject);
  353. begin
  354.  
  355.   if trim(comboBox1.Text) = '' then showmessage('Seleccione un Negocio')
  356.   else
  357.   begin
  358.     with AQTemp do
  359.     begin
  360.     SQL.Text := 'select idnegocio from negocio where descripcion = ' + QuotedStr(combobox1.Text)  ;
  361.     Active:=true;
  362.     negocio := Fields[0].asstring;
  363.     Close;
  364.  
  365.     end;
  366.  
  367.   FAgregaMar:=TFAgregaMar.Create(self);
  368.   //parametros para el form
  369.   FAgregaMar.CodParte    := ADOQArticulosidarticulo.AsString;
  370.   FAgregaMar.Descripcion := ADOQArticulosdescripcion.AsString;
  371.   FAgregaMar.negocio := negocio;
  372.   try
  373.       FAgregaMar.ShowModal;
  374.   finally
  375.       FAgregaMar.Free;
  376.   end;
  377.   ADOartmar.Requery;
  378.   ADOartmar2.Active := False;
  379.   ADOartmar2.Active := True;
  380.   end;
  381.  
  382. end;
  383. procedure TFArticulos.ADOQArticulosAfterPost(DataSet: TDataSet);
  384. begin
  385.   tabsheet2.Enabled:=true;
  386.   tabsheet5.Enabled:=true;
  387. end;
  388.  
  389. procedure TFArticulos.ComboBox1Change(Sender: TObject);
  390. begin
  391.     with AQTemp do
  392.     begin
  393.     SQL.Text := 'select idnegocio from negocio where descripcion = ' + QuotedStr(combobox1.Text)  ;
  394.     Active:=true;
  395.     negocio := Fields[0].asstring;
  396.     Close;
  397.     end;
  398.     ADOartmar2.SQL.Text := ' SELECT variedad.descripcion,marca.idmarca,marca,cantidad  '+
  399.     ' FROM (marca inner JOIN variedad ON marca.variedad = variedad.idvariedad) inner join artmarneg on artmarneg.idmar = marca.idmarca and artmarneg.idart = ' + dbedit1.Text+ ' and artmarneg.idneg = ' + negocio ;
  400.     ADOartmar2.OPEN;
  401.  
  402. end;
  403.  
  404. procedure TFArticulos.BitBtn5Click(Sender: TObject);
  405. begin
  406.  
  407.   if MessageDlg('Tambien se eliminara las marcas asociadas a este negocio y articulo. Esta seguro que desea eliminar este negocio '+ADOArtiNego2idnegocio.AsString+' del artículo '+DBEdit1.Text,
  408.                 mtConfirmation,[mbYes,mbNo],0) = mrYes then
  409.   begin
  410.       AQTemp.SQL.Text := 'Delete From relaprne where (idart = '+DBEdit1.Text+') and (idneg= '+ADOArtiNego2idnegocio.asString +') ';
  411.       AQTemp.ExecSQL;
  412.       AQTemp.SQL.Text := 'Delete From artmarneg where (idneg = '+ADOArtiNego2idnegocio.asString +') AND (idart = '+DBEdit1.Text+') ';
  413.       AQTemp.ExecSQL;
  414.       AQTemp.SQL.Text := 'Delete From precios where (idneg = '+ADOArtiNego2idnegocio.asString +') AND (idart = '+DBEdit1.Text+') and (periodo is null) and (mes is null) and (anio is null) and (precio is null) ';
  415.       AQTemp.ExecSQL;
  416.  
  417.       ADOArtNeg.Requery;
  418.       ADOArtiNego2.Active := False;
  419.       ADOArtiNego2.Active := True;
  420.   end;
  421. end;
  422.  
  423. procedure TFArticulos.FormShow(Sender: TObject);
  424. begin
  425. { InitButtons();
  426.  if FPrincipal.label4.Caption='2' then
  427.   begin
  428.   DBNavigator1.VisibleButtons := DBNavigator1.VisibleButtons-[nbInsert,nbDelete,nbPost,nbEdit,nbCancel];
  429.   end; }
  430. end;
  431.  
  432.  
  433. end.



Gracias a todos  :cry:

  • 0

#12 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 22 marzo 2010 - 01:20

Hola
Por lo que veo el problema esta en este código, por lo que lo tienes inhabilitado:


delphi
  1. procedure TFArticulos.PageControl1Change(Sender: TObject);
  2. begin      {
  3.  if pagecontrol1.ActivePage = tabsheet3 then
  4.   begin
  5.   ADOArtiNego2.SQL.Text := ' SELECT  n.idnegocio,n.descripcion,n.abrev '+
  6.                         ' FROM  negocio as n, relaprne as z ' +
  7.                         ' where (z.idneg = n.idnegocio) AND z.idart = '+ dbedit1.Text ;
  8.   ADOArtiNego2.OPEN;
  9.   end;
  10.  
  11.  if pagecontrol1.ActivePage = tabsheet5 then
  12.   begin
  13.   combobox1.Clear;
  14.   AQTempNeg.SQL.Text := ' SELECT distinct n.descripcion '+
  15.                         ' FROM  negocio as n, relaprne as z ' +
  16.                         ' where (z.idneg = n.idnegocio) AND z.idart = '+ dbedit1.Text ;
  17.   AQTempNeg.Active:=true;
  18.  
  19.   if AQTempNeg.IsEmpty then  combobox1.Clear
  20.   else
  21.     While not AQTempNeg.Eof do
  22.     begin
  23.       combobox1.Items.Add(AQTempNeg.Fields[0].Text);
  24.       AQTempNeg.Next;
  25.     end;
  26.   AQTempNeg.Active := False;
  27.   end;
  28.         }
  29.  
  30. end;


Yo lo haria asi:


delphi
  1. procedure TFArticulos.TabSheet3Show(Sender: TObject);
  2. begin
  3.   ADOArtiNego2.SQL.Text := ' SELECT  n.idnegocio,n.descripcion,n.abrev '+
  4.                         ' FROM  negocio as n, relaprne as z ' +
  5.                         ' where (z.idneg = n.idnegocio) AND z.idart = '+ dbedit1.Text ;
  6.   ADOArtiNego2.OPEN;
  7. end;
  8.  
  9. procedure TFArticulos.TabSheet5Show(Sender: TObject);
  10. begin
  11. combobox1.Clear;
  12.   AQTempNeg.SQL.Text := ' SELECT distinct n.descripcion '+
  13.                         ' FROM  negocio as n, relaprne as z ' +
  14.                         ' where (z.idneg = n.idnegocio) AND z.idart = '+ dbedit1.Text ;
  15.   AQTempNeg.Active:=true;
  16.  
  17.   if AQTempNeg.IsEmpty then  combobox1.Clear
  18.   else
  19.     While not AQTempNeg.Eof do
  20.     begin
  21.       combobox1.Items.Add(AQTempNeg.Fields[0].Text);
  22.       AQTempNeg.Next;
  23.     end;
  24.   AQTempNeg.Active := False;
  25.   end;
  26. end;


Saludos
  • 0

#13 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 22 marzo 2010 - 01:33

Vuelvo e insisto lo que comenté en dos post anteriores ;).
  • 0

#14 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 775 mensajes
  • LocationPinar del Río, Cuba

Escrito 22 marzo 2010 - 03:17

Coincido con enecumene, deberias cambiar de evento, usar el OnClick y por el TabIndex chequeas
  • 0

#15 abraham85

abraham85

    Advanced Member

  • Miembros
  • PipPipPip
  • 128 mensajes

Escrito 23 marzo 2010 - 07:49

bueno la verdad nose que pasa....
despues de revisar codigo  etc etc etc...y sacar codigo que habia puesto y etc etc etc

se me ocurrio ver los datos que tenia en mi tabla y habian unas inconsistencias entre los datos
me refiero a las claves foraneas...habian ids que no corrrespondian con las demas tablas...asi que los revise bien y los cambie....pero igualmente nada....
noto un problema con dos dblookcombobox que no muestran la informacion que tengo en mi tabla  :shocked:
los reviso...y sta todo bien.....pruebo de nuevo..y lo mismo  :embarrassed: ... me parecia raro porq lo demas dblookcombobox que tengo en el mismo formulario muestran la informacion de mi tabla  :shocked:
se me ocurre borrar esos dos dblookcombobox y ponerlos de nuevo y configurarlos de nuevo ...y  :shocked: :shocked: :shocked: anda!!! 
por lo menos no me sale el error que me salia antes.... :undecided:
ahora con mi dbnavigator  recorro mis tres registros sin problemas....llego al ultimo y todo bien...ahora vuelvo para atras y cuando me tiene que mostrar el primer registro me SALE EL ERROR!!  :cry:...me fijo los dblookcombobox  que traian problemas...y uno muestra el dato que tiene que mostrar y el ultimo esta en blanco :shocked:....me resulta raro porq cuando apenas entro al form....los datos me los muestra bien  :cry:

nose lo que sta pasando....alguien tiene una explicacion "racional"? :embarrassed:
  • 0

#16 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 23 marzo 2010 - 08:08

Puedes decir exactamente la linea donde sale el error?
  • 0

#17 abraham85

abraham85

    Advanced Member

  • Miembros
  • PipPipPip
  • 128 mensajes

Escrito 23 marzo 2010 - 08:21

bueno....retocando un poco la base....parece que se arreglo el problema.... :shocked: :shocked: :shocked: :shocked: :shocked:  borre el dblookcombobox que no me mostraba la info y ahora anda...no sale mas el error  :cool: 

eduardo...el error salia aca


delphi
  1. procedure TFPrincipal.Articulos1Click(Sender: TObject);
  2. begin
  3.   [u][i][b] FArticulos:=TFArticulos.Create(self);  [/b][/i][/u]
  4.   try
  5.     FArticulos.PageControl1.TabIndex:=0;
  6.     FArticulos.ShowModal;
  7.   finally
  8.     FArticulos.Free;
  9.   end;
  10. end;


le comente lo qe habia puesto en el OnCreate y seguia lo mismo  :cry:
  • 0

#18 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 23 marzo 2010 - 08:23

Pero ya solucionastes?
  • 0

#19 abraham85

abraham85

    Advanced Member

  • Miembros
  • PipPipPip
  • 128 mensajes

Escrito 23 marzo 2010 - 08:25

sep  :cool:
supongo que tenia que ver con la inconsistencia en la base de datos
o q los dblookupcombobox staban corruptos (??????????????????????)  :cheesy:


  • 0

#20 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 23 marzo 2010 - 02:21

Bueno dado el caso pongo el hilo como resuelto.
  • 0




IP.Board spam blocked by CleanTalk.