La instruccion post es porque antes inserto otros valores en la tabla, y al ser un campo autonumérico, según creo, hasta que no salve los datos en la tabla, no le asigna un número.
Me sirve la segunda instrucción.
El código delphi que utilizo sería el siguiente:
Código Delphi
[-]procedure Tventas.BtnGuardarClick(Sender: TObject);
var num:integer;
begin
tabla_ventas.FieldByName('Cod_cliente').AsInteger := dblookupcombobox1.KeyValue;
tabla_ventas.FieldByName('Nbre').AsString := dbedit1.Text;
tabla_ventas.FieldByName('Apellidos').AsString := dbedit3.Text;
tabla_ventas.FieldByName('Dni').AsString := dbedit2.Text;
tabla_ventas.FieldByName('Tlf').AsInteger := dbedit4.Tag;
tabla_ventas.FieldByName('Tlf_mvil').AsInteger := dbedit5.Tag;
tabla_ventas.FieldByName('Fecha').AsDateTime := datafecha.DateTime;
tabla_ventas.post;
num := tabla_ventas.Fields[1].AsInteger;
tabla_detalle.FieldByName('num_venta').AsInteger := num;
tabla_detalle.FieldByName('SubTotal').AsInteger := dbgrid1.Fields[5].AsInteger;
tabla_detalle.Post;
end;
Previamente pongo la tabla_ventas y la tabla_detalle en modo inserción desde otro formulario, pero al presionar el boton me dice que el dataset asociado a la tabla_detalle no esta en modo de inserción o edición.
¿Sábes porqué puede ser? Creía que con poner la tabla en modo inserción es suficiente.
Gracias