UIと呼ばれるフォームを作成しようとしていますが、ユーザーはコンボボックスの「cmbFilter」から次元パラメータを選択し、テキストボックスに+/- "txtTererance"。リストから部品番号を選択した後、これはそのパラメータの対応関係範囲内の類似部品番号の結果を返すべきです。表のフィールド名は次元パラメータであり、フォームロードコードのコンボボックスに対する.AddItem
です。SQLクエリーのフィールドセレクタとしてフォームコントロールを使用する
例。部品番号1のODは5なので、検索パラメータとして「OD」を選択し、公差を+/- 1に設定します。結果にはODが6の部品#2が表示されますが、OD#7の部品#3は表示されません。
私は、クエリにlistboxs行ソースを設定しているが、 は関係なく、私はこのコードの構文に変更するものを私が操作や構文エラーを取得していません。だから私はフォームコントロールの権利を参照していないと私は仮定、または私のロジックは正しくないですか?
次のコードは、アクセス時にSQLデザインビューで疲れました。私はまた、アクセス、まだVBA運でSQLコードを記述しようとしてい
SELECT Part_Matrix.Part_Number, Part_Matrix.Customer, Part_Matrix.Large_OD, Part_Matrix.Vent_Opening, & _
Part_Matrix.BPT, Part_Matrix.MFT, Part_Matrix.PD, Part_Matrix.Hat_ID, Part_Matrix.Microfinish, & _
Part_Matrix.Turn_Operations, Part_Matrix.Stud_Holes, Part_Matrix.SH_Dimensions, Part_Matrix.Manufacturer_Holes, & _
Part_Matrix.MH_Dimensions, Part_Matrix.Other_Holes, Part_Matrix.Other_Dimension
FROM Part_Matrix
WHERE [Forms]![UI]![cmbFilter]
BETWEEN (((SELECT [Forms]![UI]![cmbFilter] FROM Part_Matrix WHERE Part_Number = [Forms]![UI]![lbSelected]) - [Forms]![UI]![txtTolerance])
AND ((SELECT [Forms]![UI]![cmbFilter] FROM Part_Matrix WHERE Part_Number = [Forms]![UI]![lbSelected]) + [Forms]![UI]![txtTolerance]))
ORDER BY [Forms]![UI]![cmbFilter] DESC;
SQLは、以下のコードは、私は上記のようにその今同じロジックを知っている、単純なテキストでした。
Private Sub btnSearch_Click()
Dim SQL As String
If txtTolerance = "" Then
MsgBox ("No Tolerance Entered")
Exit Sub
ElseIf cmbFilter = "" Then
MsgBox ("No Filter Criteria Entered")
Exit Sub
Else
SQL = "SELECT Part_Matrix.[Part_Number], " & Me.cmbFilter & " " & _
"FROM Part_Matrix" & _
"ORDER BY " & Me.cmbFilter & " DESC;"
Debug.Print SQL
DoCmd.RunSQL SQL
lbFilterResults.RowSource = SQL
lbFilterResults.Requery
End If
End Sub
'... FROM Part_MatrixORDER BY ...'あなたのクエリの単語の間にスペースを入れておく必要があります。 –
あなたはvbaで話していますか?またはクエリですか? – holi4683
あなたのVBAのあなたのSQL変数の値:あなたはPart_MatrixとORDERの間にスペースを入れていません –