选中选项组中的不同选项时更改列表框的来源
Change source of listbox when different option in option group checked
tables 之间的关系:https://i.imgur.com/Pni922e.png 我有 4 个 tables,左边 table 是 "Owner" 和关于所有者的信息,中间-左 table 是 "Order",它包含有关顺序的信息,中右 table 连接 "Order" table 和 "About air conditioner" table。
所以我做了这样的表格:https://i.imgur.com/qOFf67w.png
我想在选项组中标记"Nije započeto"时仅显示"Status predmeta" [innarudžbatable] = "Nije započ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
解决了,我必须进行 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
tables 之间的关系:https://i.imgur.com/Pni922e.png 我有 4 个 tables,左边 table 是 "Owner" 和关于所有者的信息,中间-左 table 是 "Order",它包含有关顺序的信息,中右 table 连接 "Order" table 和 "About air conditioner" table。 所以我做了这样的表格:https://i.imgur.com/qOFf67w.png 我想在选项组中标记"Nije započeto"时仅显示"Status predmeta" [innarudžbatable] = "Nije započ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
解决了,我必须进行 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