Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190
iCentar » Racunari i oprema » Programirannje i baze podataka » Access » Autonumber se ponavlja
zxz 17.12.2010 23:46
Predmet:Re: Autonumber se ponavlja

Stavio si pogresnu proceduru na on current.
Ona ti je samo za jednokratnu upotrebu da upises posojece rekorde a na on current sam ti dao gore proceduru koju trebas staviti.

pmiroslav 18.12.2010 16:17
Predmet:Re: Autonumber se ponavlja

Uspjelo je. Upisao sam nove Å¡ifre u originalnu tablicu POCES i za sada sve radi dobro. Međutim strah me kako tu novu Å¡ifru ubaciti u sve tablice koje su povezane relacijama. Ova moja baza je dosta velika i u njoj ima i puno Querya u kojima su većinom relacije na taj sadaÅ¡nji ID
Prilozi:
Queryes.jpg (Velicina datoteke:268.91 KB)
Relationships.jpg (Velicina datoteke:217.09 KB)

zxz 18.12.2010 16:29
Predmet:Re: Autonumber se ponavlja

Nema te sta biti strah.
Kao prvo to neces raditi sa orginlom nego kopijom.
I kad sve uradis opet orginal ne brises nego samo promijenis imena.
Tako ces uraditi i sa ovim poljem. Dat ces mu ime kao staro sto je bilo a staro pobrises.

Sta dalje?
Sada ces ovo polje ubaciti u sve tabele koje su relacijski vezane pa cemo napraviti kod da prebaci i sifre.

pmiroslav 18.12.2010 17:08
Predmet:Re: Autonumber se ponavlja

Napravio sam nova polja u svim tablicama koje su relacijski vezane ta tablicu PROCES. Ostavio sam isto ime polja samo sam dodao _N

npr ID = ID_N
Prilozi:
Relationships_N.jpg (Velicina datoteke:190.77 KB)

zxz 18.12.2010 17:47
Predmet:Re: Autonumber se ponavlja

Ok. Sad mi dolaze gosti ali veceras cu najvjerovatnije ti uraditi kod.

zxz 19.12.2010 00:24
Predmet:Re: Autonumber se ponavlja

Evo ti.
Nisam istestirao jer nemam tabele. Probaj pa javi.
PreuzmiIzvorni kôd (Visual Basic):
  1. Function PrebaciKljuc(ImeTabele As String, ImePoljaStarogKljuca, ImePoljaNovogKljuca As String)
  2. Dim DB As Database
  3. Dim Rs1 As Recordset
  4. Dim Rs2 As Recordset
  5. Dim SQL1 As String
  6. Dim SQL2 As String
  7. Dim StariKljuc As Integer
  8. Dim NoviKljuc As String
  9.  
  10.  
  11. Set DB = CurrentDb
  12. SQL1 = "SELECT ID, ID_String FROM Proces"
  13. Set Rs1 = DB.OpenRecordset(SQL1)
  14.  
  15. Do While Not Rs1.EOF
  16. StariKljuc = ID
  17. NoviKljuc = ID_String
  18. SQL2 = "SELECT " & ImePoljaNovogKljuca & " FROM " & Imetabela & " WHERE " & ImePoljaStarogKljuca & "=" & StariKljuc
  19. Do While Not Rs2.EOF
  20. Rs2.Edit
  21. Rs2.Fields(0) = NoviKljuc
  22. Rs2.MoveNext
  23. Loop
  24. Rs2.Close
  25. Rs1.MoveNext
  26. Loop
  27. End Function

pmiroslav 19.12.2010 10:10
Predmet:Re: Autonumber se ponavlja

Isprobao sam ali na žalost ne radi.
Kada na pravim Debug funkcije, stane na redu "StariKljuc = ID" i javi se poruka

Compile error: Variable Not Definet"

Evo Å¡aljem i primjer sa tri tablice
Prilozi:
Proces_be.rar (Velicina datoteke:29.14 KB)

zxz 19.12.2010 12:32
Predmet:Re: Autonumber se ponavlja

Evo ti procedura.
Na ovim poljima u field size upisi 8.
Evo primjera poziva za tabelu Stroj.
?PrebaciKljuc("Stroj","IDStroja","IDstroja_N")

