我有這個需求,我必須根據其他字段中給出的數據檢查數據。我有'N'字段的桌子。我應該允許用戶從表中選擇4個字段。然後,我應該得到該特定記錄的所有其他字段,並將其顯示給用戶,以便他可以驗證他輸入到表中的數據是否正確。請幫忙。從Access中獲取記錄
感謝
我有這個需求,我必須根據其他字段中給出的數據檢查數據。我有'N'字段的桌子。我應該允許用戶從表中選擇4個字段。然後,我應該得到該特定記錄的所有其他字段,並將其顯示給用戶,以便他可以驗證他輸入到表中的數據是否正確。請幫忙。從Access中獲取記錄
感謝
我有一個更清晰的認識現在的你需要的東西 - 希望這是你所需要的:
假設你有一個名爲「手機」
的電話表的表有三個主要字段:製造商,操作系統和運營商 除了這些主要字段,還有輔助「規範」字段。現在我們有三個:ScreenSize,Frequencies和Price。
我創建了一個包含三個組合框的表單:ManufacturerFilter,OperatingSystemFilter和CarrierFilter。
每個組合框的行來源是類似於:
SELECT Carrier FROM Phones GROUP BY Carrier ORDER BY Carrier;
當載流子是由製造商和[操作系統]分別取代。
然後我添加所有的次要字段,每個次要字段綁定到他們各自的字段。
您還可以添加一個名爲「檢索」的按鈕,現在讓點擊代碼留空。
此時您有幾個選項。我還是要強調兩個,而這兩個選項都需要下面的過程:
Private Function FilterStr() As String
Dim myFilterStr As String
' Include each filter if they are entered
If Nz(Me.ManufacturerFilter, "") <> "" Then myFilterStr = myFilterStr & "[Manufacturer]='" & Me.ManufacturerFilter.Value & "' AND"
If Nz(Me.OperatingSystemFilter, "") <> "" Then myFilterStr = myFilterStr & "[Operating System]='" & Me.OperatingSystemFilter.Value & "' AND"
If Nz(Me.CarrierFilter, "") <> "" Then myFilterStr = myFilterStr & "[Carrier]='" & Me.CarrierFilter.Value & "' AND"
' Remove the last AND statement
If myFilterStr <> "" Then myFilterStr = Mid(myFilterStr, 1, Len(myFilterStr) - 4)
FilterStr = myFilterStr
End Function
這個函數返回一個過濾字符串,根據選擇的組合框的選項。
選項#1:篩選記錄 我們希望發生什麼,是當選擇了主字段值,記錄被過濾只有符合標準來顯示。下面的代碼添加到您的檢索按鈕的OnClick事件:
Private Sub RetreiveButton_Click()
Dim myFilterStr As String
myFilterStr = FilterStr
If myFilterStr <> "" Then
Me.Filter = myFilterStr
Me.FilterOn = True
Else
Me.Filter = ""
Me.FilterOn = False
End If
End Sub
所以單擊按鈕時會發生什麼情況,是一個過濾字符串是基於選擇的價值創造,然後過濾器被應用到形成。如果在組合框中未選擇任何值,則會清除並關閉過濾器。
選項#2:查找基於價值一個記錄 我們要的是在組合框來選擇值,然後移動到符合條件的記錄。
將以下代碼添加到檢索按鈕的onClick事件中。
Private Sub RetreiveButton_Click()
Dim rst As DAO.Recordset
Dim myFilterStr As String
myFilterStr = FilterStr()
If myFilterStr = "" Then
MsgBox "No Filter Selected", vbOKOnly, "Error"
Exit Sub
End If
Set rst = Me.RecordsetClone
rst.FindFirst myFilterStr
If rst.NoMatch Then
MsgBox "No Matching Records were found", vbOKOnly, "No Data"
Else
Me.Bookmark = rst.Bookmark
End If
Set rst = Nothing
End Sub
這使用相同的FilterStr()函數來返回搜索字符串,但使用記錄集的FindFirst方法來查找記錄。如果找到,它將移動到記錄。
希望能回答你的問題。正如我所指出的那樣,確切的行爲會有所不同,但其基本原則仍然是一樣的。
嗨DHW ......感謝您的建議......但輸入和檢查必須在輸入後進行記錄......輸入和檢查多次完成......如果我使用上述方法,再次檢查所有記錄,因爲他無法選擇特定的記錄。 – user1804254
讓我試着闡述我想要做的事 - 我有一個參賽表格。數據通過這個輸入到表格中。現在我正在爲用戶提供主要字段。所以這些是從表格中獲取數據的組合框。當用戶選擇所有主鍵時,它類似於使用查詢拉起記錄(除了查找字段之外的字段)。只是我應該能夠在各自的文本框中顯示檢索到的字段。我一直在努力工作很長一段時間。但不知道如何繼續。 – user1804254
我想我得到了你 - 你想用主鍵查找記錄,然後顯示記錄。讓我用你的解決方案修改我的答案。給我一點寫代碼。 – DHW
你能編輯你的文章並給我們一個例子嗎?另外,你有什麼具體問題?你的代碼在哪裏破壞? – PowerUser
對於選民來說:如果你不告訴OP他們做錯了什麼,爲什麼要麻煩downvoting? – PowerUser
所以我有一個輸入表格來輸入數據到表格中。用戶現在想要在輸入數據後檢查數據。爲了檢查,他們想要選擇已經出現在表格中的四個字段,並且應該顯示其他字段。例如:可以說一個表格有4個字段 - 名字(主),姓(主),生日(主),性別。現在用戶想要檢查他輸入的數據。所以我需要形成類似於Entry表單的Checking表單。我將允許用戶從主鍵選擇 - 組合爲名,組合爲姓,組合爲DOB - 應該顯示此用戶的性別值。 – user1804254