Hola
No se que tipo de transacciones?? o que serán.

Lo que si se es que si se quiere que se ejecute una acción con eficacia y sin que tenga problemas en access se usa algo como esto, sobre todo si se trabaja en red y con varios usuarios a la vez:
Código Delphi
[-]
procedure TFOrdProd.BitBtn1Click(Sender: TObject);
var bok : TBookMarkStr;
begin
OrdenCompra.Active := False;
OrdenCompra.SQL.Text := 'Select OrdenCompra From OrdenProd WHERE OrdenCompra ='+QuotedStr(Edit7.Text);
OrdenCompra.Active := True;
If Edit7.Text = OrdenCompra.Fields[0].Value then
MessageDlg('La orden de Compra ya Existe',mtError,[mbOK],0)
else
If Edit3.Text = '' then MessageDlg('Debe especificar el código del cliente',mtError,[mbOK],0)
else
begin
ShortDateFormat := 'dd/mm/yyyy';
DataModule1.AC1.BeginTrans;
try
If Nueva then
QTemp.SQL.Text := 'Insert Into OrdenProd (Codorden, FechaInicio, FechaRequerido, CodUsuario, Comentarios, CodCliente, Prioridad, Enrutada, OrdenCompra) '+
'Values (' +Edit2.Text+', '+QuotedStr(Edit4.Text)+', '+QuotedStr(DateToStr(DateTimePicker1.DateTime))+', '+
QuotedStr(Edit5.Text)+', '+QuotedStr(Memo1.Text)+', '+Edit3.Text+', '+IntEdit1.Text+', True, '+QuotedStr(Edit7.Text)+')'
else
QTemp.SQL.Text := 'Update OrdenProd set FechaRequerido = '+QuotedStr(DateToStr(DateTimePicker1.DateTime))+', Comentarios = '
+QuotedStr(Memo1.Text)+', CodCliente = '+Edit3.Text+', Prioridad = '+IntEdit1.Text+
' Where CodOrden = '+Edit2.Text;
QTemp.ExecSQL;
guardada := true;
IF Nueva then
begin
QOrdProd.Requery();
QOrdProd.Last;
end
else begin
bok := QOrdProd.Bookmark;
QOrdProd.Requery();
QOrdProd.Bookmark := bok;
end;
DataModule1.AC1.CommitTrans;
If Nueva then If MessageDlg('Orden Guardada.'+#13+'¿Desea agregar items a la orden?',mtConfirmation,[mbYes,mbNo],0) = mrYes then
Nueva := False;
QOrdProd.Close;
QOrdProd.Open;
TabSheet3.Show;
except
on E:Exception do DataModule1.AC1.RollbackTrans;
end;end;
Lo mas seguro es que me equivoco pero para mi lo colocado en rojo son transacciones, digo.

, me equivoco?

Saludos