Function glrDoQBF(strFormName As String, fCloseIt As Integer) ' Load the specified form as a QBF form. If ' the form is still loaded when control returns ' to this function, then it will attempt to ' build an SQL WHERE clause describing the ' values in the fields. DoQBF() will return ' either that SQL string or a null string, ' depending on what the user chose to do and ' whether or not any fields were filled in. ' In: ' strFormName: Name of the form to load ' fCloseIt: Close the form, if the user didn't? ' Out: ' Return Value: The calculated SQL string. Dim strSQL As String DoCmd.OpenForm strFormName, WindowMode:=acDialog ' You won't get here until user hides or closes the form. ' If the user closed the form, there's nothing ' to be done. Otherwise, build up the SQL WHERE ' clause. Once you're done, if the caller requested ' the QBF form to be closed, close it now. If isFormLoaded(strFormName) Then strSQL = BuildWHEREClause(Forms(strFormName)) If fCloseIt Then DoCmd.Close acForm, strFormName End If End If glrDoQBF = strSQL End Function