Citat:
PS Uspeo sam da napravim da naprimer dignem neku svotu u jednoj na jednom record-u pa onda u drugom record-u da isto to uplatim.
Ovo je sasvim dovoljno I ovo je ispravan nacin da se problem resi. U jednom rekordu - n bi valjalo, iz mnogo razloga, bilo bi predugacko da ih navodimo sve.
To sto hoces da uradis u 'jednom rekordu' verujem da znaci 'u jednon transakciji'. Da prenos novca sa racuna na racun odradis u jednoj transakciji treba ti nevezana foma, otprilike ovako:
Code:
'Ovo je kao neka skica fome:
+-----------------------------------------------------------------------------------------+
| Forma: Prenos sa racuna na racun |
+-----------------------------------------------------------------------------------------+
| |
| Sa racuna [cboSaRacuna] prebaciti iznos [txtIznos] na racun [cboNaRacun] |
| |
| [Dugme Prebaci] [Dugme Ocisti podatke] [Dugme Zatvori formu] |
| |
| |
+-----------------------------------------------------------------------------------------+
Onda na [Dugme Prebaci].OnClick napises nesto ovako:
Code:
'Pseudo code:
Sub [Dugme Prebaci]_OnClick
dim db as DAO.database
dim strSQL_SA as string
dim strSQL_NA as string
dim intInTransaction as integer
ON Error Goto ERROER_HANDLING
intInTransaction = 0
'Pretpostavka: prebacivanje novca vrsis u tabeli tblTransakcije, imas jedno polje za iznos, + kad pare dodju na racun, - kas se skinu
'Konkretan slucaj je verovatno drugaciji malkice, ali ideja je ova:
'prvo, skini pare sa jednog rauna (to si uspeo)
'drugo, prebaci te iste pare na drugi racun
'sve ovo mora biti deo jedne transakcije. Ako iz nekog razlloga omane bilo koja od ove dve operqacije, ponistavaju se obe
'da ne bi ispalo skinuto sa racuna A ali nije prebaceno na racun B.
'Ovo opisuje kakao sam ja zamislio prebacivanje.
'Ti mozes to d auradis I na druge nacine
'Vazno je da se dva upisa u tableu odrade u jednoj procedri I jednoj transakciji (BEGIN TRANSACTION.. COMMIT/ROLLBACK'
strSQL_SA = "INSERT INTO tblTransakcije (Racun, Iznos) VALUES (cboSaRacuna, -txtIZnos)
strSQL_NA = "INSERT INTO tblTransakcije (Racun, Iznos) VALUES (cboNaRacuna, +txtIZnos)
set db = currentdb
BEGIN TRANsaction
intInTransaction =1
'ovde skidamo novac sa prvog racuna:
db.execute strSQL_SA, dbFailOnError
'ovde dodajemo taj isti iznos na drugi racun:
db.execute strSQL_NA, dbFailOnError
COMMIT transaction
'izmedju COMMT I EXIT_HERE: ne sme biti nikakvog drugog koda!
EXIT_HERE:
set db=nothing
exit sub
ERROR_HANDLING:
if inTransaction = 1 then ROLLBACK
Select Case Err
Case Else
MsgBox "Error " & Err.Number _
& vbCrLf & vbCrLf & " in procedure Sub [Dugme Prebaci]_OnClick :" _
& vbCrLf & vbCrLf & Err.Description _
End Select
resume EXIT_HERE
end sub
Skelet procedure mora biti bas ovakav, uklucujuci I ERROR_HANDLING
Ne mogu ti pomoci dalje od ovoga, nemam vremena bas ni malkice, ali verujem da ce neko od aktivnih majstora razumeti o cemu s eradi I biti voljan da ti pomogne oko razrade detalja.
Srecno :-)