Centar za edukaciju-BiH



#1 09.02.2013 19:11
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


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 kd (vbnet):
  1. Dim db As Database
  2. Dim rs As DAO.Recordset
  3. Dim SQL As String
  4. Set db = CurrentDb
  5. SQL = "SELECT * FROM tblProdaja WHERE OrderID='" & OrderID & "'"
  6. Set rs = db.OpenRecordset(SQL, dbOpenDynaset)
  7.  
  8. ' neki kod i onda
  9.  
  10. With rs
  11. .Edit
  12. rs!ZKI = ZKI
  13. rs!JIR = JIR
  14. .Update
  15. End With

međutim kada zatvorim formu iskoči poruka 'Write Conflict'. kako da to riješim

Hvala

Slicice prilozenih slika:
Conflict.jpg
Tip datoteke:Informacije o tipu datoteke za:jpg jpg
Preuzimanja:357
Velicina datoteke:29.10 KB
Velicina slike: 376 x 180 Pikseli


Pozdrav
↑  ↓

#2 09.02.2013 20:34
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,612


Predmet:Re: Write conflict
Zakaci primjer.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#3 09.02.2013 20:39
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Write conflict
Jako je velika baza pa neznam dali ću moći.
Pozdrav
↑  ↓

#4 09.02.2013 21:17
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Write conflict
Evo kompletan kod i tablica u koju se upisuje.
PreuzmiIzvorni kd (vbnet):
  1. rivate Sub C_Racun_Click()
  2. On Error GoTo Err_C_Racun_Click
  3.  
  4. Dim db As Database
  5. Dim rs1 As DAO.Recordset
  6. Dim rs2 As DAO.Recordset
  7. Dim rs3 As DAO.Recordset
  8. Dim SQL As String
  9. Dim o
  10. Set db = CurrentDb
  11. Set o = CreateObject("Raverus.FiskalizacijaDEV.COM.CentralniInformacijskiSustav")
  12. SQL = "SELECT * FROM tblProdaja WHERE OrderID='" & OrderID & "'"
  13. Set rs1 = db.OpenRecordset("Q_Firma")
  14. Set rs2 = db.OpenRecordset("tblCis")
  15. Set rs3 = db.OpenRecordset(SQL, dbOpenDynaset)
  16.  
  17. Select Case Me.Fiskal
  18. Case 0
  19. MsgBox "Ovo nije fiskalni racun"
  20.  
  21. Exit Sub
  22.  
  23. Case 1
  24.  
  25. Dim ZKI
  26.  
  27. ZKI = IzracunajZki(rs1!OIB, Now, Me.Fiskal, rs1!OznakaPP, "1", Me.Suma)
  28.  
  29. Dim JIR As String
  30. Dim datumVrijemeIzdavanja As Date
  31.  
  32. datumVrijemeIzdavanja = Now
  33.  
  34. JIR = PosaljiRacun(rs1!OIB, datumVrijemeIzdavanja, "P", Me.Fiskal, rs1!OznakaPP, "1", 25, Me.iznos, Me.iznosPDV, Me.Suma, "G", OperatorOIB(), "0")
  35. Me.ZKI = ZKI
  36. Me.JIR = JIR
  37.  
  38. With rs3
  39. .Edit
  40. rs3!ZKI = ZKI
  41. rs3!JIR = JIR
  42. .Update
  43. End With
  44.  
  45. rs2.AddNew
  46.        rs2!OrderID = Me.OrderID
  47.         rs2!FiskalniBroj = Me.FiskalniBroj
  48.         rs2!OIB = OperatorOIB()
  49.         rs2!ZKI_1 = ZKI
  50.         rs2!JIR_1 = JIR
  51.         rs2!UUID = o.generirajuuid()
  52. rs2.Update
  53.  
  54. End Select
  55. Exit_C_Racun_Click:
  56.     Exit Sub
  57.  
  58. Err_C_Racun_Click:
  59.     MsgBox err.Description
  60.     Resume Exit_C_Racun_Click
  61.    
  62. End Sub


Prilozi:
Informacije o tipu datoteke za:rar  PrimjerM.rar
Preuzimanja:358
Velicina datoteke:16.03 KB


Pozdrav
↑  ↓

