2017-06-07 1 views
0

私は、Comboboxに表示される名前を変更するために、フォームの長さとSQL変数を調整するビットを使用しています。私は、作業中のコンボボックスの名前が何も表示されていないことを確認したい。 Combo1の名前が40の場合、Combo2は39個しか持たないという具合です。 私の問題は、SQL文字列のWHERE句内に複数の "OR"を使用しているようです。誰でも助言できる?複数のOR SQL文字列変数VBA

Private Sub Worker3_Change() 
Dim Worker4STR As String 

'Shows Worker 4 

Me.Worker4.RowSource = "" 
Worker4STR = "SELECT T1Workers.NonUserID, T1Workers.[FirstName] & "" "" & [LastName] AS FullName FROM T1Workers WHERE T1Workers.NonUserID <>" & _ 
       Me.Worker1.Value & " OR " & Me.Worker2.Value & " Or " & Me.Worker3.Value 
Me.Worker4.RowSource = Worker4STR 

Me.Worker4.AllowValueListEdits = False 
Me.Worker4.ColumnCount = 2 
Me.Worker4.ColumnWidths = "0, " 

Me.Worker4.Visible = True 
Me.Activity4.Visible = True 
Me.w4a1s.Visible = True 
Me.w4a1d.Visible = True 
Me.w4a1o.Visible = True 
Me.w4a2s.Visible = True 
Me.w4a2o.Visible = True 
Me.w4a2d.Visible = True 
Me.w4a3s.Visible = True 
Me.w4a3o.Visible = True 
Me.w4a3d.Visible = True 
Me.w4a4s.Visible = True 
Me.w4a4o.Visible = True 
Me.w4a4d.Visible = True 
Me.w4a5s.Visible = True 
Me.w4a5o.Visible = True 
Me.w4a5d.Visible = True 
Me.InsideHeight = 1440 * 4.6 

End Sub 

ありがとうございました。 -Matt

+0

あなたはINを試してみましたか?(....) – maSTAShuFu

+0

INまたはNOT IN句を使用して、次のコンボボックスに戻りません。 –

+0

あなたは私たちにあなたの更新されたスクリプトをNOT INで表示できますか? – maSTAShuFu

答えて

0

あなたの句:

X <> A OR B OR C 

は、有効なSQLではありません。値は引用符で囲むべき最低限必要で文字列彼らであればということ

"WHERE T1Workers.NonUserID NOT IN (" & _ 
       Me.Worker1.Value & " , " & _ 
       Me.Worker2.Value & " , " & _ 
       Me.Worker3.Value & ") " 

注:あなたが代わりにNOT INを使用することができます。 A はるかに良い解決策はSQLパラメータを代わりに使用することですが、それが可能であるかどうかわからないWorker4です。

+0

"IN"または "NOT IN"句を使用することで、コードは次のComboBoxに何も返しません。別の方法がありますか? –

+0

ありがとうございました!私はそのトリックを行った括弧が足りない! –

関連する問題