Mira he estado intentando hacerlo asi, ya que lo hacia de otra manera, y me arrojaba todos los campos, y eso era por que no estaba tomando alguna clave para comparar, y como los campos que queria condicionar tienen los mismos valores, es por eso que me daba ese resultado. Lo que hize fue que en un combobox cargue la clave y el nombre de la evaluacion, despues sacaba solo la clave de la evaluacion y apartir de ella evaluaba que si era igual a la cave pues me hiciera la consulta. El problema de ahora es que al momento de ejecutarlo no muestra nada, ni el formulario, como que se queda en el viaje, por que sera?alguien sabe?de todas maneras les dejo el codigo que utilizo(gracias a neftali, claro!!)
Código Delphi
[-]
procedure TFormMain.btnCrearClick(Sender: TObject);
var
i:Integer;
fr:TFramePreg;
Str:String;
Evalua:string;
begin
for i := 0 to (seNumPreguntas.Value - 1) do begin
fr := TFramePreg.Create(nil);
fr.Parent := self.ScrollBox1;
fr.Top := (i * fr.Height) + 10;
fr.Align := alTop;
fr.Name := 'FramePregunta' + IntToStr(i + 1);
Fr.lblNumPregunta.Caption := IntToStr(i + 1);
Self.FRespuestas.AddObject(IntToStr(i + 1), fr);
if odd(i) then begin
fr.Panel1.Color := clBtnFace;
Fr.rgRespuestas.Color := clBtnFace;
end
else begin
fr.Panel1.Color := $00E3E8EA;
Fr.rgRespuestas.Color := $00E3E8EA;
end;
evalua:=copy(cmbEvaluacion.text,0,pos('-',cmbEvaluacion.text)-1);
query2.close;
query2.SQL.clear;
query2.sql.add('select secc_eval,secc_clave,secc_nombre from tsecciones');
query2.sql.add('where secc_eval = '''+evalua+'''');
query2.sql.add('order by secc_nombre asc');
TRY
Query2.open;
EXCEPT
messagedlg('Error en consulta:'+#13+QUERY2.SQL.TEXT,mterror,[mbok],0)
END;
while not query2.eof do begin
Str:=query2.fieldbyname('secc_nombre').asstring;
fr.lblSeccion.Caption:=Str;
query2.next;
end;
evalua:=copy(cmbEvaluacion.text,0,pos('-',cmbEvaluacion.text)-1);
query3.Close;
query3.sql.clear;
query3.sql.add('select preg_evaluacion,preg_secc,preg_clave,preg_descripcion from tpreguntas');
query3.sql.add('where preg_evaluacion = '''+evalua+'''');
query3.sql.add('order by preg_descripcion asc');
TRY
Query3.open;
EXCEPT
messagedlg('Error en consulta:'+#13+QUERY3.SQL.TEXT,mterror,[mbok],0)
END;
While not query3.eof do begin
Str:=query3.fieldbyname('preg_descripcion').asstring;
Fr.lblPregunta.Caption := Str;
query3.next;
end;
evalua:=copy(cmbEvaluacion.text,0,pos('-',cmbEvaluacion.text)-1);
query4.close;
query4.sql.clear;
query4.sql.Add('select opci_evaluacion,opci_secc,opci_pregunta,opci_clave,opci_descripcion from topciones');
query4.sql.add('where opci_evaluacion = '''+evalua+'''');
query4.sql.add('order by opci_descripcion desc');
TRY
Query4.open;
EXCEPT
messagedlg('Error en consulta:'+#13+QUERY4.SQL.TEXT,mterror,[mbok],0)
END;
While not query4.eof do begin
Fr.rgRespuestas.Items.add(query4.fieldbyname('opci_descripcion').asstring);
query4.next;
end;
end;
end;