Centar za edukaciju-BiH



#11 18.01.2014 22:08
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,610


Predmet:Re: Kopiranje baze (nova godina)
jeste ado ti je ukljucen vidi se na slici.
E sad dali koristis to gdje u kodu neznam.
To ti je ovo:
Microsoft activx data object 2 itd..

U nisam rs naveo u dimenzionisanju:
Dim Db As DAO.Database, NovaDb As DAO.Database
Dim SQL As String
Dim Rs As DAO.Recordset

Mora se naznaciti da je dao ako imas i ado ili rdo.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
Ovaj post je ureden 2 puta. Posljednja izmjena 18.01.2014 22:10 od strane zxz. ↑  ↓

#12 19.01.2014 09:17
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Kopiranje baze (nova godina)
Sve sam tako dimezionirao sa DAO. I opet imamo ovu greški No current record.

Koju vrijednost bi trebao dati
SQL = "SELECT TOP 1 Database FROM MSysObjects WHERE Database Is Not Null"

Kada ovaj SQL prepišem u Query ja ne dobijem nikakav rezultat

Prilozi:
Informacije o tipu datoteke za:rar  baze.rar
Preuzimanja:311
Velicina datoteke:509.15 KB


Pozdrav
Ovaj post je ureden 1 puta. Posljednja izmjena 19.01.2014 09:18 od strane pmiroslav. ↑  ↓

#13 19.01.2014 09:27
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,610


Predmet:Re: Kopiranje baze (nova godina)
Hehe sad je sve jasno.
Ovaj kod netreba da bude u bazi nego u app.
Ovdje nemas niti jednu linkovanu tabelu i zato ti javlja gresku.
Nemozes u bazi imati kod.
Korisnik to treba da pokrene iz aplikacije.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#14 19.01.2014 09:36
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Kopiranje baze (nova godina)
OK. onda ću probati tako. Hvala.
Još pitanje. Dali u funkciji

NovaGodina(Godina)

pri pokretanja iz Immediate prozora treba pisati sa navodnicima ili bez
?NovaGodina(2014) ili ?NovaGodina("2014")
Pozdrav
↑  ↓

#15 19.01.2014 09:39
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,610


Predmet:Re: Kopiranje baze (nova godina)
Vidis da var. nova godina nisam dimenzionisao pa je mozes pisati kako hoces.
Ako stavis Godina as integer onda bi bila broj a ako stavis godina as string onda bi bilo kao sto si napisao.
Ovako moze i jedno i drugo.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#16 19.01.2014 09:43
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


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

#17 20.01.2014 09:14
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet: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 Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,610


Predmet: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.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
Ovaj post je ureden 1 puta. Posljednja izmjena 20.01.2014 09:29 od strane zxz. ↑  ↓

#19 20.01.2014 18:12
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet: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.
PreuzmiIzvorni kôd (vbnet):
  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 Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,610


Predmet: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

Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

Stranice (2):1,2


Sva vremena su GMT +01:00. Trenutno vrijeme: 10: 48 am.