Prikazi cijelu temu 18.01.2014 12:42
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Lokacija:Tuzla


Predmet:Re: Greška u proceduri
Mozda je ovako lakse radi tabela.
Kopiras jednu tabelu od naprimjer zadnje 2013 godine i daj jo ime be.mdb.
Udjes u nju i izbrises podatke sve sem kodinih tabela.
Znaci ulaz izlaz pobrises a ostalo moze ostati.
sada kompajliras tabelu i zatvoris.
Ponovo preimenuj ovu tabelu be_mdb u be.sys.
Ovaj be.sys fajl treba da se nalazi tamo gdje i ostale baze.
U tvom slucaju je to d:\baze.
Kod ispod kopiraj u neki modul.
Pozivas proceduru NovaGodina(BrojGodine)

PreuzmiIzvorni kôd (Visual Basic):
  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.  
  8. Set Db = CurrentDb()
  9. SQL = "SELECT TOP 1 Database " _
  10.    & "FROM MSysObjects " _
  11.    & "WHERE Database Is Not Null"
  12. Set Rs = Db.OpenRecordset(SQL)
  13. Putanja = Rs.Fields(0)
  14. Rs.Close
  15.  
  16. PutanjaBaza = Put_Baza(Putanja)
  17. ImeNoveBaze = "Skladiste_" & Godina & "_be.mdb"
  18. FileCopy PutanjaBaza & "be.sys", PutanjaBaza & ImeNoveBaze
  19. Set NovaDb = OpenDatabase(PutanjaBaza & ImeNoveBaze)
  20.  
  21. 'I sad dolazi tvoj kod za presnimavanje stanja
  22. 'stim da koristis svoju postojecu db i novadb za prenos u novu bazu.
  23. 'Mislim da ces se snaci da popravis svoj kod.
  24. End Function
  25.  
  26. Function Put_Baza(Putanja As String)
  27. Dim tmp As String
  28.  
  29. tmp = Putanja
  30. Do While Right(tmp, 1) <> "\"
  31. tmp = Left(tmp, Len(tmp) - 1)
  32. Loop
  33. Put_Baza = tmp
  34. End Function

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