Bosna i Hercegovina



#16 19.01.2014-09:43
pmiroslav Offline
Clan
Registrovan/a od: 02.02.2009-10:32
Komentari: 1,371


Subject: Re: Kopiranje baze (nova godina)
Upravo sam probao i sve radi OK.
Pozdrav
↑  ↓

#17 20.01.2014-09:14
pmiroslav Offline
Clan
Registrovan/a od: 02.02.2009-10:32
Komentari: 1,371


Subject: Re: Kopiranje baze (nova godina)
Ovo sve radi OK. i nemam primjedbe, međuti moja zamisao je bila malo drugačija.
Želio bih da se cijeli postupak izrade be baze za novu godinu nekako automatizira.
Ovdje ipak treba bazu 'be.sys' napraviti ručno, a to opet zna samo programer. Što ako on recimo ode u penziju, a korisnik nezna čačkati po tablicama.
Be.sys se ne može napraviti jednom za svagda jer se neke stvari tokom godine promjene(tablica artikala je dopunjena novim proizvodima, tablica kupaca novim kupcima itd.)
Pozdrav
↑  ↓

#18 20.01.2014-09:26
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,762


Subject: Re: Kopiranje baze (nova godina)
Onda mozes u be.sys staviti sve prazne tablice te napraviti slican kod za prekopiravanje podataka iz zadnje godine u kodne tabele nove gosine, na isti nacin kako si to napravio i zaprenos pocetnog stanja.

Jedini problem ovoga je ako imas negdje autonumber a ljudi ga koriste kao sifarnik i ako imas dozvolu brisanjau kodnim tabelama.
Tada se moze desiti da sifre nisu iste a ljudi vec navikli na to.

U takvim slucajevima mora se vrsiti export tabela.
Pozdrav
Ovaj komentar je mijenjan 1 puta. zadnja izmjena 20.01.2014-09:29 od strane zxz. ↑  ↓

#19 20.01.2014-18:12
pmiroslav Offline
Clan
Registrovan/a od: 02.02.2009-10:32
Komentari: 1,371


