pmiroslav 24.09.2012 10:06
Predmet:After update problem

Na subformi koja se zove 'subEvidencija' imam ComboBox 'IDnaloga' i na njemu na AfterUpdate Kod kojim se mjenja Recordsourse slijedećek ComboBox-a 'IDpozicije'
PreuzmiIzvorni kôd (vbnet):
  1. Private Sub IDnaloga_AfterUpdate()
  2. Me.IDPozicije.Value = Null
  3. If (IsNull(DLookup("[NalogID]", "ArhivaNalog", "[NalogID] =" & [Forms]![frmEvidencijaRadnici]![subEvidencija].[Form]![IdNaloga]))) Then  
  4. Me.IDPozicije.RowSource = "Q_NalogPozicijeSve"
  5. Else
  6. Me.IDPozicije.RowSource = "Q_NalogPozicije"
  7. End If
  8. Me.IDPozicije.SetFocus
  9. End Sub
Ovo do sada sve radi dobro. Međutim kako je u ComboBox-u IDnaloga prilično dugačka lista, napravio sam drugu formu za pretraživanje naloga iz koje pomoću tzv. Drag And Drop funkcije miÅ¡em prenesem podatak IDNaloga iz jedne forme u drugu.

Na starnoj formi ide slijedeći kod:
PreuzmiIzvorni kôd (vbnet):
  1. Private Sub Text2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  2. DragStart Me
  3. End Sub
PreuzmiIzvorni kôd (vbnet):
  1. Private Sub Text2_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  2. DragStop
  3. End Sub
a na cijanoj ovaj:
PreuzmiIzvorni kôd (vbnet):
  1. Private Sub IDnaloga_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  2. DropDetect Me, Me![IdNaloga], Button, Shift, X, Y
  3. End Sub
Å to se tiče prenosa podatka iz forme u formu sve radi dobro, međutim ne odradi se funkcija AfterUpdate tj ne promjeni se recordSource Comba IDPozicije.

zxz 24.09.2012 10:24
Predmet:Re: After update problem

Na
Private Sub Text2_MouseDown
Pozovi proceduru IDnaloga_AfterUpdate

Posto su ove dvije na razlicitim formama cini mi se mozda bi bilo najlakse da napravis proceduru u modulu ovu na after Update pa je samo poszivas.

pmiroslav 24.09.2012 10:38
Predmet:Re: After update problem

MožeÅ¡ li mi malo pomoći kako bi ta procedura u modulu trebala biti.

zxz 24.09.2012 12:22
Predmet:Re: After update problem

Function NalogID ()
Forms![ImeForme]![IDPozicije]= Null
If (IsNull(DLookup("[NalogID]", "ArhivaNalog", "[NalogID] =" & [Forms]![frmEvidencijaRadnici]![subEvidencija].[Form]![IdNaloga]))) Then
Forms![ImeForme]![IDPozicije].RowSource = "Q_NalogPozicijeSve"
Else
Forms![ImeForme]![IDPozicije].RowSource = "Q_NalogPozicije"
End If
Forms![ImeForme]![IDPozicije].SetFocus
end function

A na after update i na mouse down ove druge forme napises odnosno pozivas ovu proceduru:
call NalogID

Mozda imas ovakvo ime procedure pa provjeri i ako bude promijeni ime.

pmiroslav 24.09.2012 13:01
Predmet:Re: After update problem

Hvala ovo radi.
Imama još jedno pitanjce da ne otvaram novu temu.
problem mi je sintaksa za link criteriju.
Tablica je tblSkladište ima polje 'Skladiste' u kojemu su podaci u obliku
000
020
025
030
035

trebam izdvojiti podazke za 020 i 035 zajedno.
u kodu imam slijedeće:

Dim stLinkCriteria As String

stLinkCriteria ="[Skladiste] = 020 or 035" - ovo je problem
DoCmd.OpenReport stDocName, acViewPreview, , stLinkCriteria


St

zxz 24.09.2012 13:13
Predmet:Re: After update problem

Probaj sa:
stLinkCriteria ="[Skladiste] in ('020', '035'"
ako je polje tekst

pmiroslav 24.09.2012 13:28
Predmet:Re: After update problem

Polje je tekst i ovo radi. a kako treba biti ako su polja numerička.

Hvala unaprijed.

zxz 24.09.2012 13:30
Predmet:Re: After update problem

stLinkCriteria ="[Skladiste] in (20, 35"

zxz 24.09.2012 13:30
Predmet:Re: After update problem

stLinkCriteria ="[Skladiste] in (20, 35")

Da napomenem da ovo ima sve u skoli SQL-a, jedino je mozda malo drugacija primjena.