He posteado todo los insert y modificado el codigo para que no me guarde cualquier cosa en la tabla temporal (table12).
También he probado a cerrar las tablas y ha cerrar los database, pero no hay manera de uqe deje de darme ese error.
Lo que hace esta aplicación es coger datos de unas tablas, los almacena temporalmente en otra y las imprime, a continuación se borran de dicha tabla auxiliar(Table12) al pulsar un boton.
Este es mi código, a ver si soys capaces de sacar algo en claro.
PD: El error solo me lo da cuando utilizo la tabla 12.
Código Delphi
[-]procedure TForm17.BitBtn1Click(Sender: TObject);
begin
Table10.Last;
Table10.Insert;
Table10.Edit;
end;
procedure TForm17.BitBtn2Click(Sender: TObject);
begin
Table10.Post;
Table10.Edit;
end;
procedure TForm17.BitBtn3Click(Sender: TObject);
begin
If Application.MessageBox('SEGURO DE ELIMINARLO?','ATENCION !!',MB_OKCANCEL+
MB_ICONQUESTION)=IDOK then
Table10.Delete;
Table10.First;
end;
procedure TForm17.BitBtn4Click(Sender: TObject);
begin
Table10.Next;
end;
procedure TForm17.BitBtn5Click(Sender: TObject);
begin
Table10.Prior;
end;
procedure TForm17.BitBtn6Click(Sender: TObject);
var
suma : Real;
a,b,c,d,e,f,g,h,i : Real;
begin
if Table1.Active= True then
a:= Table1.FieldByName('PRECIO').AsFloat * StrToFloat(Edit6.Text) else
a:= 0;
if Table2.Active= True then
b:= Table2.FieldByName('PRECIO').AsFloat * StrToFloat(Edit7.Text) else
b:= 0;
if Table3.Active= True then
c:= Table3.FieldByName('PRECIO').AsFloat * StrToFloat(Edit8.Text) else
c:= 0;
if Table4.Active= True then
d:= Table4.FieldByName('PRECIO').AsFloat * StrToFloat(Edit9.Text) else
d:= 0;
if Table5.Active= True then
e:= Table5.FieldByName('PRECIO').AsFloat * StrToFloat(Edit10.Text) else
e:= 0;
if Table6.Active= True then
f:= Table6.FieldByName('PRECIO').AsFloat * StrToFloat(Edit11.Text) else
f:= 0;
if Table7.Active= True then
g:= Table7.FieldByName('PRECIO').AsFloat * StrToFloat(Edit12.Text) else
g:= 0;
if Table8.Active= True then
h:= Table8.FieldByName('PRECIO').AsFloat * StrToFloat(Edit13.Text) else
h:= 0;
if Table9.Active= True then
i:= Table9.FieldByName('PRECIO').AsFloat * StrToFloat(Edit14.Text) else
i:= 0;
suma:= (a+b+c+d+e+f+g+h+i)+ StrToFloat(Edit5.Text);
Label20.Caption:= FloatToStr(suma); Table10.Edit;
Table10.FieldByName('TOTAL').AsFloat:= suma; end;
procedure TForm17.BitBtn7Click(Sender: TObject);
begin
If Application.MessageBox('SEGURO DE SALIR DE PRESUPUESTO?','ATENCION !!',MB_OKCANCEL+
MB_ICONQUESTION)=IDOK then
Database2.Close;
Table10.Close;
Table12.Close;
Close;
end;
procedure TForm17.DBLookupComboBox1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Edit6.Text:= '1';
end;
procedure TForm17.DBLookupComboBox2MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Edit7.Text:= '1';
end;
procedure TForm17.DBLookupComboBox3MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Edit8.Text:= '1';
end;
procedure TForm17.DBLookupComboBox4MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Edit9.Text:= '1';
end;
procedure TForm17.DBLookupComboBox5MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Edit10.Text:= '1';
end;
procedure TForm17.DBLookupComboBox6MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Edit11.Text:= '1';
end;
procedure TForm17.DBLookupComboBox7MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Edit12.Text:= '1';
end;
procedure TForm17.DBLookupComboBox8MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Edit13.Text:= '1';
end;
procedure TForm17.DBLookupComboBox9MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Edit14.Text:= '1';
end;
procedure TForm17.DBLookupComboBox10CloseUp(Sender: TObject);
begin
Table11.IndexFieldNames:= 'NOMBRE';
if Table11.FindKey([DBLookupCombobox10.Text])=True then
DBEdit2.Text:= Table11.FieldByName('DIRECCION').AsString;
DBEdit5.Text:= Table11.FieldByName('TELEFONO').AsString;
DBEdit6.Text:= Table11.FieldByName('NIF').AsString;
end;
procedure TForm17.BitBtn8Click(Sender: TObject);
begin
Form18.QuickRep1.Preview;
end;
procedure TForm17.BitBtn9Click(Sender: TObject);
begin
Table12.First;
while Table12.Eof = False do
Table12.Delete; Table12.First;
Edit5.Text := '0';
Label20.Caption := '0';
end;
procedure TForm17.Button1Click(Sender: TObject);
begin
DBEdit9.Text:= DateToStr(Date);
table10.Post;
if dblookupcombobox1.Text<>'' then
begin
Table1.IndexFieldNames:= 'DESCRIPCION';
if Table1.FindKey([DBLooKupComboBox1.Text])=True then
begin
Table12.Edit;
Table12.FieldByName('CANTIDAD').AsFloat:= StrToFloat(Form17.Edit6.Text);
Table12.FieldByName('DESCRIPCION').AsString:= Table1.FieldByName('DESCRIPCION').AsString;
Table12.FieldByName('PRECIO').AsFloat:= Table1.FieldByName('PRECIO').AsFloat;
Table12.FieldByName('SUBTOTAL').AsFloat:= Table1.FieldByName('PRECIO').AsFloat * StrToFloat(Form17.Edit6.Text);
Table12.Post;
end
else
showmessage('No se ha encontrado el producto');
end;
if dblookupcombobox2.Text<>'' then
begin
Table2.IndexFieldNames:= 'DESCRIPCION';
if Table2.FindKey([DBLooKupComboBox2.Text])=True then
begin
Table12.Insert;
Table12.FieldByName('CANTIDAD').AsFloat:= StrToFloat(Form17.Edit7.Text);
Table12.FieldByName('DESCRIPCION').AsString:= Table2.FieldByName('DESCRIPCION').AsString;
Table12.FieldByName('PRECIO').AsFloat:= Table2.FieldByName('PRECIO').AsFloat;
Table12.FieldByName('SUBTOTAL').AsFloat:= Table2.FieldByName('PRECIO').AsFloat * StrToFloat(Form17.Edit7.Text);
Table12.Post;
end
else
showmessage('No se ha encontrado el producto');
end;
if dblookupcombobox3.Text<>'' then
begin
Table3.IndexFieldNames:= 'DESCRIPCION';
if Table3.FindKey([DBLooKupComboBox3.Text])=True then
begin
Table12.Insert;
Table12.FieldByName('CANTIDAD').AsFloat:= StrToFloat(Form17.Edit8.Text);
Table12.FieldByName('DESCRIPCION').AsString:= Table3.FieldByName('DESCRIPCION').AsString;
Table12.FieldByName('PRECIO').AsFloat:= Table3.FieldByName('PRECIO').AsFloat;
Table12.FieldByName('SUBTOTAL').AsFloat:= Table3.FieldByName('PRECIO').AsFloat * StrToFloat(Form17.Edit8.Text);
Table12.Post;
end
else
showmessage('No se ha encontrado el producto');
end;
if dblookupcombobox4.Text<>'' then
begin
Table4.IndexFieldNames:= 'DESCRIPCION';
if Table4.FindKey([DBLooKupComboBox4.Text])=True then
begin
Table12.Insert;
Table12.FieldByName('CANTIDAD').AsFloat:= StrToFloat(Form17.Edit9.Text);
Table12.FieldByName('DESCRIPCION').AsString:= Table4.FieldByName('DESCRIPCION').AsString;
Table12.FieldByName('PRECIO').AsFloat:= Table4.FieldByName('PRECIO').AsFloat;
Table12.FieldByName('SUBTOTAL').AsFloat:= Table4.FieldByName('PRECIO').AsFloat * StrToFloat(Form17.Edit9.Text);
Table12.Post;
end
else
showmessage('No se ha encontrado el producto');
end;
if dblookupcombobox5.Text<>'' then
begin
Table5.IndexFieldNames:= 'DESCRIPCION';
if Table5.FindKey([DBLooKupComboBox5.Text])=True then
begin
Table12.Insert;
Table12.FieldByName('CANTIDAD').AsFloat:= StrToFloat(Form17.Edit10.Text);
Table12.FieldByName('DESCRIPCION').AsString:= Table5.FieldByName('DESCRIPCION').AsString;
Table12.FieldByName('PRECIO').AsFloat:= Table5.FieldByName('PRECIO').AsFloat;
Table12.FieldByName('SUBTOTAL').AsFloat:= Table5.FieldByName('PRECIO').AsFloat * StrToFloat(Form17.Edit10.Text);
Table12.Post;
end
else
showmessage('No se ha encontrado el producto');
end;
if dblookupcombobox6.Text<>'' then
begin
Table6.IndexFieldNames:= 'DESCRIPCION';
if Table6.FindKey([DBLooKupComboBox6.Text])=True then
begin
Table12.Insert;
Table12.FieldByName('CANTIDAD').AsFloat:= StrToFloat(Form17.Edit11.Text);
Table12.FieldByName('DESCRIPCION').AsString:= Table6.FieldByName('DESCRIPCION').AsString;
Table12.FieldByName('PRECIO').AsFloat:= Table6.FieldByName('PRECIO').AsFloat;
Table12.FieldByName('SUBTOTAL').AsFloat:= Table6.FieldByName('PRECIO').AsFloat * StrToFloat(Form17.Edit11.Text);
Table12.Post;
end
else
showmessage('No se ha encontrado el producto');
end;
if dblookupcombobox7.Text<>'' then
begin
Table7.IndexFieldNames:= 'DESCRIPCION';
if Table7.FindKey([DBLooKupComboBox7.Text])=True then
begin
Table12.Insert;
Table12.FieldByName('CANTIDAD').AsFloat:= StrToFloat(Form17.Edit12.Text);
Table12.FieldByName('DESCRIPCION').AsString:= Table7.FieldByName('DESCRIPCION').AsString;
Table12.FieldByName('PRECIO').AsFloat:= Table7.FieldByName('PRECIO').AsFloat;
Table12.FieldByName('SUBTOTAL').AsFloat:= Table7.FieldByName('PRECIO').AsFloat * StrToFloat(Form17.Edit12.Text);
Table12.Post;
end
else
showmessage('No se ha encontrado el producto');
end;
if dblookupcombobox8.Text<>'' then
begin
Table8.IndexFieldNames:= 'DESCRIPCION';
if Table8.FindKey([DBLooKupComboBox8.Text])=True then
begin
Table12.Insert;
Table12.FieldByName('CANTIDAD').AsFloat:= StrToFloat(Form17.Edit13.Text);
Table12.FieldByName('DESCRIPCION').AsString:= Table8.FieldByName('DESCRIPCION').AsString;
Table12.FieldByName('PRECIO').AsFloat:= Table8.FieldByName('PRECIO').AsFloat;
Table12.FieldByName('SUBTOTAL').AsFloat:= Table8.FieldByName('PRECIO').AsFloat * StrToFloat(Form17.Edit13.Text);
Table12.Post;
end
else
showmessage('No se ha encontrado el producto');
end;
if dblookupcombobox9.Text<>'' then
begin
Table9.IndexFieldNames:= 'DESCRIPCION';
if Table9.FindKey([DBLooKupComboBox9.Text])=True then
begin
Table12.Insert;
Table12.FieldByName('CANTIDAD').AsFloat:= StrToFloat(Form17.Edit14.Text);
Table12.FieldByName('DESCRIPCION').AsString:= Table9.FieldByName('DESCRIPCION').AsString;
Table12.FieldByName('PRECIO').AsFloat:= Table9.FieldByName('PRECIO').AsFloat;
Table12.FieldByName('SUBTOTAL').AsFloat:= Table9.FieldByName('PRECIO').AsFloat * StrToFloat(Form17.Edit14.Text);
Table12.Post;
end
else
showmessage('No se ha encontrado el producto');
end;
end;
end.