Centar za edukaciju-BiH



#1 01.10.2012 10:00
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Funkcija molim pomoć
Napravio sam funkciju za storniranje računa.
Podaci sa računa upisani su u tblProdaja
Ako je račun proknjiženi tada su podaci upisani u tblTransakcij i tblUlazIzlaz i funkcija 'Storniraj' odradi svoj posao kako treba.
Međutim ako račun nije proknjižen tada treba promjeniti podatke samo u tblProdaj, a tblTransakcije i tblUlazIzlaz zaobići.
Trebao bih pomoć za priloženu funkciju kako da zaoniđem Rs1 i Rs2

PreuzmiIzvorni kôd (vbnet):
  1. Function Storniraj(OrderID As String)
  2. On Error GoTo Err_Storniraj
  3.  
  4. Dim Db As Database
  5. Dim Rs1 As Recordset
  6. Dim Rs2 As Recordset
  7. Dim Rs3 As Recordset
  8. Dim SQL1 As String
  9. Dim SQL2 As String
  10. Dim SQL3 As String
  11. Dim IDTransakcije As Integer
  12.  
  13. If OrderID = 0 Then GoTo Kraj
  14.  
  15. Set rcs = Nothing
  16.  
  17. Set Db = CurrentDb()
  18.  
  19. IDTransakcije = DLookup("[IDtransakcije]", "TblTransakcije", "[BrDokumenta] ='" & OrderID & "'")
  20.  
  21. SQL1 = "SELECT * FROM tblTransakcije WHERE BrDokumenta='" & OrderID & "'"
  22. SQL2 = "SELECT * FROM tblUlazIzlaz WHERE IDTransakcije=" & IDTransakcije
  23. SQL3 = "SELECT * FROM tblProdaja WHERE OrderID='" & OrderID & "'"
  24.  
  25. Set Rs1 = Db.OpenRecordset(SQL1, dbOpenDynaset)
  26. Set Rs2 = Db.OpenRecordset(SQL2, dbOpenDynaset)
  27. Set Rs3 = Db.OpenRecordset(SQL3, dbOpenDynaset)
  28.  
  29.  
  30. ' Ovaj dio se ne treba odraditi ako je IDTransakcije = Null
  31. '---------------------------------------------------------------
  32.  'U tblTransakcije upisuje se '0' u polje Brisanje
  33. If Rs1.RecordCount > 0 Then
  34. Do While Not Rs1.EOF
  35. Rs1.Edit
  36. Rs1!Brisanje = 0
  37. Rs1.Update
  38. Rs1.MoveNext
  39. Loop
  40. End If
  41.  
  42.  ' U tblUlazIzlaz upisuje se '0' u polje status
  43. If Rs2.RecordCount > 0 Then
  44. Do While Not Rs2.EOF
  45. Rs2.Edit
  46. Rs2!Status = 0
  47. Rs2.Update
  48. Rs2.MoveNext
  49. Loop
  50. End If
  51. '--------------------------------------------------------------
  52.  
  53. ' U tblProdaja upisuje se 'False' u polje Proklnjizeno i '0' u polje Strornirano
  54.  
  55.  
  56. If Rs3.RecordCount > 0 Then
  57. Do While Not Rs3.EOF
  58. Rs3.Edit
  59. Rs3!Proknjizeno = False
  60. Rs3!Stornirano = 0
  61. Rs3.Update
  62. Rs3.MoveNext
  63. Loop
  64. End If
  65.  
  66.  
  67. Rs1.Close
  68. Rs2.Close
  69. Rs3.Close
  70.  
  71. Set Db = Nothing
  72.  
  73. Izlaz:
  74. Exit Function
  75. Err_Storniraj:
  76. MsgBox "Greska broj " & err.Number & vbCrLf & err.Description & vbCrLf & "u funkciji Storniraj()"
  77.  
  78. Kraj:
  79. MsgBox "Niste popunili sve podatke"
  80. End Function

Pozdrav
↑  ↓

#2 01.10.2012 10:18
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: Funkcija molim pomoć
' Ovaj dio se ne treba odraditi ako je IDTransakcije = Null
'---------------------------------------------
------------------
'U tblTransakcije upisuje se '0' u polje Brisanje
if Format$(IDTransakcije)<>"" Then
If Rs1.RecordCount > 0 Then
Do While Not Rs1.EOF
Rs1.Edit
Rs1!Brisanje = 0
Rs1.Update
Rs1.MoveNext
Loop
End If
Endif
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#3 01.10.2012 10:58
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Funkcija molim pomoć
tako nešto sami i ja pokušao samo bez Format& ali sa ovi dobivam grešku
'Invalid use of Null'

Izgleda da je problem u uvom dijelu:

