2016-12-27 5 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の場合、このコードはOkvir17_AfterUpdateではなくFrame2_AfterUpdateイベントコード内にあるはずです。 – Skippy

+0

はい、それはFrame2でなければなりません、私はそれを変更しました。そして今、私はフォームを開いて任意のオプションを選択するとこれを取得します。 –

答えて

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 
関連する問題