Fråga : Uppdateringrekord i SQL bordlägger via Excel VBA och ADO

Jag har Excelarbetssedlar som att uppdatera bordlägger i SQL-server, via ADO och VBA. Detta jag gör rekord för records
INSERT för by
DELETE existerande nya på arbetena för worksheet
This problemet för fine.

The är, i det sällsyntt anföra som exempel, när de processaa krascharna för MELLANLÄGGET (!) BORTTAGNINGSEN har redan händt, och MELLANLÄGGET är endast delen, upp till var det kraschade. (datan är lyckligtvis stilla sammanträde på arbetssedeln, så inte avsluta av världen), försökt och UPDATE--OR-INSERTalternativet

Have, men denna kan ge löneförhöjning till duplicates.

Can som någon föreslår ett bättre, fool-proof långt? TRANSAKTIONEN för

ROLLBACK nämndes. Någon har ett exempel? Hur tillfångatagandeSQLS meddelanden drar tillbaka till VBA för att larma användaren?

Or en egentligen klyftig lösning till denna?
Thanks!
" klar "

Svar : Uppdateringrekord i SQL bordlägger via Excel VBA och ADO

Detta är ett exempel av transaktionen som kunde göra jobbet för dig.
Det togs delvis från:
http://bytes.com/topic/access/insights/677490-ado-transaction-processing
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
        På felet GoTo Err_Handler
        Dunkel cnn som ADODB.Connection
        Dunkla blnInTrans som Boolean

        blnInTrans = falskt        'inte i en transaktion som av ännu
        cnn = CurrentProject.Connection
        '…,

        cnn.BeginTrans ()
        blnInTrans = True       'nu i början av en transaktion

        'Gör din borttagnings här

        'Gör ditt mellanlägg här

        cnn.CommitTrans ()
        blnInTrans = falska      'transaktioner avslutade utan fel

        '…,

Exit_Handler:
        Gå ut suben

Err_Handler:
        Om blnInTrans därefter      'i mitt av en transaktion
            återställandedata för cnn.RollbackTrans     () 'till den statliga pre-Transaktionen
            'Detta ska återställande som datan som tas bort av din BORTTAGNINGS, query
        Avsluta om
        'mer ytterligare fel som här bearbetar
        Meritförteckning Exit_Handler
Andra lösningar  
 
programming4us programming4us