Search Form Results Error

  • Thread starter Thread starter michelleumich
  • Start date Start date
M

michelleumich

I am currently developing a database and as part of that am working on
a continuous form. I'm working with an adapted version of Allan
Browne's continuous form: http://allenbrowne.com/ser-62.html I have
worked with it, altered it to my needs but it is still not working
properly. There are no SQL errors, I have combed through and made
sure that syntax and format is the same as Allan's version. However,
when in form view the Results section is only showing "#Name?" in each
text box. I am pretty sure that the filter is working properly, and
that the problem is in pulling up the results. I searched on this
form for the "#Name?" error and have made sure that there are no
repeating names of text boxes or anything else for that matter on the
form. Is there anyway for me to just get rid of the text box method
of showing results and to just have a subform display the results?
How would I go about doing this? If this option is not viable, what
are my options becuase I am not sure what the error is here. I would
really appreciate your feedback.
Thank you,
Michelle
 
Hi Michelle,

The "#Name?" error (usually) means Access cannot find the object being
refered to. And usually it is a spelling error........ like a field name that
is "txtCustomer" in the table but is "txtCustomers" (with an "s") in the
query/code.

Check that the control source property of the controls refers to the right
fields in the table/query.

Sorry.......without seeing the code and the form I can't be much more help.

If you want, do a "Compact & repair", then WinZip the mdb and email it to
me. (remove sensitive data)

HTH
 
Steve S,
Thank you so much for reviewing my question. Regarding the #Name?
error, both the text boxes (checked for repeats) and refrences clear.
The problem must be something different. Under different
circumstances, I would not hesitate to send you a copy of the database
but too much of the data is sensitive, and I don't know how to go
about editing it (so that you can understand and work with it)
without removing a considerable portion of the data (if not all of
it). However, I can copy/paste the code without hesitation. So you
know: The continuous form example I have adapted to only use text
boxes with partial searches. This is why a lot of the original form
is commented out.


'Purpose: This module illustrates how to create a search form, _
where the user can enter as many or few criteria as they
wish, _
and results are shown one per line.
'Note: Only records matching ALL of the criteria are returned.
'Author: Allen Browne ([email protected]), June 2006.
Option Compare Database
Option Explicit

Private Sub cmdFilter_Click()
'Purpose: Build up the criteria string form the non-blank search
boxes, and apply to the form's Filter.
'Notes: 1. We tack " AND " on the end of each condition so you
can easily add more search boxes; _
we remove the trailing " AND " at the end.
' 2. The date range works like this: _
Both dates = only dates between (both
inclusive. _
Start date only = all dates from this one
onwards; _
End date only = all dates up to (and
including this one).
Dim strWhere As String 'The criteria string.
Dim lngLen As Long 'Length of the criteria
string to append to.
Const conJetDate = "\#mm\/dd\/yyyy\#" 'The format expected for
dates in a JET query string.


'***********************************************************************
'Look at each search box, and build up the criteria string from
the non-blank ones.

'***********************************************************************
'Text field example. Use quotes around the value in the string.
'[2007-08ScholarshipMaster].
If Not IsNull(Me.txtFilterUMID) Then
'
strWhere = strWhere & " ([UMID] Like ""*" & Me.txtFilterUMID &
"*"") AND "
End If

'Another text field example. Use Like to find anywhere in the
field.
'Me. -> Me.txtFilterName
If Not IsNull(Me.txtFilterName) Then
strWhere = strWhere & " ([Name] Like ""*" & Me.txtFilterName &
"*"") AND "
End If

'Number field example. Do not add the extra quotes.
If Not IsNull(Me.txtProjectGrant) Then
strWhere = strWhere & " ([ProjectGrant] LIKE ""*" &
Me.txtProjectGrant & "*"") AND "
End If

'Yes/No field and combo example. If combo is blank or contains
"ALL", we do nothing.
'If cboFilterResidency = -1 Then
' strWhere = strWhere & "([Residency] = True) "
'ElseIf cboFilterResidency = 0 Then
'strWhere = strWhere & "([Residency] = False) "
'End If

'Date field example. Use the format string to add the # delimiters
and get the right international format.
'If Not IsNull(txtStartDate) Then
'strWhere = strWhere & "([EnteredOn] >= " &
Format(txtStartDate, conJetDate) & ") AND "
'End If

'Another date field example. Use "less than the next day" since
this field has times as well as dates.
'If Not IsNull(txtEndDate) Then 'Less than the next day.
'strWhere = strWhere & "([EnteredOn] < " & Format(txtEndDate +
1, conJetDate) & ") AND "
'End If


