pmiroslav |
12.04.2019 11:46 |
Predmet:Upis u tablicu
PokuÅ¡avam iz tablice "tblDokumenti" i "tbldokumentiStavke" pomoću koda kopirati podatke u "tblTransakcije" i "tblUlazIzlaz"
Kako se radi o međuskladiÅ¡noj otpremnici trebam automatski napraviti Izlaz sa skladiÅ¡ta 020 i ulaz na skladiÅ¡te 025.
Zato bi u trebalo da se jedan zapis iz tablice tblDokumenti" i vezani zapis iz "tbldokumentiStavke" dve puta upiše u "tblTransakcije" i "tblUlazIzlaz". Ralika kod ova dva upisa treba biti u oznaci sklasišta:
rs2!Skladiste = rs1!Skladiste
rs2!Skladiste = rs1!Skladiste_2
Te status transakcije (1 - ulaz, 2 - Izlaz)
Ja sam poušao sa priloženim kodom ali ne radi
PreuzmiIzvorni kôd (vbnet):Function ProknjiziMS(ID As String) 'Medjuskladusnaotpremnica
On Error GoTo Err_ProknjiziMS
Dim db As Database
Dim rs1 As Recordset
Dim rs2 As Recordset
Dim rs3 As Recordset
Dim Rs4 As Recordset
Dim SQL As String
Dim SQL1 As String
Set rcs = Nothing
Set db = CurrentDb()
SQL = "SELECT * FROM tblDokumenti WHERE ID='" & ID & "'"
SQL1 = "SELECT * FROM tblDokumentiStavke WHERE ID='" & ID & "'"
Set rs1 = db.OpenRecordset(SQL)
Set rs2 = db.OpenRecordset("tblTransakcije")
Set rs3 = db.OpenRecordset(SQL1)
Set Rs4 = db.OpenRecordset("tblUlazIzlaz")
' Upis u tbl_Transakcije
Do While Not rs1.EOF
rs2.AddNew
rs2!Datum = rs1!Datum
rs2!Skladiste = rs1!Skladiste ' Veleprodja
rs2!IDdokumenta = rs1!IDdokumenta
rs2!BrDokumenta = rs1!ID
rs2!PartnerID = rs1!PartnerID
rs2!StatusTR = 2 'Izlaz
rs2.Update
rs1.MoveNext
Loop
Do While Not rs1.EOF
rs2.AddNew
rs2!Datum = rs1!Datum
rs2!Skladiste = rs1!Skladiste_2
rs2!IDdokumenta = rs1!IDdokumenta 'Maloprodaja
rs2!BrDokumenta = rs1!ID
rs2!PartnerID = rs1!PartnerID
rs2!StatusTR = 1 'ULAZ
rs2.Update
rs1.MoveNext
Loop
rs1.Close
rs2.Close
' Upis u Tbl_UlazIzlaz
Do While Not rs3.EOF
Rs4.AddNew
Rs4!IDTransakcije = DLookup("[IDtransakcije]", "TblTransakcije", "[BrDokumenta] ='" & ID & "'")
Rs4!Sifra = rs3!Sifra
Rs4!Izlaz = rs3!Kolicina
Rs4.Update
rs3.MoveNext
Loop
rs3.Close
Rs4.Close
Set db = Nothing
Izlaz:
Exit Function
Err_ProknjiziMS:
MsgBox "Greska broj " & err.Number & vbCrLf & err.Description & vbCrLf & "u funkciji ProknjiziMS()"
Kraj:
MsgBox "Niste popunili sve podatke"
End Function
|
Prilozi: Proba.rar (Velicina datoteke:103.82 KB)
|
zxz |
13.04.2019 22:09 |
Predmet:Re: Upis u tablicu
Posto nazivi polja nisu isti napisai parentna polja sta se u sta upisuje.
Napisi listu. |
pmiroslav |
14.04.2019 09:18 |
Predmet:Re: Upis u tablicu
U međuvremenu sam uspio prepisivanje rijeÅ¡iti sa dvije funkcije:
PreuzmiIzvorni kôd (vbnet):Function ProknjiziMS_I(ID As String) 'Medjuskladusna otpremnica izlaz
On Error GoTo Err_ProknjiziMS_I
Dim db As Database
Dim rs1 As Recordset
Dim rs2 As Recordset
Dim rs3 As Recordset
Dim Rs4 As Recordset
Dim SQL As String
Dim SQL1 As String
Set rcs = Nothing
Set db = CurrentDb()
SQL = "SELECT * FROM tblDokumenti WHERE ID='" & ID & "'"
SQL1 = "SELECT * FROM tblDokumentiStavke WHERE ID='" & ID & "'"
Set rs1 = db.OpenRecordset(SQL)
Set rs2 = db.OpenRecordset("tblTransakcije")
Set rs3 = db.OpenRecordset(SQL1)
Set Rs4 = db.OpenRecordset("tblUlazIzlaz")
' Upis u tbl_Transakcije
Do While Not rs1.EOF
rs2.AddNew
rs2!Datum = rs1!Datum
rs2!Skladiste = rs1!Skladiste
rs2!IDdokumenta = rs1!IDdokumenta
rs2!BrDokumenta = rs1!ID
rs2!PartnerID = rs1!PartnerID
rs2!OperID = tkoRadiIme() & " " & tkoRadiPrezime()
rs2!StatusTR = 2 'Izlaz
rs2.Update
rs1.MoveNext
Loop
' Upis u Tbl_UlazIzlaz
Do While Not rs3.EOF
Rs4.AddNew
Rs4!IDTransakcije = DLookup("[IDtransakcije]", "TblTransakcije", "[BrDokumenta] ='" & ID & "'And [Skladiste]='" & Skl & "'")
Rs4!Sifra = rs3!Sifra
Rs4!Izlaz = rs3!Kolicina
Rs4.Update
rs3.MoveNext
Loop
rs3.Close
Rs4.Close
Set db = Nothing
Izlaz:
Exit Function
Err_ProknjiziMS_I:
MsgBox "Greska broj " & err.Number & vbCrLf & err.Description & vbCrLf & "u funkciji ProknjiziMS()"
Kraj:
MsgBox "Niste popunili sve podatke"
End Function
i
PreuzmiIzvorni kôd (vbnet):Function ProknjiziMS_U(ID As String) 'Medjuskladusna otpremnica ulaz
On Error GoTo Err_ProknjiziMS_U
Dim db As Database
Dim rs1 As Recordset
Dim rs2 As Recordset
Dim rs3 As Recordset
Dim Rs4 As Recordset
Dim SQL As String
Dim SQL1 As String
Set rcs = Nothing
Set db = CurrentDb()
SQL = "SELECT * FROM tblDokumenti WHERE ID='" & ID & "'"
SQL1 = "SELECT * FROM tblDokumentiStavke WHERE ID='" & ID & "'"
Set rs1 = db.OpenRecordset(SQL)
Set rs2 = db.OpenRecordset("tblTransakcije")
Set rs3 = db.OpenRecordset(SQL1)
Set Rs4 = db.OpenRecordset("tblUlazIzlaz")
' Upis u tbl_Transakcije
Do While Not rs1.EOF
rs2.AddNew
rs2!Datum = rs1!Datum
rs2!Skladiste = rs1!Skladiste_2
rs2!IDdokumenta = rs1!IDdokumenta
rs2!BrDokumenta = rs1!ID
rs2!PartnerID = rs1!PartnerID
rs2!OperID = tkoRadiIme() & " " & tkoRadiPrezime()
rs2!StatusTR = 1 'Ulaz
rs2.Update
rs1.MoveNext
Loop
' Upis u Tbl_UlazIzlaz
Do While Not rs3.EOF
Rs4.AddNew
Rs4!IDTransakcije = DLookup("[IDtransakcije]", "TblTransakcije", "[BrDokumenta] ='" & ID & "'And [Skladiste]='" & Skl & "'")
Rs4!Sifra = rs3!Sifra
Rs4!Ulaz = rs3!Kolicina
Rs4.Update
rs3.MoveNext
Loop
rs3.Close
Rs4.Close
Set db = Nothing
MsgBox "Stavke sa Dokumenta broj: " _
& Format(IDdokumenta, "00-00000") & " su knjižene!", vbOKOnly, "Potvrda"
Izlaz:
Exit Function
Err_ProknjiziMS_U:
MsgBox "Greska broj " & err.Number & vbCrLf & err.Description & vbCrLf & "u funkciji ProknjiziMS()"
Kraj:
MsgBox "Niste popunili sve podatke"
End Function
Razlika u ove dvije funkcije je u
22 redu rs2!Skladiste - prvi puta je rs1!Skladiste, a drugi puta je rs1!Skladiste_2
27 red rs2!StatusTR prvi puba je 1, a drugi puta 2
Ja sam mislio da ovo bude sve u jednoj funkciji ali i ovo mi odradi posao.
Ove funkcije pozivam sa dugmeta
Private Sub Command63_Click()
ProknjiziMS_I Me.ID
ProknjiziMS_U Me.ID
Me.Proknjizeno = 1
Me.Box66.BackColor = 65408
End Sub
Ali ima tu joÅ¡ jedan problem u slučaju neke greÅ¡ke kod kod izvrÅ¡avanja ovih funkcija, podaci se ne prepiÅ¡u ali se odradi naredba na dugmetu
Me.Proknjizeno = 1
Me.Box66.BackColor = 65408
Kako ovo spriječiti? |
zxz |
14.04.2019 11:24 |
Predmet:Re: Upis u tablicu
Hajd da ovo malo uredimo.
Set rcs = Nothing
Neznam sto ce ti ovo jer ne vidim da koristis ovu variablu.
Rs4!IDTransakcije = DLookup("[IDtransakcije]", "TblTransakcije", "[BrDokumenta] ='" & ID & "'And [Skladiste]='" & Skl & "'")
Variabla Skl nije nigdje definisana ili ja to ne vidim.
Poslije cemo ovop svesti na jednu funkciju |
pmiroslav |
14.04.2019 11:33 |
Predmet:Re: Upis u tablicu
Treba samo sai izgleda izostavio u primjeru
Dim Skl As String
U prvoj funkciji treba
Skl = rs1!Skladiste
A u drugoj
Skl = rs1!Skladiste_2
Radi se o međuskladiÅ¡noj otpremnici. Podatke upisujem u tblDokumenti i tblDokumentiStavke.
Znači saveleprodajnog skladiÅ¡ta (skladiÅ¡te) skidam robu, a na maloprodajno skladiÅ¡te (skladižte_2) dodajem robu.
Kada upišem jedan podatak u tblDokumenti nakon toga u tblTransakcije trebam upisati tva podatka
-Transakciju za izlaz sa skladišta i transakciju az ulaz na drugo skladište |
zxz |
14.04.2019 22:16 |
Predmet:Re: Upis u tablicu
Htio sam ovo popraviti ali izgleda mije orginal app.
imas i ovo:
DLookup("[IDtransakcije]", "TblTransakcije", "[BrDokumenta] ='" & ID & "'And [Skladiste]='" & Skl & "'")
ovdje nemoze biti skl skladiste_2 jer ga nema u tabeli TblTransakcije.
imas i ove funkcije negdje
tkoRadiIme() & " " & tkoRadiPrezime()
Citaju ime i prezime.
moze se to bolje napraviti.
Neznam stao ti trebaju polja skladiste i skladiste_2
Kad bi stavio orginal lakse bi komunicirali. |
pmiroslav |
15.04.2019 07:38 |
Predmet:Re: Upis u tablicu
U tablici tblDokumenti imaš Skladiste i Skladiste_2.
Kada se radi o MeđuskladiÅ¡noj otpremnici tada se roba prebacuje sa skladiÅ¡ta na skaldiÅ¡te_2.
u tblTransakcije za jedan zapis iz tblDokumenti prave se dva zapisa u tblTransakcije.
1 Izlaz (u polje skladiste upisuje se "Skladiste" iz tblDokumenti i statusTR =2
2 Ulaz (u polje skladiste upisuje se "Skladiste_2" iz tblDokumenti i statusTR =1
Također i vezani slogovi iz tblDokumentiStavke u tblUlazIzlaz
Ovo tkoRadiIme() & " " & tkoRadiPrezime() za sada nije bitno jer se ti podaci spremaju u memoriju kod logiranja. To se sada može izostaviti,
Evo primjer: |
Prilozi: Proba_MP.rar (Velicina datoteke:85.75 KB)
|
zxz |
18.04.2019 00:09 |
Predmet:Re: Upis u tablicu
Evo valjda je to to.
Ako bude nekih greski u zapisima javi.
Nisam imao puno vremena pa nisam bas sve ni iscitao do kraja.
PreuzmiIzvorni kôd (Visual Basic):Function ProknjiziMS(ID As String) 'Medjuskladusnaotpremnica
On Error GoTo Err_ProknjiziMS_U
Dim db As Database
Dim rs1 As Recordset, rs2 As Recordset
Dim SQL1 As String, SQL2 As String, Skladiste(2) As String
Dim I As Integer, IdTransakcije(2) As Integer
Set db = CurrentDb()
SQL1 = "SELECT * FROM tblDokumenti WHERE ID='" & ID & "'"
SQL2 = "SELECT * FROM tblTransakcije"
Set rs1 = db.OpenRecordset(SQL1)
Set rs2 = db.OpenRecordset(SQL2)
' Upis u tbl_Transakcije
Skladiste(1) = rs1!Skladiste
Skladiste(2) = rs1!Skladiste_2
For I = 1 To 2
rs2.AddNew
rs2!Datum = rs1!Datum
rs2!Skladiste = Skladiste(I)
rs2!IDdokumenta = rs1!IDdokumenta
rs2!BrDokumenta = rs1!ID
rs2!PartnerID = rs1!PartnerID
rs2!OperID = "aa" 'tkoRadiIme() & " " & tkoRadiPrezime()
rs2!StatusTR = I
rs2.Update
rs2.MoveLast
IdTransakcije(I) = rs2!IdTransakcije
Next I
rs1.Close
rs2.Close
SQL1 = "SELECT * FROM tblDokumentiStavke WHERE ID='" & ID & "'"
SQL2 = "SELECT * FROM tblUlazIzlaz"
Set rs1 = db.OpenRecordset(SQL1)
Set rs2 = db.OpenRecordset(SQL2)
' Upis u Tbl_UlazIzlaz
For I = 1 To 2
rs2.AddNew
rs2!IdTransakcije = IdTransakcije(I)
rs2!Sifra = rs1!Sifra
rs2!Ulaz = rs1!Kolicina
rs2.Update
Next I
rs1.Close
rs2.Close
Set db = Nothing
MsgBox "Stavke sa Dokumenta broj: " _
& Format(IDdokumenta, "00-00000") & " su knjižene!", vbOKOnly, "Potvrda"
Izlaz:
Exit Function
Err_ProknjiziMS_U:
MsgBox "Greska broj " & err.Number & vbCrLf & err.Description & vbCrLf & "u funkciji ProknjiziMS()"
Kraj:
MsgBox "Niste popunili sve podatke"
End Function
|
pmiroslav |
18.04.2019 07:23 |
Predmet:Re: Upis u tablicu
Evo probao sam i dobro je.
Hvala puno. |
pmiroslav |
18.04.2019 17:49 |
Predmet:Re: Upis u tablicu
Ipak ima jedan problem.
Prvi upis (IDTransakcije = 2) u tblUlazIzlaz trebalo bi biti
Ulaz = 0
Izlaz =1
Drugi upis (IDtransakcije = 3) u tblUlazIzlaz je dobar
Ulaz = 1
Izlaz = 0 |
Prilozi: Image2.jpg (Velicina datoteke:282.17 KB)
|