2017-04-14 63 views
0

我目前正在爲數據錄入創建一個訪問數據庫。截至目前,我有一個歡迎屏幕,要求提供參與者號碼和評估完成日期。之後,評估者將被帶到下一個表格填寫爲參與者收集的數據。如果參與者號碼和日期匹配且已輸入,是否有辦法取得已填好的表格?謝謝你的幫助!如何根據匹配標準提取表單?

回答

0

不止一種方式來完成。一種方法是在打開表單時應用過濾條件。很簡單的例子:

If Not IsNull(DLookup("fieldname", "tablename", "criteria here")) Then 
    DoCmd.OpenForm "form name", , , "criteria here" 
Else 
    DoCmd.OpenForm "form name", , , , , acFormAdd, "new data here" 
End If 

此外,辦法新數據傳遞到打開的表單並填充新記錄的字段。一種方法是使用OpenForm的OpenArgs參數(示例中顯示的'新數據')。然後第二種形式的代碼將從OpenArgs中提取值。

If Me.NewRecord Then 
    'code to extract data elements from OpenArgs and populate fields 
    'or if the opening screen is still open, 
    'just reference controls on that form for the data elements 
End If 

真正的訣竅是搞清楚將代碼放入什麼事件。請記住:'用戶越友好,代碼越多'。

當您開發代碼時,您遇到了特定問題,請將其發佈以供分析。

0

所以,只是一個快速的實物模型:

Public Sub btnLoadEval_Click() 

    Dim ParticipantNumber as String 
    Dim EvaluationDate as Date 
    Dim EvaluationID as Variant 

    If Not IsNull(Me.txtParticipantNumber.Value) And _ 
     Not IsNull(Me.txtEvaluationDate.Value) Then 

     ParticipantNumber = Me.txtParticipantNumber.Value 
     EvaluationDate = Me.txtEvaluationDate.Value 

     EvaluationID = DLookup("EvaluationID", "Evaluations", _ 
      "[ParticipantNumber]=""" & ParticipantNumber & _ 
      """ And [EvaluationDate]=#" & EvaluationDate & "#") 

     If Not IsNull(EvaluationID) Then 

      Call DoCmd.OpenForm("frmEvaluation",,,"[EvaluationID]=" & _ 
       EvaluationID 

      Call DoCmd.Close(acForm, Me.Name, acSaveNo) 

     Else 

      Call MsgBox("No matching evaluation!") 

     End If 

    Else 

     Call MsgBox("Please enter both fields!") 

    End If 

End Sub 
相關問題