Option Compare Database
Option Explicit
Type Imena
Pt As String 'Imepomone tabele
Pt_Kljuc As String 'Klju
za pod tabelu
Pdt As String 'Imepod tabele
Pdt_Kljuc As String 'Klju
u pod tabeli
Pt_Podatak As Integer 'Podatak klju
a u pomonoj tabeli
End Type
Dim Db As DAO.Database
Dim RsTemp As DAO.Recordset
Function Popuni()
Dim Rs As DAO.Recordset
Dim SQL As String, SQLTemp As String
Dim ID As Integer
SQL = "SELECT * FROM tblMain"
SQLTemp = "SELECT * FROM tblTemp"
Set Db = CurrentDb
Set Rs = Db.OpenRecordset(SQL)
Do While Not Rs.EOF
ID = Rs!Id_Main
Set RsTemp = Db.OpenRecordset(SQLTemp)
RsTemp.AddNew
RsTemp!No = Rs!Broj_Dokumenta
RsTemp!Datum_Ukladanja = Rs!Datum_Ukladanja
RsTemp!Godina_kad_je_verovatno_stvoren = Rs!Godina_kad_je_verovatno_stvoren
RsTemp!Datum_kad_je_verovatno_stvoren = Rs!Datum_kad_je_verovatno_stvoren
RsTemp!Naziv = Rs!Naziv
RsTemp!Opis = Rs!Opis
RsTemp!Sacuvan = Rs!Lock
RsTemp!Id_Main = ID
RsTemp.Update
RsTemp.Close
Pomocne_Tabele ID
Rs.MoveNext
Loop
End Function
Sub Pomocne_Tabele(ID As Integer)
Dim Rs As DAO.Recordset, RsPom As DAO.Recordset, Rsdod As DAO.Recordset
Dim SQL As String, SQLPom As String, SQLDod As String, SQLTemp As String
Dim IP As Imena
Dim Broj_Polja As Integer, I As Integer, N As Integer, N1 As Integer
Dim ImePolja As String
N1 = 1
SQLTemp = "SELECT * FROM tblTemp WHERE ID_Main=" & ID
SQL = "SELECT * FROM tblTabele"
Set RsTemp = Db.OpenRecordset(SQLTemp)
Set Rs = Db.OpenRecordset(SQL)
Do While Not Rs.EOF
IP.Pdt = Rs.Fields(3)
IP.Pt = Rs.Fields(1)
IP.Pt_Kljuc = Rs.Fields(2)
IP.Pdt_Kljuc = Rs.Fields(4)
'*************************
'Pomona tabela
'*************************
RsTemp.MoveFirst
SQLPom = "SELECT * FROM " & IP.Pt & " WHERE ID_Main=" & ID
Set RsPom = Db.OpenRecordset(SQLPom)
N = RsPom.RecordCount
If N > 0 Then
RsPom.MoveLast
RsPom.MoveFirst
N = RsPom.RecordCount
End If
REKORD:
If N1 < N Then
RsTemp.AddNew
RsTemp.Update
N1 = RsTemp.RecordCount
GoTo REKORD
End If
RsTemp.MoveFirst
Do While Not RsPom.EOF
RsTemp.Edit
IP.Pt_Podatak = RsPom(IP.Pt_Kljuc)
SQLDod = "SELECT * FROM " & IP.Pdt & " WHERE " & IP.Pdt_Kljuc & "=" & IP.Pt_Podatak
Set Rsdod = Db.OpenRecordset(SQLDod)
Broj_Polja = Rsdod.Fields.Count - 1
For I = 1 To Broj_Polja
ImePolja = Rsdod.Fields(I).Name
RsTemp(ImePolja) = Format$(Rsdod.Fields(I))
Next I
Rsdod.Close
RsPom.MoveNext
RsTemp.Update
RsTemp.MoveNext
Loop
Rs.MoveNext
RsTemp.MoveFirst
Loop
RsPom.Close
End Sub