SQL1 = "SELECT * FROM tblTransakcije WHERE BrDokumenta='" & OrderID & "'"
SQL2 = "SELECT * FROM tblUlazIzlaz WHERE IDTransakcije=" & IDTransakcije

PoÅ¡to je nije pronađen IDTransakcije javlja se greÅ¡ka
Pozdrav
Ovaj post je ureden 2 puta. Posljednja izmjena 01.10.2012 11:10 od strane pmiroslav. ↑  ↓

#4 01.10.2012 12:09
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: Funkcija molim pomoć
Probaj ovako:
if Format$(IDTransakcije)<>"" Then
SQL1 = "SELECT * FROM tblTransakcije WHERE BrDokumenta='" & OrderID & "'"
SQL1 = "SELECT * FROM tblTransakcije WHERE BrDokumenta='" & OrderID & "'"
If Rs1.RecordCount > 0 Then
Do While Not Rs1.EOF
Rs1.Edit
Rs1!Brisanje = 0
Rs1.Update
Rs1.MoveNext
Loop
End If
Endif
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#5 01.10.2012 12:30
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Funkcija molim pomoć
Uspio sam na kraju ovako:

PreuzmiIzvorni kôd (vbnet):
  1. Function Storniraj(OrderID As String)
  2. On Error GoTo Err_Storniraj
  3. Dim Db As Database
  4. Dim Rs1 As Recordset
  5. Dim Rs2 As Recordset
  6. Dim Rs3 As Recordset
  7. Dim SQL1 As String
  8. Dim SQL2 As String
  9. Dim SQL3 As String
  10. Dim IDTransakcije As Integer
  11. Set rcs = Nothing
  12. Set Db = CurrentDb()
  13. If Not IsNull(DLookup("[IDtransakcije]", "TblTransakcije", "[BrDokumenta] ='" & OrderID & "'")) Then
  14.     IDTransakcije = DLookup("[IDtransakcije]", "TblTransakcije", "[BrDokumenta] ='" & OrderID & "'")
  15.     SQL1 = "SELECT * FROM tblTransakcije WHERE BrDokumenta='" & OrderID & "'"
  16.     SQL2 = "SELECT * FROM tblUlazIzlaz WHERE IDTransakcije=" & IDTransakcije
  17.     Set Rs1 = Db.OpenRecordset(SQL1, dbOpenDynaset)
  18.     Set Rs2 = Db.OpenRecordset(SQL2, dbOpenDynaset)
  19.     If Rs1.RecordCount > 0 Then
  20.     Do While Not Rs1.EOF
  21.     Rs1.Edit
  22.     Rs1!Brisanje = 0
  23.     Rs1.Update
  24.     Rs1.MoveNext
  25.     Loop
  26. End If
  27. If Rs2.RecordCount > 0 Then
  28.     Do While Not Rs2.EOF
  29.     Rs2.Edit
  30.     Rs2!Status = 0
  31.     Rs2.Update
  32.     Rs2.MoveNext
  33.     Loop
  34. End If
  35.     SQL3 = "SELECT * FROM tblProdaja WHERE OrderID='" & OrderID & "'"
  36.     Set Rs3 = Db.OpenRecordset(SQL3, dbOpenDynaset)
  37. If Rs3.RecordCount > 0 Then
  38.     Do While Not Rs3.EOF
  39.     Rs3.Edit
  40.     Rs3!Proknjizeno = False
  41.     Rs3!Stornirano = 0
  42.     Rs3.Update
  43.     Rs3.MoveNext
  44.     Loop
  45. End If
  46.     Rs1.Close
  47.     Rs2.Close
  48.     Rs3.Close
  49. Else
  50.     SQL3 = "SELECT * FROM tblProdaja WHERE OrderID='" & OrderID & "'"
  51.     Set Rs3 = Db.OpenRecordset(SQL3, dbOpenDynaset)
  52. If Rs3.RecordCount > 0 Then
  53.     Do While Not Rs3.EOF
  54.     Rs3.Edit
  55.     Rs3!Proknjizeno = False
  56.     Rs3!Stornirano = 0
  57.     Rs3.Update
  58.     Rs3.MoveNext
  59.     Loop
  60.     End If
  61.     Rs3.Close
  62.     End If
  63.     Set Db = Nothing
  64. Izlaz:
  65. Exit Function
  66. Err_Storniraj:
  67. MsgBox "Greska broj " & err.Number & vbCrLf & err.Description & vbCrLf & "u funkciji Storniraj()"
  68. Kraj:
  69. End Function

Dodao sam :
If Not Is Null (...) Then

Else

End if

I sada je sve u redu.
Pozdrav
↑  ↓

Stranice (1):1


Sva vremena su GMT +01:00. Trenutno vrijeme: 2: 13 pm.