Subject: Re: Kopiranje baze (nova godina)
Evo to je to radi izvrsno. Jedino kako provjeriti dali baza koja se pravi več postoji da korisnik nebi pregazio staru bazu.
DownloadIzvorni kod (vb.net):
  1. Function NovaGodina(Godina)
  2. Dim Db As Database, NovaDb As Database
  3. Dim SQL As String
  4. Dim Rs As Recordset
  5. Dim PutanjaBaza As String, Putanja As String
  6. Dim ImeNoveBaze As String
  7. Dim Sl_PocetnaJM As Recordset
  8. Dim Sl_ZavrsnaJM As Recordset
  9. Dim Sl_PocetnaSKL As Recordset
  10. Dim Sl_ZavrsnaSKL As Recordset
  11. Dim Sl_PocetnaDOB As Recordset
  12. Dim Sl_ZavrsnaDOB As Recordset
  13. Dim Sl_PocetnaMAT As Recordset
  14. Dim Sl_ZavrsnaMAT As Recordset
  15. Dim Sl_PocetnaDUL As Recordset
  16. Dim Sl_ZavrsnaDUL As Recordset
  17. Dim Sl_PocetnaDIZ As Recordset
  18. Dim Sl_ZavrsnaDIZ As Recordset
  19. Dim Sl_PocetnaKTA As Recordset
  20. Dim Sl_ZavrsnaKTA As Recordset
  21. Dim Sl_PocetnaUL As Recordset
  22. Dim Sl_ZavrsnaUL As Recordset
  23.  
  24. Set Db = CurrentDb()
  25.  
  26. SQL = "SELECT TOP 1 Database " _
  27.    & "FROM MSysObjects " _
  28.    & "WHERE Database Is Not Null"
  29. Set Rs = Db.OpenRecordset(SQL)
  30. Putanja = Rs.Fields(0)
  31. Rs.Close
  32.  
  33. PutanjaBaza = Put_Baza(Putanja)
  34. ImeNoveBaze = "Skladiste_" & Godina & "_be.mdb"
  35. FileCopy PutanjaBaza & "be.sys", PutanjaBaza & ImeNoveBaze
  36. Set NovaDb = OpenDatabase(PutanjaBaza & ImeNoveBaze)
  37.  
  38. 'Kopiranje u tablicu Jedinice
  39. Set Sl_PocetnaJM = Db.OpenRecordset("Jedinice", dbOpenDynaset)
  40. Set Sl_ZavrsnaJM = NovaDb.OpenRecordset("Jedinice", dbOpenDynaset)
  41. If Sl_PocetnaJM.RecordCount > 0 Then
  42.         Sl_PocetnaJM.MoveFirst
  43.         While Not Sl_PocetnaJM.EOF
  44.             With Sl_ZavrsnaJM
  45.                  .AddNew
  46.         ![JM] = Sl_PocetnaJM![JM]
  47.         ![MJERA] = Sl_PocetnaJM![MJERA]
  48.         .Update
  49.             End With
  50.          Sl_PocetnaJM.MoveNext
  51.         Wend
  52.    End If
  53. 'Kopiranje u tablicu Skladišta
  54. Set Sl_PocetnaSKL = Db.OpenRecordset("Skladišta", dbOpenDynaset)
  55. Set Sl_ZavrsnaSKL = NovaDb.OpenRecordset("Skladišta", dbOpenDynaset)
  56. If Sl_PocetnaSKL.RecordCount > 0 Then
  57.         Sl_PocetnaSKL.MoveFirst
  58.         While Not Sl_PocetnaSKL.EOF
  59.             With Sl_ZavrsnaSKL
  60.                  .AddNew
  61.         ![IDSkladišta] = Sl_PocetnaSKL![IDSkladišta]
  62.         ![NazivSkladišta] = Sl_PocetnaSKL![NazivSkladišta]
  63.         .Update
  64.             End With
  65.          Sl_PocetnaSKL.MoveNext
  66.         Wend
  67.    End If
  68. 'Kopiranje u tablicu Dobavljaci
  69. Set Sl_PocetnaDOB = Db.OpenRecordset("tblDobavljaci", dbOpenDynaset)
  70. Set Sl_ZavrsnaDOB = NovaDb.OpenRecordset("tblDobavljaci", dbOpenDynaset)
  71. If Sl_PocetnaDOB.RecordCount > 0 Then
  72.         Sl_PocetnaDOB.MoveFirst
  73.         While Not Sl_PocetnaDOB.EOF
  74.             With Sl_ZavrsnaDOB
  75.                  .AddNew
  76.         ![IDdobavljaca] = Sl_PocetnaDOB![IDdobavljaca]
  77.         ![Dobavljac] = Sl_PocetnaDOB![Dobavljac]
  78.         ![Mjesto] = Sl_PocetnaDOB![Mjesto]
  79.         ![Adresa] = Sl_PocetnaDOB![Adresa]
  80.         ![Država] = Sl_PocetnaDOB![Država]
  81.         .Update
  82.             End With
  83.          Sl_PocetnaDOB.MoveNext
  84.         Wend
  85.    End If
  86. 'Kopiranje u tablicu MAT
  87. Set Sl_PocetnaMAT = Db.OpenRecordset("MAT", dbOpenDynaset)
  88. Set Sl_ZavrsnaMAT = NovaDb.OpenRecordset("MAT", dbOpenDynaset)
  89. If Sl_PocetnaMAT.RecordCount > 0 Then
  90.         Sl_PocetnaMAT.MoveFirst
  91.         While Not Sl_PocetnaMAT.EOF
  92.             With Sl_ZavrsnaMAT
  93.                  .AddNew
  94.         ![MAT] = Sl_PocetnaMAT![MAT]
  95.         ![MAT_IME] = Sl_PocetnaMAT![MAT_IME]
  96.         ![Kvalitet] = Sl_PocetnaMAT![Kvalitet]
  97.         ![JM] = Sl_PocetnaMAT![JM]
  98.         ![primjedba] = Sl_PocetnaMAT![primjedba]
  99.         .Update
  100.             End With
  101.          Sl_PocetnaMAT.MoveNext
  102.         Wend
  103.    End If
  104.    'Kopiranje u tablicu tblDokumentiUlaz
  105. Set Sl_PocetnaDUL = Db.OpenRecordset("tblDokumentiUlaz", dbOpenDynaset)
  106. Set Sl_ZavrsnaDUL = NovaDb.OpenRecordset("tblDokumentiUlaz", dbOpenDynaset)
  107. If Sl_PocetnaDUL.RecordCount > 0 Then
  108.         Sl_PocetnaDUL.MoveFirst
  109.         While Not Sl_PocetnaDUL.EOF
  110.             With Sl_ZavrsnaDUL
  111.                  .AddNew
  112.         ![IDdokumenta] = Sl_PocetnaDUL![IDdokumenta]
  113.         ![Dokument] = Sl_PocetnaDUL![Dokument]
  114.         .Update
  115.             End With
  116.          Sl_PocetnaDUL.MoveNext
  117.         Wend
  118.    End If
  119.       'Kopiranje u tablicu tblDokumentiIzlaz
  120. Set Sl_PocetnaDIZ = Db.OpenRecordset("tblDokumentiIzlaz", dbOpenDynaset)
  121. Set Sl_ZavrsnaDIZ = NovaDb.OpenRecordset("tblDokumentiIzlaz", dbOpenDynaset)
  122. If Sl_PocetnaDIZ.RecordCount > 0 Then
  123.         Sl_PocetnaDIZ.MoveFirst
  124.         While Not Sl_PocetnaDIZ.EOF
  125.             With Sl_ZavrsnaDIZ
  126.                  .AddNew
  127.         ![IDdokumenta] = Sl_PocetnaDIZ![IDdokumenta]
  128.         ![Dokument] = Sl_PocetnaDIZ![Dokument]
  129.         .Update
  130.             End With
  131.          Sl_PocetnaDIZ.MoveNext
  132.         Wend
  133.    End If
  134.       'Kopiranje u tablicu Konta
  135. Set Sl_PocetnaKTA = Db.OpenRecordset("Konta", dbOpenDynaset)
  136. Set Sl_ZavrsnaKTA = NovaDb.OpenRecordset("Konta", dbOpenDynaset)
  137. If Sl_PocetnaKTA.RecordCount > 0 Then
  138.         Sl_PocetnaKTA.MoveFirst
  139.         While Not Sl_PocetnaKTA.EOF
  140.             With Sl_ZavrsnaKTA
  141.                  .AddNew
  142.         ![Kto] = Sl_PocetnaKTA![Kto]
  143.         ![NazivKta] = Sl_PocetnaKTA![NazivKta]
  144.         .Update
  145.             End With
  146.          Sl_PocetnaKTA.MoveNext
  147.         Wend
  148.    End If
  149. 'Kopiranje u tablicu Ulaz
  150. Set Sl_PocetnaUL = Db.OpenRecordset("Q_Inventura", dbOpenDynaset)
  151. Set Sl_ZavrsnaUL = NovaDb.OpenRecordset("Ulaz", dbOpenDynaset)
  152. If Sl_PocetnaUL.RecordCount > 0 Then
  153.         Sl_PocetnaUL.MoveFirst
  154.         While Not Sl_PocetnaUL.EOF
  155.             With Sl_ZavrsnaUL
  156.                  .AddNew
  157.         ![ŠifraUlaz] = Sl_PocetnaUL![Sifra]
  158.         ![Datum] = Sl_PocetnaUL![Datum]
  159.         ![Skl] = Sl_PocetnaUL![Skl]
  160.         ![Ulaz] = Sl_PocetnaUL![Ulaz]
  161.         ![IDdokumenta] = 4
  162.         ![Predatnica] = ""
  163.         ![Dobavljac] = 1
  164.         ![Nalog] = ""
  165.         ![Regal] = ""
  166.         .Update
  167.             End With
  168.          Sl_PocetnaUL.MoveNext
  169.         Wend
  170.    End If
  171. Kraj:
  172.     Set Db = Nothing
  173.     Set NovaDb = Nothing
  174.    
  175. End Function
  176.  
  177. Function Put_Baza(Putanja As String)
  178. Dim tmp As String
  179.  
  180. tmp = Putanja
  181. Do While right(tmp, 1) <> "\"
  182. tmp = left(tmp, Len(tmp) - 1)
  183. Loop
  184. Put_Baza = tmp
  185. End Function

Pozdrav
↑  ↓

#20 20.01.2014-20:00
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,762


Subject: Re: Kopiranje baze (nova godina)
Evo samo ovo popravi.
Citat:
PutanjaBaza = Put_Baza(Putanja)
ImeNoveBaze = "Skladiste_" & Godina & "_be.mdb"
If Dir(PutanjaBaza & ImeNoveBaze) = "" Then
FileCopy PutanjaBaza & "be.sys", PutanjaBaza & ImeNoveBaze
Set NovaDb = OpenDatabase(PutanjaBaza & ImeNoveBaze)
else
MsgBox "Baza već postoji"
Exit Function
End If

Pozdrav
↑  ↓

Stranice (2): 1, 2


All times are GMT +01:00. Current time: 22.10.2018-03:17.