>Local loConn as "ADODB.Connection" >Local loCmd as "ADODB.Command" >Local loRs as "ADODB.Recordset" >Local lsString as String >*** >loConn = CreateObject("ADODB.Connection") >loCmd = CreateObject("ADODB.Command") >* with this COMENTED line the transaction work >* loConn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Password=mypassword;Initial Catalog=mydatabase;Data Source=myserver" >* with this ACTIVE line the DONT transaction work >loConn.ConnectionString = "Driver={SQL Native Client};Server=myserver;Database=mydatabase;Uid=sa;Pwd=mypassword;" >loConn.Open() >loCmd.ActiveConnection = loConn >loCmd.CommandText = "BEGIN TRANSACTION mydatabase" >loRs = loCmd.Execute() >loCmd.CommandText = "Update mytable set myfield = 45 where mykey = 289880" >loRs = loCmd.Execute() >loCmd.CommandText = "ROLLBACK TRANSACTION mydatabase" >loRs = loCmd.Execute() >Did you try passing 3 commands to one command as a batch?