Bosna i Hercegovina



#1 09.02.2013-18:11
pmiroslav Offline
Clan
Registrovan/a od: 02.02.2009-10:32
Komentari: 1,370


Subject: Write conflict
Imam potrebu da iz forme dopunim več popunjen rekord u tablici sa par podataka pa sam napisao slijedeći dio koda:
DownloadIzvorni kod (vb.net):
  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

Ikona prilozene slike:
Conflict.jpg
Tip fajla: Informacije o fajlu: jpg jpg
Preuzimanja: 67
Veličina: 29.10 KB
Veličina slike: 376 x 180 Pixels


Pozdrav
↑  ↓

#2 09.02.2013-19:34
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,760


Subject: Re: Write conflict
Zakaci primjer.
Pozdrav
↑  ↓

#3 09.02.2013-19:39
pmiroslav Offline
Clan
Registrovan/a od: 02.02.2009-10:32
Komentari: 1,370


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

#4 09.02.2013-20:17
pmiroslav Offline
Clan
Registrovan/a od: 02.02.2009-10:32
Komentari: 1,370


Subject: Re: Write conflict
Evo kompletan kod i tablica u koju se upisuje.
DownloadIzvorni kod (vb.net):
  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 fajlu: rar  PrimjerM.rar
Preuzimanja: 71
Veličina: 16.03 KB


Pozdrav
↑  ↓

#5 10.02.2013-10:35
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,760


Subject: 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.
DownloadIzvorni kod (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.
Pozdrav
↑  ↓

#6 10.02.2013-17:38
pmiroslav Offline
Clan
Registrovan/a od: 02.02.2009-10:32
Komentari: 1,370


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

Prilozi:
Informacije o fajlu: rar  PrimjerM2.rar
Preuzimanja: 73
Veličina: 838.97 KB


Pozdrav
↑  ↓

#7 10.02.2013-20:11
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,760


Subject: Re: Write conflict
DownloadIzvorni kod (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.
Pozdrav
↑  ↓

#8 11.02.2013-07:20
pmiroslav Offline
Clan
Registrovan/a od: 02.02.2009-10:32
Komentari: 1,370


Subject: 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-09:42
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,760


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

#10 11.02.2013-10:20
pmiroslav Offline
Clan
Registrovan/a od: 02.02.2009-10:32
Komentari: 1,370


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

#11 11.02.2013-10:39
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,760


Subject: Re: Write conflict
Mozes napr. poslije ovoga::
Me.ZKI = ZKI
Me.JIR = JIR

Ako vise nista ne upisujes na formu poslije ovoga.
Ako upisujes onda mozda pri podizanju izvjestaja.
Pozdrav
↑  ↓

#12 11.02.2013-10:42
pmiroslav Offline
Clan
Registrovan/a od: 02.02.2009-10:32
Komentari: 1,370


Subject: Re: Write conflict
Sada je sve OK. Hvala puno.
Pozdrav
↑  ↓

Stranice (1): 1


All times are GMT +01:00. Current time: 21.10.2018-06:45.