2016-12-27 44 views
0

表之間的關係:https://i.imgur.com/Pni922e.png我有4個表,左表是「所有者」以及有關業主信息,中左表是「訂單」,它包含的信息訂單,中右表連接「訂單」表和「關於空調」表。 所以我做了這樣的形式: 我希望當選項組中的「Nijezapočeto」被標記爲只顯示擁有「Status predmeta」[在Narudžba表中] =「Nijezapočeto」的所有者時。因此,當「U procesu」選項組將被標記時,我只想顯示「Status predmeta」字段中具有「U procesu」的所有者。更改源時,在選項組不同的選項選中

我寫了一些代碼,但它不工作。

Private Sub Okvir17_AfterUpdate() 

If Frame2 = 1 Then 'Nije započeto 
strRowsource1 = "SELECT Vlasnik.ID_VU, Vlasnik.[Naziv tvrtke], Vlasnik.[Ime korisnika], Vlasnik.[Prezime korisnika], Vlasnik.[Adresa korisnika], Vlasnik.Telefon, Vlasnik.Mail " _ 
      & "FROM Vlasnik " _ 
      & "WHERE [Status predmeta] = 'Nije započeto' " _ 

If Frame2 = 2 Then 'U procesu 
strRowsource1 = "SELECT Vlasnik.ID_VU, Vlasnik.[Naziv tvrtke], Vlasnik.[Ime korisnika], Vlasnik.[Prezime korisnika], Vlasnik.[Adresa korisnika], Vlasnik.Telefon, Vlasnik.Mail, " _ 
      & "FROM Vlasnik " _ 
      & "WHERE [Status predmeta] = 'U procesu' " _ 

If Frame2 = 3 Then 'Na čekanju 
strRowsource1 = "SELECT Vlasnik.ID_VU, Vlasnik.[Naziv tvrtke], Vlasnik.[Ime korisnika], Vlasnik.[Prezime korisnika], Vlasnik.[Adresa korisnika], Vlasnik.Telefon, Vlasnik.Mail " _ 
      & "FROM Vlasnik " _ 
      & "WHERE [Status predmeta] = 'Na čekanju' " _ 

If Frame2 = 4 Then 'Fakturirati 
strRowsource1 = "SELECT Vlasnik.ID_VU, Vlasnik.[Naziv tvrtke], Vlasnik.[Ime korisnika], Vlasnik.[Prezime korisnika], Vlasnik.[Adresa korisnika], Vlasnik.Telefon, Vlasnik.Mail " _ 
      & "FROM Vlasnik " _ 
      & "WHERE [Status predmeta] = 'Fakturirati' " _ 


If Frame2 = 5 Then 'Završeno 
strRowsource1 = "SELECT Vlasnik.ID_VU, Vlasnik.[Naziv tvrtke], Vlasnik.[Ime korisnika], Vlasnik.[Prezime korisnika], Vlasnik.[Adresa korisnika], Vlasnik.Telefon, Vlasnik.Mail " _ 
      & "FROM Vlasnik " _ 
      & "WHERE [Status predmeta] = 'Završeno' " _ 


End If 

List2.RowSource = strRowsource1 

End Sub 
+0

定義*不工作*,請。 [調試VBA代碼(http://www.cpearson.com/excel/DebuggingVBA.aspx) – Andre

+0

待澄清*不*工作由@Andre的要求,在此期間,我會建議,如果你正在檢查的價值的Frame2,那麼這個代碼應該可能在Frame2_AfterUpdate事件代碼中,而不是Okvir17_AfterUpdate。 – Skippy

+0

是的,它應該是式2,我改變了,現在我得到這個,當我打開窗體,然後選擇任何選項。 –

回答

0

解決了它,我不得不做了INNER JOIN。最終代碼:

Private Sub Frame2_Click() 

If Frame2 = 1 Then 'Nije započeto 
strRowsource1 = "SELECT Vlasnik.ID_VU, Vlasnik.[Naziv tvrtke], Vlasnik.[Ime korisnika], Vlasnik.[Prezime korisnika], Vlasnik.[Adresa korisnika], Vlasnik.Telefon, Vlasnik.Mail, Narudžba.[Status predmeta] " _ 
      & "FROM Vlasnik INNER JOIN Narudžba ON Vlasnik.ID_VU = Narudžba.ID_VU " _ 
      & "WHERE Narudžba.[Status predmeta] = 'Nije započeto' " _ 



ElseIf Frame2 = 2 Then 'U procesu 
strRowsource1 = "SELECT Vlasnik.ID_VU, Vlasnik.[Naziv tvrtke], Vlasnik.[Ime korisnika], Vlasnik.[Prezime korisnika], Vlasnik.[Adresa korisnika], Vlasnik.Telefon, Vlasnik.Mail, Narudžba.[Status predmeta] " _ 
      & "FROM Vlasnik INNER JOIN Narudžba ON Vlasnik.ID_VU = Narudžba.ID_VU " _ 
      & "WHERE Narudžba.[Status predmeta] = 'U procesu' " _ 



ElseIf Frame2 = 3 Then 'Na čekanju 
strRowsource1 = "SELECT Vlasnik.ID_VU, Vlasnik.[Naziv tvrtke], Vlasnik.[Ime korisnika], Vlasnik.[Prezime korisnika], Vlasnik.[Adresa korisnika], Vlasnik.Telefon, Vlasnik.Mail, Narudžba.[Status predmeta] " _ 
      & "FROM Vlasnik INNER JOIN Narudžba ON Vlasnik.ID_VU = Narudžba.ID_VU " _ 
      & "WHERE Narudžba.[Status predmeta] = 'Na čekanju' " _ 



ElseIf Frame2 = 4 Then 'Fakturirati 
strRowsource1 = "SELECT Vlasnik.ID_VU, Vlasnik.[Naziv tvrtke], Vlasnik.[Ime korisnika], Vlasnik.[Prezime korisnika], Vlasnik.[Adresa korisnika], Vlasnik.Telefon, Vlasnik.Mail, Narudžba.[Status predmeta] " _ 
      & "FROM Vlasnik INNER JOIN Narudžba ON Vlasnik.ID_VU = Narudžba.ID_VU " _ 
      & "WHERE Narudžba.[Status predmeta] = 'Fakturirati' " _ 



ElseIf Frame2 = 5 Then 'Završeno 
strRowsource1 = "SELECT Vlasnik.ID_VU, Vlasnik.[Naziv tvrtke], Vlasnik.[Ime korisnika], Vlasnik.[Prezime korisnika], Vlasnik.[Adresa korisnika], Vlasnik.Telefon, Vlasnik.Mail, Narudžba.[Status predmeta] " _ 
      & "FROM Vlasnik INNER JOIN Narudžba ON Vlasnik.ID_VU = Narudžba.ID_VU " _ 
      & "WHERE Narudžba.[Status predmeta] = 'Završeno' " _ 






End If 


List2.RowSource = strRowsource1 


End Sub