'***********************************************************************
'Chop off the trailing " AND ", and use the string as the form's
Filter.

'***********************************************************************
'See if the string has more than 5 characters (a trailng " AND ")
to remove.
lngLen = Len(strWhere) - 5
If lngLen <= 0 Then 'Nah: there was nothing in the string.
MsgBox "No criteria", vbInformation, "Nothing to do."
Else 'Yep: there is something there, so remove
the " AND " at the end.
strWhere = Left$(strWhere, lngLen)
'For debugging, remove the leading quote on the next line.
Prints to Immediate Window (Ctrl+G).
'Debug.Print strWhere

'Finally, apply the string as the form's Filter.
Me.Filter = strWhere
Me.FilterOn = True
End If
End Sub

Private Sub cmdReset_Click()
'Purpose: Clear all the search boxes in the Form Header, and show
all records again.
Dim ctl As Control

'Clear all the controls in the Form Header section.
For Each ctl In Me.Section(acHeader).Controls
Select Case ctl.ControlType
Case acTextBox, acComboBox
ctl.Value = Null
Case acCheckBox
ctl.Value = False
End Select
Next

'Remove the form's filter.
Me.FilterOn = False
End Sub

Private Sub Form_BeforeInsert(Cancel As Integer)
'To avoid problems if the filter returns no records, we did not
set its AllowAdditions to No.
'We prevent new records by cancelling the form's BeforeInsert
event instead.
'The problems are explained at http://allenbrowne.com/bug-06.html
Cancel = True
MsgBox "You cannot add new clients to the search form.",
vbInformation, "Permission denied."
End Sub

'Private Sub Form_Open(Cancel As Integer)
'Remove the single quote from these lines if you want to initially
show no records.
'Me.MultiValueSearchForm].Filter = "(False)"
'Me.MultiValueSearchForm].FilterOn = True
'End Sub
 
Michelle,

A mdb with all records deleted would be fine. It would be easier to find
errors.
But maybe a few more questions will work.


Is the record source for the form a table or query? Did you change the
record source for the form during testing or while doing modifications?

Are the control sources for the text boxes on the form valid? IF a text box
cannot find the field that is specified in the control source property, it
will display "#Name?".

Open the form in design view. In the "Form Design" toolbar there is an icon
for "Field List". Click on it. A dialog box will appead. Do the fields
listedn in the Field List match the names in the text boxes on the form? An
unbound text box will show 'Unbound'. If a text box is bound to a field named
'txtApple', you will see "txtApple". So the field names that are displayed in
the text box controls (in design view) should match what is in the Field List
dialog.

-----
There are no obvious errors in the code. I did notice you have a field named
"Name". "Name" is a reserved word in Access and shouldn't be used to name
objects. The example 'Yes/No field and combo example" doesn't have an " AND
", but that setion is commented out.

HTH
--
Steve S
--------------------------------
"Veni, Vidi, Velcro"
(I came; I saw; I stuck around.)


michelleumich said:
Steve S,
Thank you so much for reviewing my question. Regarding the #Name?
error, both the text boxes (checked for repeats) and refrences clear.
The problem must be something different. Under different
circumstances, I would not hesitate to send you a copy of the database
but too much of the data is sensitive, and I don't know how to go
about editing it (so that you can understand and work with it)
without removing a considerable portion of the data (if not all of
it). However, I can copy/paste the code without hesitation. So you
know: The continuous form example I have adapted to only use text
boxes with partial searches. This is why a lot of the original form
is commented out.


