我試圖用查詢法從MS Access中的一個表中過濾行,但沒有成功。我有如下表格,我想根據KH1到KH6任何一列中的值 "A1 "和 "A2 "來生成一個查詢。其結果應該如下。我已經在查詢中使用了或條件,但它在MS Access中生成了空白表。非常感謝任何幫助。
表:
ID KH1 KH2 KH3 KH4 KH5 KH6
001 A2 B1 C1 D1 E1 F1
002 F1 A1 B1 D1 E1 G1
003 A1 B1 D1 E1
004 XX XX XX XX XX XX
005 AA AB AC A2 XX
006 XX XX XX A1
007 XX XX XX XX A1 XX
008 XX XX AE XX AC
結果:
ID KH1 KH2 KH3 KH4 KH5 KH6
001 A2 B1 C1 D1 E1 F1
002 F1 A1 B1 D1 E1 G1
003 A1 B1 D1 E1
005 AA AB AC A2 XX
006 XX XX XX A1
007 XX XX XX XX A1 XX
uj5u.com熱心網友回復:
你需要一個WHERE子句來檢查這6個列中的每一個:
SELECT *
FROM tablename
WHERE KH1 IN ('A1', 'A2')
OR KH2 IN ('A1', 'A2')
OR KH3 IN ('A1', 'A2')
OR KH4 IN ('A1', 'A2')
OR KH5 IN ('A1', 'A2')
OR KH6 IN ('A1', 'A2');
如果有很多列需要檢查的話,這樣做的規模并不大。
如果你重新設計表格,使每一行只包含1個KH?列,就會更容易。
像這樣:
ID nr KH
001 1 A2
001 2 B1
001 3 C1
001 4 D1
001 5 E1
001 6 F1
uj5u.com熱心網友回復:
你可以使用DAO來做這個:
Public Function SelectRecords()
Dim Records As DAO.Recordset
Dim Field As DAO.Field
Set Records = CurrentDb.OpenRecordset("Select * From YourTable"/span>)
While Not Records.EOF
For Each Field In Records.Fields
Select Case Field.Value
Case "A1"/span>, "A2"/span>
退出 為
End Select
下一步 下一步
If Not Field Is Nothing Then
' 輸出記錄。
Debug.Print Records.Fields(0).Value, Field.Name, Field.Value
Set Field = Nothing。
End If
Records.MoveNext
結束
記錄.關閉
End Function[/span
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/324152.html
標籤:
