Pytanie : Aktualizacja rejestr w SQL stół przez Przodować VBA i CEREGIELE

I mieć Worksheets stół w SQL Serwer, przez CEREGIELE i VBA. Być I robić by
DELETE istniejący records
INSERT nowy rejestr na the worksheet
This praca fine.

The problem być, w the rzadki przykład gdy the WSZYWKA proces rozbijać (!) the DELEATUR już zdarzać się i the WSZYWKA być tylko część, do dokąd ono rozbijać. (na szczęście the dane wciąż siedzieć na the worksheet, w ten sposób nie the końcówka the świat)

Have próbować i UPDATE-OR-INSERT alternatywa, ale w ten sposób móc wzrost duplicates.

Can w ten sposób sugerować lepszy, lepszy sposób?

ROLLBACK TRANSAKCJA wspominać. Przykład mieć przykład? Dlaczego chwytać SQL wiadomość z powrotem VBA the użytkownik?

Or naprawdę mądry rozwiązanie?
Thanks!

Odpowiedź : Aktualizacja rejestr w SQL stół przez Przodować VBA i CEREGIELE

Ty być przykład transakcja który móc the praca dla ty.
Ono częsciowo wziąć od:
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:
        Na Błąd Rozpoczynający Err_Handler
        Ciemnawy cnn Jako ADODB.Connection
        Ciemnawy blnInTrans Boolowski

        blnInTrans = Fałszywy        'nie w Transakcja nie
        cnn = CurrentProject.Connection
        '…

        cnn.BeginTrans ()
        blnInTrans = Prawdziwy       'teraz na początku Transakcja

        'Robić twój deleatur tutaj

        'Robić twój wszywka tutaj

        cnn.CommitTrans ()
        blnInTrans = Fałszywy      'Transakcja uzupełniać bez Błąd

        '…

Exit_Handler:
        Wyjście Okręt podwodny

Err_Handler:
        Jeżeli blnInTrans Wtedy      'pośród Transakcja
            cnn.RollbackTrans ()     'Przywrócić dane pre-Transakcja stan
            'Zapytanie wznawiać the dane kasować twój DELEATUR zapytanie
        Kończyć Jeżeli
        'dalszy Błąd przerób tutaj
        Życiorys Exit_Handler
Inne rozwiązania  
 
programming4us programming4us