'Purpose: This module illustrates how to create a search form, _
where the user can enter as many or few criteria as they
wish, _
and results are shown one per line.
'Note: Only records matching ALL of the criteria are returned.
'Author: Allen Browne ([email protected]), June 2006.
Option Compare Database
Option Explicit

Private Sub cmdFilter_Click()
'Purpose: Build up the criteria string form the non-blank search
boxes, and apply to the form's Filter.
'Notes: 1. We tack " AND " on the end of each condition so you
can easily add more search boxes; _
we remove the trailing " AND " at the end.
' 2. The date range works like this: _
Both dates = only dates between (both
inclusive. _
Start date only = all dates from this one
onwards; _
End date only = all dates up to (and
including this one).
Dim strWhere As String 'The criteria string.
Dim lngLen As Long 'Length of the criteria
string to append to.
Const conJetDate = "\#mm\/dd\/yyyy\#" 'The format expected for
dates in a JET query string.


'***********************************************************************
'Look at each search box, and build up the criteria string from
the non-blank ones.

'***********************************************************************
'Text field example. Use quotes around the value in the string.
'[2007-08ScholarshipMaster].
If Not IsNull(Me.txtFilterUMID) Then
'
strWhere = strWhere & " ([UMID] Like ""*" & Me.txtFilterUMID &
"*"") AND "
End If

'Another text field example. Use Like to find anywhere in the
field.
'Me. -> Me.txtFilterName
If Not IsNull(Me.txtFilterName) Then
strWhere = strWhere & " ([Name] Like ""*" & Me.txtFilterName &
"*"") AND "
End If

'Number field example. Do not add the extra quotes.
If Not IsNull(Me.txtProjectGrant) Then
strWhere = strWhere & " ([ProjectGrant] LIKE ""*" &
Me.txtProjectGrant & "*"") AND "
End If

'Yes/No field and combo example. If combo is blank or contains
"ALL", we do nothing.
'If cboFilterResidency = -1 Then
' strWhere = strWhere & "([Residency] = True) "
'ElseIf cboFilterResidency = 0 Then
'strWhere = strWhere & "([Residency] = False) "
'End If

'Date field example. Use the format string to add the # delimiters
and get the right international format.
'If Not IsNull(txtStartDate) Then
'strWhere = strWhere & "([EnteredOn] >= " &
Format(txtStartDate, conJetDate) & ") AND "
'End If

'Another date field example. Use "less than the next day" since
this field has times as well as dates.
'If Not IsNull(txtEndDate) Then 'Less than the next day.
'strWhere = strWhere & "([EnteredOn] < " & Format(txtEndDate +
1, conJetDate) & ") AND "
'End If


'***********************************************************************
'Chop off the trailing " AND ", and use the string as the form's
Filter.

'***********************************************************************
'See if the string has more than 5 characters (a trailng " AND ")
to remove.
lngLen = Len(strWhere) - 5
If lngLen <= 0 Then 'Nah: there was nothing in the string.
MsgBox "No criteria", vbInformation, "Nothing to do."
Else 'Yep: there is something there, so remove
the " AND " at the end.
strWhere = Left$(strWhere, lngLen)
'For debugging, remove the leading quote on the next line.
Prints to Immediate Window (Ctrl+G).
'Debug.Print strWhere

'Finally, apply the string as the form's Filter.
Me.Filter = strWhere
Me.FilterOn = True
End If
End Sub

Private Sub cmdReset_Click()
'Purpose: Clear all the search boxes in the Form Header, and show
all records again.
Dim ctl As Control

'Clear all the controls in the Form Header section.
For Each ctl In Me.Section(acHeader).Controls
Select Case ctl.ControlType
Case acTextBox, acComboBox
ctl.Value = Null
Case acCheckBox
ctl.Value = False
End Select
Next