PreuzmiIzvorni kôd (Visual Basic):
  1. Function PrebaciKljuc(ImeTabele As String, ImePoljaStarogKljuca, ImePoljaNovogKljuca As String)
  2. Dim Db As Database
  3. Dim Rs1 As Recordset
  4. Dim Rs2 As Recordset
  5. Dim SQL1 As String
  6. Dim SQL2 As String
  7. Dim StariKljuc As Integer
  8. Dim NoviKljuc As String
  9.  
  10.  
  11. Set Db = CurrentDb
  12. SQL1 = "SELECT ID, ID_N FROM Proces"
  13. Set Rs1 = Db.OpenRecordset(SQL1)
  14.  
  15. Do While Not Rs1.EOF
  16. StariKljuc = Rs1!ID
  17. NoviKljuc = Rs1!ID_N
  18. SQL2 = "SELECT " & ImePoljaNovogKljuca & " FROM " & ImeTabele & " WHERE " & ImePoljaStarogKljuca & "=" & StariKljuc
  19. Set Rs2 = Db.OpenRecordset(SQL2)
  20.     Do While Not Rs2.EOF
  21.     Rs2.Edit
  22.     Rs2.Fields(0) = NoviKljuc
  23.     Rs2.Update
  24.     Rs2.MoveNext
  25.     Loop
  26. Rs2.Close
  27. Rs1.MoveNext
  28. Loop
  29. End Function

pmiroslav 19.12.2010 13:20
Predmet:Re: Autonumber se ponavlja

Isprobao sam i sada radi.
Puno ti havla na trudu. Sutra ću na poslu isprobati sve na kopiji originalne baze.

pmiroslav 20.12.2010 12:51
Predmet:Re: Autonumber se ponavlja

Prepravljam upravo ovu moju bazu i sada imam problem u jednoj funkciji, najvjerovatnije to Å¡to je prije ID bio Broj a sada je string

kada pokrenem funkciju dobijem poruku:
"Data type mismatch in criteria expression"
PreuzmiIzvorni kôd (vbnet):
  1. Function Slozi()
  2.     Dim Baza As Database                              
  3.     Dim Sl_Table1  As Recordset
  4.     Dim Sl_Table2  As Recordset
  5.     Dim Usl_Poz   As String
  6.     Dim Sl_Poz   As Recordset
  7.     Dim Stroj As String
  8.     Dim Sklop   As String
  9.     Dim Podsklop  As String
  10.     Dim Cvor As String
  11.     Dim tekuciStroj As String
  12.     Dim tekuciSklop As String
  13.     Dim tekuciPodsklop   As String
  14.     Dim tekuciCvor As String
  15.     Dim stDocName As String
  16.  
  17. [color=#FF0033]  'problem je neÅ¡to u ovome ?[/color]
  18.  Usl_Poz = "SELECT * FROM [QryShema] WHERE IDStr  = " & Stroj _
  19.                                                & "And IDSkl  = " & Sklop _
  20.                                                & "And IDPskl = " & Podsklop _
  21.                                                & "And ID v   = " & Cvor
  22.            
  23.            
  24.             Set Sl_Poz = Baza.OpenRecordset(Usl_Poz, dbOpenDynaset)  [color=#FF0033] ' Procedura stane na ovome
  25.             [/color]
  26.             If Sl_Poz.RecordCount > 0 Then
  27.               Sl_Poz.MoveFirst
  28.               While Not Sl_Poz.EOF   ' dodaje slogove za Pozicije'''
  29.                   With Sl_Table2
  30.                   If Not IsNull(Sl_Table1![IDPoz]) Then
  31.                       .AddNew
  32.                       ![IDStroja] = Sl_Table1![IDKombinacija]
  33.                       ![Nivo] = 4
  34.                       ![KomStr] = Sl_Table1![KomStr]
  35.                       ![Index] = Sl_Table1![IndexPoz]
  36.                       ![IDdijela] = Sl_Poz![IDPoz]
  37.                       ![BrKomada] = Sl_Poz![KomPoz]
  38.                       ![BrKomadaSum] = Sl_Poz![KomPoz] * Sl_Table1![Kom v] * Sl_Table1![KomPskl] * Sl_Table1![KomSkl] * Sl_Table1![KomStr]
  39.                       .Update
  40.                       End If
  41.                   End With
  42.                   Sl_Poz.MoveNext
  43.               Wend