pmiroslav |
09.02.2013 19:11 |
Predmet:Write conflict
Imam potrebu da iz forme dopunim več popunjen rekord u tablici sa par podataka pa sam napisao slijedeći dio koda:
PreuzmiIzvorni kôd (vbnet):Dim db As Database
Dim rs As DAO.Recordset
Dim SQL As String
Set db = CurrentDb
SQL = "SELECT * FROM tblProdaja WHERE OrderID='" & OrderID & "'"
Set rs = db.OpenRecordset(SQL, dbOpenDynaset)
' neki kod i onda
With rs
.Edit
rs!ZKI = ZKI
rs!JIR = JIR
.Update
End With
međutim kada zatvorim formu iskoči poruka 'Write Conflict'. kako da to rijeÅ¡im
Hvala |
Prilozi: Conflict.jpg (Velicina datoteke:29.10 KB)
|
zxz |
09.02.2013 20:34 |
Predmet:Re: Write conflict
Zakaci primjer. |
pmiroslav |
09.02.2013 20:39 |
Predmet:Re: Write conflict
Jako je velika baza pa neznam dali ću moći. |
pmiroslav |
09.02.2013 21:17 |
Predmet:Re: Write conflict
Evo kompletan kod i tablica u koju se upisuje.
PreuzmiIzvorni kôd (vbnet):rivate Sub C_Racun_Click()
On Error GoTo Err_C_Racun_Click
Dim db As Database
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim rs3 As DAO.Recordset
Dim SQL As String
Dim o
Set db = CurrentDb
Set o = CreateObject("Raverus.FiskalizacijaDEV.COM.CentralniInformacijskiSustav")
SQL = "SELECT * FROM tblProdaja WHERE OrderID='" & OrderID & "'"
Set rs1 = db.OpenRecordset("Q_Firma")
Set rs2 = db.OpenRecordset("tblCis")
Set rs3 = db.OpenRecordset(SQL, dbOpenDynaset)
Select Case Me.Fiskal
Case 0
MsgBox "Ovo nije fiskalni racun"
Exit Sub
Case 1
Dim ZKI
ZKI = IzracunajZki(rs1!OIB, Now, Me.Fiskal, rs1!OznakaPP, "1", Me.Suma)
Dim JIR As String
Dim datumVrijemeIzdavanja As Date
datumVrijemeIzdavanja = Now
JIR = PosaljiRacun(rs1!OIB, datumVrijemeIzdavanja, "P", Me.Fiskal, rs1!OznakaPP, "1", 25, Me.iznos, Me.iznosPDV, Me.Suma, "G", OperatorOIB(), "0")
Me.ZKI = ZKI
Me.JIR = JIR
With rs3
.Edit
rs3!ZKI = ZKI
rs3!JIR = JIR
.Update
End With
rs2.AddNew
rs2!OrderID = Me.OrderID
rs2!FiskalniBroj = Me.FiskalniBroj
rs2!OIB = OperatorOIB()
rs2!ZKI_1 = ZKI
rs2!JIR_1 = JIR
rs2!UUID = o.generirajuuid()
rs2.Update
End Select
Exit_C_Racun_Click:
Exit Sub
Err_C_Racun_Click:
MsgBox err.Description
Resume Exit_C_Racun_Click
End Sub
|
Prilozi: PrimjerM.rar (Velicina datoteke:16.03 KB)
|
zxz |
10.02.2013 11:35 |
Predmet:Re: Write conflict
Da si bar jos formu zakacio.
Poruka ti se javlja zbog ovog koda:
Me.ZKI = ZKI
Me.JIR = JIR
Znaci na rs forme unosis podatke a vjerovatno ih mijenjas i sa gore navedenim kodom te posto su jednom vec uneseni pita te sta da radi.
Malo sam ti prepravio i proceduru ali ne zbog toga da bi otklonio gresku nego eto da malo bude urednija.
PreuzmiIzvorni kôd (Visual Basic):Private Sub C_Racun_Click()
On Error GoTo Err_C_Racun_Click
Dim db As Database
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim rs3 As DAO.Recordset
Dim SQL As String
Dim o, OIB, OznakaPP, Operator, Fiskal, ZKI
Dim JIR As String
Dim datumVrijemeIzdavanja As Date
Fiskal = Me.Fiskal
If Fiskal = 0 Then
MsgBox "Ovo nije fiskalni racun"
Exit Sub
ElseIf Fiskal = 1 Then
Set db = CurrentDb
Set o = CreateObject("Raverus.FiskalizacijaDEV.COM.CentralniInformacijskiSustav")
SQL = "SELECT * FROM tblProdaja WHERE OrderID='" & OrderID & "'"
Set rs1 = db.OpenRecordset("Q_Firma")
Set rs2 = db.OpenRecordset("tblCis")
Set rs3 = db.OpenRecordset(SQL, dbOpenDynaset)
OIB = rs1!OIB
datumVrijemeIzdavanja = Now
OznakaPP = rs!OznakaPP
rs1.Close
Operator = OperatorOIB()
ZKI = IzracunajZki(OIB, datumVrijemeIzdavanja, Me.Fiskal, OznakaPP, "1", Me.Suma)
JIR = PosaljiRacun(OIB, datumVrijemeIzdavanja, "P", Me.Fiskal, OznakaPP, "1", 25, Me.iznos, Me.iznosPDV, Me.Suma, "G", Operator, "0")
'Upis u rs clone forme
Me.ZKI = ZKI
Me.JIR = JIR
'-------------------
rs3.Edit
rs3!ZKI = ZKI
rs3!JIR = JIR
rs3.Update
'----------------
rs2.AddNew
rs2!OrderID = Me.OrderID
rs2!FiskalniBroj = Me.FiskalniBroj
rs2!OIB = Operator
rs2!ZKI_1 = ZKI
rs2!JIR_1 = JIR
rs2!UUID = o.generirajuuid()
rs2.Update
rs2.slose
rs3.Close
Else
MsgBox "Nije ništa odabrano ili mozda neki drugi tekst"
End If
Exit_C_Racun_Click:
Exit Sub
Err_C_Racun_Click:
MsgBox Err.Description
Resume Exit_C_Racun_Click
End Sub
Variable:
OIB, OznakaPP, Operator, Fiskal, ZKI treba dimenzionisati onako kako su dimenzionisane u tabelama.
Ja to nisam znao pa sam ostavio kao variant. |
pmiroslav |
10.02.2013 18:38 |
Predmet:Re: Write conflict
Evo ga primjer sa formom. Kod mene i sa ovim javlja isti pogrešku. |
Prilozi: PrimjerM2.rar (Velicina datoteke:838.97 KB)
|
zxz |
10.02.2013 21:11 |
Predmet:Re: Write conflict
PreuzmiIzvorni kôd (Visual Basic):Private Sub C_Racun_Click()
On Error GoTo Err_C_Racun_Click
Dim db As Database
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset
'Dim rs3 As DAO.Recordset
Dim SQL As String
Dim o, OIB As String, OznakaPP As String, Operator As String, Fiskal As String, ZKI As String
Dim JIR As String
Dim datumVrijemeIzdavanja As Date
Fiskal = Me.Fiskal
If Fiskal = 0 Then
MsgBox "Ovo nije fiskalni racun"
Exit Sub
ElseIf Fiskal = 1 Then
Set db = CurrentDb
Set o = CreateObject("Raverus.FiskalizacijaDEV.COM.CentralniInformacijskiSustav")
'SQL = "SELECT * FROM tblProdaja WHERE OrderID='" & OrderID & "'"
Set rs1 = db.OpenRecordset("Q_Firma")
Set rs2 = db.OpenRecordset("tblCis")
'Set rs3 = db.OpenRecordset(SQL, dbOpenDynaset)
OIB = rs1!OIB
datumVrijemeIzdavanja = Now
OznakaPP = rs1!OznakaPP
rs1.Close
Operator = "1234567890"
ZKI = IzracunajZki(OIB, datumVrijemeIzdavanja, Me.Fiskal, OznakaPP, "1", Me.Suma)
JIR = PosaljiRacun(OIB, datumVrijemeIzdavanja, "P", Me.Fiskal, OznakaPP, "1", 25, Me.iznos, Me.iznosPDV, Me.Suma, "G", Operator, "0")
'Upis u rs clone forme
Me.ZKI = ZKI
Me.JIR = JIR
'-------------------
'rs3.Edit
'rs3!ZKI = ZKI
'rs3!JIR = JIR
'rs3.Update
'----------------
rs2.AddNew
rs2!OrderID = Me.OrderID
rs2!FiskalniBroj = Me.FiskalniBroj
rs2!OIB = Operator
rs2!ZKI_1 = ZKI
rs2!JIR_1 = JIR
rs2!UUID = o.generirajuuid()
rs2.Update
rs2.Close
'rs3.Close
Else
MsgBox "Nije ništa odabrano ili mozda neki drugi tekst"
End If
Exit_C_Racun_Click:
Exit Sub
Err_C_Racun_Click:
MsgBox err.Description
Resume Exit_C_Racun_Click
End Sub
Evo probaj sa ovim kodom. |
pmiroslav |
11.02.2013 08:20 |
Predmet:Re: Write conflict
Ovo sa
Me.ZKI = ZKI
Me.JIR = JIR
sam prvo probao, ali ni to mi nije u redu jer nakon ovog kod otvaram Report kojem je recordsource 'tblProdaja' u kojem bi trebala biti ta dva podatka oni ne budu upisani.
Tek ako zatvorim formu pa je ponovno otvorim onda se to upiše. Probao sam i sa DoCmd.Requery ali to mi opet ne radi kako treba. |
zxz |
11.02.2013 10:42 |
Predmet:Re: Write conflict
E vidis to nisi rekao.
Odnosno nisi rekao da podizes izvjestaj od ovog rekorda koji naravno nije zapisan.
Zbog toga si vjerovatno ova 2 podatka 2 puta zapisivao i sa rekordsetom a i upisom u rs clone odnosno na formu.
da bi zapisao postojeci rekord sa forme dovoljno je samo dodati:
Me.Dirty = False
Tada ces vidjeti na izvjestaju podatke odnosno oni ce biti upisani.
Interesantno je to da is ovo mogao rijesiti i tako da is ova 2 polja na formi ostavio nevezana odnosno da u control source ne upises nista a da koristis onaj tvoj stari kod.
Vidio bi podatke na formi a u tabelu si ih svakako upisivao sa rs3. |
pmiroslav |
11.02.2013 11:20 |
Predmet:Re: Write conflict
Na kojem mjestu u proceduri trebam upisati
Me.Dirty = False |