U bazi imam formu i iza nje proceduru koju pokrećem pritiskom na dugme na njoj. Izvršenje ove procedure traje malo duže pa bih volio kao efekat koristiti Microsoft ProgressBar Control.
Možete li mi pomoći oko inicijalizacije te ActiveX kontrole
Otvori formu u Design View režimu. Potom: Insert, ActiveX Control, Odaberi Microsoft ProgressBar Control, version 6 i klikni na OK. Imenuj je ili zadrži ime koje je dobila inicijalizacijom. Na početku koda koji izvršavaš joj daj fokus.
Me![ImeKontrole].SetFocus
Pozovi je u petlji (toj koja nešto odrađuje) sa Me![ImeKontrole].Value = neki brojač koji se povećava i kontroliše petlju. Potpis
Evo sad radi. Pregledaj kod. Nikad ne drži poruku usred petlje jer će da zaustavlja kod, osim kad tražiš grešku u kodu. Vodi računa o imenu kontrole. Ne možeš da ostaviš [ImeKontrole], a ona se zove prgBar. Brojač mora da se vrti i da procentualno izražava prirast linije.
Potpis
Probaj da blokiraš red koda:
'Me![prgBar].SetFocus
Snimi, izkompajliraj i pokreni, da vidimo šta će da javi. Kod mene radi sve OK. Ne bih ti slao da nisam proverio. To je ista kontrola kao i u tvojoj formi frmProgressBar.
Potpis
tako mi sada radi međutim ja bih to htio ubaciti u ovaj kod:
Private Sub Command15_Click()
Dim Baza As Database ' Deklaracije
Dim Sl_Table1 As Recordset
Dim Sl_Table2 As Recordset
Dim Sl_Trebovnica As Recordset
Dim Sl_ZbirnikKonacni As Recordset
Dim Zadani As Long
Dim Usl_Poz As String
Dim Sl_Poz As Recordset
Dim Sklop As String
Dim Podsklop As String
Dim Cvor As String
Dim tekuciSklop As String
Dim tekuciPodsklop As String
Dim tekuciCvor As String
Set Baza = CurrentDb() ' Setovanje
Set Sl_Table2 = Baza.OpenRecordset("ShemaTransfer", dbOpenDynaset) ' Tablica u koju se pohranjuju podaci
Set Sl_Table1 = Baza.OpenRecordset("QryShema", dbOpenDynaset) 'Qurey iz kojeg se uzimaju podaci
If Sl_Table1.RecordCount > 0 Then
'Sl_Table1.MoveFirst 'otidi na prvi slog Table1
While Not Sl_Table1.EOF ' vrti petlju za sve slogove
Sklop = Sl_Table1![IDSkl]
If Not IsNull(Sl_Table1![IDPskl]) Then
Podsklop = Sl_Table1![IDPskl]
End If
If Not IsNull(Sl_Table1![IDČv]) Then
Cvor = Sl_Table1![IDČv]
End If
If Sl_Table1![IDSkl] <> tekuciSklop Then ' dodaje slog za boravak u Table2
With Sl_Table2
.AddNew
![IDStroja] = Sl_Table1![IDStr]
![Nivo] = 1
![Index] = Sl_Table1![IndexSklop]
![IDDijela] = Sl_Table1![IDSkl]
![BrKomada] = Sl_Table1![KomSkl]
![BrKomadaSum] = Sl_Table1![KomSkl]
.Update
End With
End If
If Not IsNull(Sl_Table1![IDPskl]) And Sl_Table1![IDPskl] <> tekuciPodsklop Then
' dodaje slog za Podsklop
With Sl_Table2
.AddNew
![IDStroja] = Sl_Table1![IDStr]
![Nivo] = 2
![Index] = Sl_Table1![IndexPodsklop]
![IDDijela] = Sl_Table1![IDPskl]
![BrKomada] = Sl_Table1![KomPskl]
![BrKomadaSum] = Sl_Table1![KomPskl] * Sl_Table1![KomSkl]
.Update
End With
End If
If Not IsNull(Sl_Table1![IDČv]) And Sl_Table1![IDČv] <> tekuciCvor Then
' dodaje slog za Cvor
With Sl_Table2
.AddNew
![IDStroja] = Sl_Table1![IDStr]
![Nivo] = 3
![Index] = Sl_Table1![IndexCvor]
![IDDijela] = Sl_Table1![IDČv]
![BrKomada] = Sl_Table1![KomČv]
![BrKomadaSum] = Sl_Table1![KomČv] * Sl_Table1![KomPskl] * Sl_Table1![KomSkl]
.Update
End With
'End If
Usl_Poz = "SELECT * FROM [QryShema] WHERE ((([QryShema].IDSkl)= " & Sklop & ")" _
& "And (([QryShema].IDPskl)= " & Podsklop & ")" _
& "And (([QryShema].IDČv)= " & Cvor & "))"
Set Sl_Poz = Baza.OpenRecordset(Usl_Poz, dbOpenDynaset)
If Sl_Poz.RecordCount > 0 Then
'Sl_Poz.MoveFirst
While Not Sl_Poz.EOF ' dodaje slogove za Pozicije'''
With Sl_Table2
If Not IsNull(Sl_Table1![IDPoz]) Then
.AddNew
![IDStroja] = Sl_Table1![IDStr]
![Nivo] = 4
![Index] = Sl_Table1![IndexPoz]
![IDDijela] = Sl_Poz![IDPoz]
![BrKomada] = Sl_Poz![KomPoz]
![BrKomadaSum] = Sl_Poz![KomPoz] * Sl_Table1![KomČv] * Sl_Table1![KomPskl] * Sl_Table1![KomSkl]
.Update
End If
End With
Sl_Poz.MoveNext
Wend
End If
End If
Savet: Odštampaj kod koji sam doradio i obeleži sve linije koje sam dodao u tvoj početni kod i opiši ih. Posmatraj gde šta treba da primeniš u novi kod i dopiši u zavisnosti od bloka programskog koda. Moraš da shvatiš poentu na koju kontrola radi. Nemoj da si malodušan.
Potpis