#5 10.02.2013 11:35
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,612


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 kd (Visual Basic):
  1. Private Sub C_Racun_Click()
  2. On Error GoTo Err_C_Racun_Click
  3.  
  4. Dim db As Database
  5. Dim rs1 As DAO.Recordset
  6. Dim rs2 As DAO.Recordset
  7. Dim rs3 As DAO.Recordset
  8. Dim SQL As String
  9. Dim o, OIB, OznakaPP, Operator, Fiskal, ZKI
  10. Dim JIR As String
  11. Dim datumVrijemeIzdavanja As Date
  12.  
  13. Fiskal = Me.Fiskal
  14. If Fiskal = 0 Then
  15. MsgBox "Ovo nije fiskalni racun"
  16. Exit Sub
  17. ElseIf Fiskal = 1 Then
  18. Set db = CurrentDb
  19. Set o = CreateObject("Raverus.FiskalizacijaDEV.COM.CentralniInformacijskiSustav")
  20. SQL = "SELECT * FROM tblProdaja WHERE OrderID='" & OrderID & "'"
  21. Set rs1 = db.OpenRecordset("Q_Firma")
  22. Set rs2 = db.OpenRecordset("tblCis")
  23. Set rs3 = db.OpenRecordset(SQL, dbOpenDynaset)
  24.  
  25. OIB = rs1!OIB
  26. datumVrijemeIzdavanja = Now
  27. OznakaPP = rs!OznakaPP
  28. rs1.Close
  29. Operator = OperatorOIB()
  30. ZKI = IzracunajZki(OIB, datumVrijemeIzdavanja, Me.Fiskal, OznakaPP, "1", Me.Suma)
  31. JIR = PosaljiRacun(OIB, datumVrijemeIzdavanja, "P", Me.Fiskal, OznakaPP, "1", 25, Me.iznos, Me.iznosPDV, Me.Suma, "G", Operator, "0")
  32. 'Upis u rs clone forme
  33. Me.ZKI = ZKI
  34. Me.JIR = JIR
  35. '-------------------
  36. rs3.Edit
  37. rs3!ZKI = ZKI
  38. rs3!JIR = JIR
  39. rs3.Update
  40. '----------------
  41.  
  42. rs2.AddNew
  43. rs2!OrderID = Me.OrderID
  44. rs2!FiskalniBroj = Me.FiskalniBroj
  45. rs2!OIB = Operator
  46. rs2!ZKI_1 = ZKI
  47. rs2!JIR_1 = JIR
  48. rs2!UUID = o.generirajuuid()
  49. rs2.Update
  50.  
  51. rs2.slose
  52. rs3.Close
  53. Else
  54. MsgBox "Nije ništa odabrano ili mozda neki drugi tekst"
  55. End If
  56.  
  57. Exit_C_Racun_Click:
  58.     Exit Sub
  59.  
  60. Err_C_Racun_Click:
  61.     MsgBox Err.Description
  62.     Resume Exit_C_Racun_Click
  63.    
  64. 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.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#6 10.02.2013 18:38
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Write conflict
Evo ga primjer sa formom. Kod mene i sa ovim javlja isti pogrešku.

Prilozi:
Informacije o tipu datoteke za:rar  PrimjerM2.rar
Preuzimanja:356
Velicina datoteke:838.97 KB


Pozdrav
↑  ↓

#7 10.02.2013 21:11
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,612


Predmet:Re: Write conflict
PreuzmiIzvorni kd (Visual Basic):
  1. Private Sub C_Racun_Click()
  2. On Error GoTo Err_C_Racun_Click
  3.  
  4. Dim db As Database
  5. Dim rs1 As DAO.Recordset
  6. Dim rs2 As DAO.Recordset
  7. 'Dim rs3 As DAO.Recordset
  8. Dim SQL As String
  9. Dim o, OIB As String, OznakaPP As String, Operator As String, Fiskal As String, ZKI As String
  10. Dim JIR As String
  11. Dim datumVrijemeIzdavanja As Date
  12.  
  13. Fiskal = Me.Fiskal
  14. If Fiskal = 0 Then
  15. MsgBox "Ovo nije fiskalni racun"
  16. Exit Sub
  17. ElseIf Fiskal = 1 Then
  18. Set db = CurrentDb
  19. Set o = CreateObject("Raverus.FiskalizacijaDEV.COM.CentralniInformacijskiSustav")
  20. 'SQL = "SELECT * FROM tblProdaja WHERE OrderID='" & OrderID & "'"
  21. Set rs1 = db.OpenRecordset("Q_Firma")
  22. Set rs2 = db.OpenRecordset("tblCis")
  23. 'Set rs3 = db.OpenRecordset(SQL, dbOpenDynaset)
  24.  
  25. OIB = rs1!OIB
  26. datumVrijemeIzdavanja = Now
  27. OznakaPP = rs1!OznakaPP
  28. rs1.Close
  29. Operator = "1234567890"
  30. ZKI = IzracunajZki(OIB, datumVrijemeIzdavanja, Me.Fiskal, OznakaPP, "1", Me.Suma)
  31. JIR = PosaljiRacun(OIB, datumVrijemeIzdavanja, "P", Me.Fiskal, OznakaPP, "1", 25, Me.iznos, Me.iznosPDV, Me.Suma, "G", Operator, "0")
  32. 'Upis u rs clone forme
  33. Me.ZKI = ZKI
  34. Me.JIR = JIR
  35. '-------------------
  36. 'rs3.Edit
  37. 'rs3!ZKI = ZKI
  38. 'rs3!JIR = JIR
  39. 'rs3.Update
  40. '----------------
  41.  
  42. rs2.AddNew
  43. rs2!OrderID = Me.OrderID
  44. rs2!FiskalniBroj = Me.FiskalniBroj
  45. rs2!OIB = Operator
  46. rs2!ZKI_1 = ZKI
  47. rs2!JIR_1 = JIR
  48. rs2!UUID = o.generirajuuid()
  49. rs2.Update
  50.  
  51. rs2.Close
  52. 'rs3.Close
  53. Else
  54. MsgBox "Nije ništa odabrano ili mozda neki drugi tekst"
  55. End If
  56.  
  57. Exit_C_Racun_Click:
  58.     Exit Sub
  59.  
  60. Err_C_Racun_Click:
  61.     MsgBox err.Description
  62.     Resume Exit_C_Racun_Click
  63.    
  64. End Sub

Evo probaj sa ovim kodom.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#8 11.02.2013 08:20
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


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.
Pozdrav
↑  ↓

#9 11.02.2013 10:42
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,612


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.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#10 11.02.2013 11:20
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Write conflict
Na kojem mjestu u proceduri trebam upisati
Me.Dirty = False
Pozdrav
↑  ↓

Stranice (2):1,2


Sva vremena su GMT +02:00. Trenutno vrijeme: 12: 50 am.