'Remove the form's filter.
Me.FilterOn = False
End Sub

Private Sub Form_BeforeInsert(Cancel As Integer)
'To avoid problems if the filter returns no records, we did not
set its AllowAdditions to No.
'We prevent new records by cancelling the form's BeforeInsert
event instead.
'The problems are explained at http://allenbrowne.com/bug-06.html
Cancel = True
MsgBox "You cannot add new clients to the search form.",
vbInformation, "Permission denied."
End Sub

'Private Sub Form_Open(Cancel As Integer)
'Remove the single quote from these lines if you want to initially
show no records.
'Me.MultiValueSearchForm].Filter = "(False)"
'Me.MultiValueSearchForm].FilterOn = True
'End Sub











Hi Michelle,

The "#Name?" error (usually) means Access cannot find the object being
refered to. And usually it is a spelling error........ like a field name that
is "txtCustomer" in the table but is "txtCustomers" (with an "s") in the
query/code.

Check that the control source property of the controls refers to the right
fields in the table/query.

Sorry.......without seeing the code and the form I can't be much more help.

If you want, do a "Compact & repair", then WinZip the mdb and email it to
me. (remove sensitive data)

HTH
--
Steve S
--------------------------------
"Veni, Vidi, Velcro"
(I came; I saw; I stuck around.)





- Show quoted text -
 
Michelle,

A mdb with all records deleted would be fine. It would be easier to find
errors.
But maybe a few more questions will work.

Is the record source for the form a table or query? Did you change the
record source for the form during testing or while doing modifications?

Are the control sources for the text boxes on the form valid? IF a text box
cannot find the field that is specified in the control source property, it
will display "#Name?".

Open the form in design view. In the "Form Design" toolbar there is an icon
for "Field List". Click on it. A dialog box will appead. Do the fields
listedn in the Field List match the names in the text boxes on the form? An
unbound text box will show 'Unbound'. If a text box is bound to a field named
'txtApple', you will see "txtApple". So the field names that are displayed in
the text box controls (in design view) should match what is in the Field List
dialog.

-----
There are no obvious errors in the code. I did notice you have a field named
"Name". "Name" is a reserved word in Access and shouldn't be used to name
objects. The example 'Yes/No field and combo example" doesn't have an " AND
", but that setion is commented out.

HTH
--
Steve S
--------------------------------
"Veni, Vidi, Velcro"
(I came; I saw; I stuck around.)



