选中选项组中的不同选项时,更改列表框的来源

时间:2016-12-27 17:05:03

标签: ms-access access-vba ms-access-2010

表之间的关系:https://i.imgur.com/Pni922e.png我有4个表,左表是“所有者”,有关所有者的信息,中左表是“订单”,它包含有关订单的信息,中右表连接“订购”表和“关于空调”表。 所以我做了这样的表格:https://i.imgur.com/qOFf67w.png 我希望当选项组中的“Nijezapočeto”被标记为仅显示拥有“状态predmeta”[在Narudžba表] =“Nijezapočeto”的所有者。因此,当“U procesu”选项组被标记时,我想仅显示在“状态预测”字段中具有“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

1 个答案:

答案 0 :(得分: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