2012-11-23 43 views
1

我需要在Access 2007表單上添加基本記錄搜索功能。我設置了兩個組合框,第一個提供三種不同的搜索選項:按引用,按日期或按職員姓名搜索。此ComboBox上的AfterUpdate事件將設置第二個ComboBox的RowSource,以向用戶顯示任何可用的引用,日期或員工姓名,以允許他們選擇他們想要的。 Go按鈕然後打開與其標準匹配的記錄的關聯表單。如果我選擇通過引用(長)或名稱(字符串)搜索它可以正常工作,但如果我選擇按日期搜索,雖然可用日期在第二個組合中正確顯示,但當我嘗試選擇一個時,出現錯誤:輸入的值對此字段無效。這是因爲控件只能用於單一數據類型,而我試圖在不同時間使用三種不同的控件會讓事情變得混亂?我沒有在控件的屬性中設置任何格式。訪問2007年使用一個組合框控件的多種數據類型?

Private Sub btnGo_Click() 
    'go clicked so find request being searched for and open form at that request(s) 
    If Not IsNull(Me.cboSearchOption) And Not IsNull(Me.cboSearchFor) Then 
     'search variables entered so go to specified request 
     Select Case [gblOption] 
      Case "Reference" 
        DoCmd.OpenForm "frmRequestForInformation", , , "reference = " & Me.cboSearchFor.Value 
      Case "Request date" 
        DoCmd.OpenForm "frmRequestForInformation", , , "date_request_received = #" & Me.cboSearchFor.Value & "#" 
      Case "Staff" 
        DoCmd.OpenForm "frmRequestForInformation", , , "signed_by = '" & Me.cboSearchFor.Value & "'" 
     End Select 
    Else 
     MsgBox "Please ensure you have entered search values in both fields", vbOKOnly, "Unable to search" 
    End If 

末次

注:gblOption包含cboSearchOption的價值,並與行來源爲cboSearchFor沿設置在其更新後事件。

+1

您應該發佈Go按鈕的代碼。 – Fionnuala

+0

也嘗試使用變量變量來保存組合框中的值並將其傳遞給窗體。現在我發現,如果我先傳遞一個日期,那麼它工作正常,但如果我嘗試搜索其他類型之一,則會引發相同的錯誤。 – Chelle

+0

用簡單的表單和類似的設置進行測試,我沒有遇到任何問題。這與改變組合的數據類型無關,由分隔符處理。你有沒有嘗試通過代碼來獲取錯誤行? – Fionnuala

回答

0

聽起來像第二個組合框有一個控制源。 Access試圖將該源設置爲日期並且不開心。您不應該需要該組合框的控制源。

我重載了組合框,但沒有太多問題,其餘代碼看起來沒問題。