michelleumich said:
Steve S,
Thank you so much for reviewing my question. Regarding the #Name?
error, both the text boxes (checked for repeats) and refrences clear.
The problem must be something different. Under different
circumstances, I would not hesitate to send you a copy of the database
but too much of the data is sensitive, and I don't know how to go
about editing it (so that you can understand and work with it)
without removing a considerable portion of the data (if not all of
it). However, I can copy/paste the code without hesitation. So you
know: The continuous form example I have adapted to only use text
boxes with partial searches. This is why a lot of the original form
is commented out.
'Purpose: This module illustrates how to create a search form, _
where the user can enter as many or few criteria as they
wish, _
and results are shown one per line.
'Note: Only records matching ALL of the criteria are returned.
'Author: Allen Browne ([email protected]), June 2006.
Option Compare Database
Option Explicit
Private Sub cmdFilter_Click()
'Purpose: Build up the criteria string form the non-blank search
boxes, and apply to the form's Filter.
'Notes: 1. We tack " AND " on the end of each condition so you
can easily add more search boxes; _
we remove the trailing " AND " at the end.
' 2. The date range works like this: _
Both dates = only dates between (both
inclusive. _
Start date only = all dates from this one
onwards; _
End date only = all dates up to (and
including this one).
Dim strWhere As String 'The criteria string.
Dim lngLen As Long 'Length of the criteria
string to append to.
Const conJetDate = "\#mm\/dd\/yyyy\#" 'The format expected for
dates in a JET query string.
'***********************************************************************
'Look at each search box, and build up the criteria string from
the non-blank ones.
'***********************************************************************
'Text field example. Use quotes around the value in the string.
'[2007-08ScholarshipMaster].
If Not IsNull(Me.txtFilterUMID) Then
'
strWhere = strWhere & " ([UMID] Like ""*" & Me.txtFilterUMID &
"*"") AND "
End If
'Another text field example. Use Like to find anywhere in the
field.
'Me. -> Me.txtFilterName
If Not IsNull(Me.txtFilterName) Then
strWhere = strWhere & " ([Name] Like ""*" & Me.txtFilterName &
"*"") AND "
End If
'Number field example. Do not add the extra quotes.
If Not IsNull(Me.txtProjectGrant) Then
strWhere = strWhere & " ([ProjectGrant] LIKE ""*" &
Me.txtProjectGrant & "*"") AND "
End If
'Yes/No field and combo example. If combo is blank or contains
"ALL", we do nothing.
'If cboFilterResidency = -1 Then
' strWhere = strWhere & "([Residency] = True) "
'ElseIf cboFilterResidency = 0 Then
'strWhere = strWhere & "([Residency] = False) "
'End If
'Date field example. Use the format string to add the # delimiters
and get the right international format.
'If Not IsNull(txtStartDate) Then
'strWhere = strWhere & "([EnteredOn] >= " &
Format(txtStartDate, conJetDate) & ") AND "
'End If
'Another date field example. Use "less than the next day" since
this field has times as well as dates.
'If Not IsNull(txtEndDate) Then 'Less than the next day.
'strWhere = strWhere & "([EnteredOn] < " & Format(txtEndDate +
1, conJetDate) & ") AND "
'End If
'***********************************************************************
'Chop off the trailing " AND ", and use the string as the form's
Filter.
'***********************************************************************
'See if the string has more than 5 characters (a trailng " AND ")
to remove.
lngLen = Len(strWhere) - 5
If lngLen <= 0 Then 'Nah: there was nothing in the string.
MsgBox "No criteria", vbInformation, "Nothing to do."
Else 'Yep: there is something there, so remove
the " AND " at the end.
strWhere = Left$(strWhere, lngLen)
'For debugging, remove the leading quote on the next line.
Prints to Immediate Window (Ctrl+G).
'Debug.Print strWhere
'Finally, apply the string as the form's Filter.
Me.Filter = strWhere
Me.FilterOn = True
End If
End Sub
Private Sub cmdReset_Click()
'Purpose: Clear all the search boxes in the Form Header, and show
all records again.
Dim ctl As Control
'Clear all the controls in the Form Header section.
For Each ctl In Me.Section(acHeader).Controls
Select Case ctl.ControlType
Case acTextBox, acComboBox
ctl.Value = Null
Case acCheckBox
ctl.Value = False
End Select
Next
'Remove the form's filter.
Me.FilterOn = False
End Sub
Private Sub Form_BeforeInsert(Cancel As Integer)
'To avoid problems if the filter returns no records, we did not
set its AllowAdditions to No.
'We prevent new records by cancelling the form's BeforeInsert
event instead.
'The problems are explained athttp://allenbrowne.com/bug-06.html
Cancel = True
MsgBox "You cannot add new clients to the search form.",
vbInformation, "Permission denied."
End Sub
'Private Sub Form_Open(Cancel As Integer)
'Remove the single quote from these lines if you want to initially
show no records.
'Me.MultiValueSearchForm].Filter = "(False)"
'Me.MultiValueSearchForm].FilterOn = True
'End Sub

- Show quoted text -

Through E-mail correspondence Steve answered my question. The Text
boxes were showing the #Name? Error becuase I entered
=[ScholarshipTable]![Field] instead of just 'Field'. This was
incorrect because the Record source already assumed these fields are
coming from the ScholarshipTable and the redundancy caused confusion.
Anyways, thanks Steve!
 
Back
Top