I want to design a form to do the search job as the access "Find" form.
For example, in a form 5 fields are displayed. I want to search in a field which the cursor is in there. I need another form which I can type the search string and finds it in that field.
Hello lana!
As I can understand you, you can do it via FILTER BY FORM, CLEAR GRID, APPLY FILTER, and REMOVE FILTER icons.
Look at attacment (word, zip).
This is no what I need. I would like to design a form exactly like the "find" form which access has. It searches in the field on your form where the cursor is.
If you want to have the same functionality as that of the search feature in Office applications, then you should be looking for an add-in or have expert coding skills.
In any case, here's code from the Access Help files:
The SelStart property specifies or determines the starting point of the selected text or the position of the insertion point if no text is selected. Read/write Integer. expression.SelStart expression A variable that represents a TextBox object. Remarks
The SelStart property uses an Integer in the range 0 to the total number of characters in the text box portion of a combo box.
To set or return this property for a control, the control must have the focus . To move the focus to a control, use the SetFocus method.
Changing the SelStart property cancels the selection, places an insertion point in the text, and sets the SelLength property to 0. Example
The following example uses two event procedures to search for text specified by a user. The text to search is set in the form's Load event procedure. The Click event procedure for the Find button (which the user clicks to start the search) prompts the user for the text to search for and selects the text in the text box if the search is successful.
Visual Basic for Applications
Code:
Private Sub Form_Load()
Dim ctlTextToSearch As Control
Set ctlTextToSearch = Forms!Form1!Textbox1
' SetFocus to text box.
ctlTextToSearch.SetFocus
ctlTextToSearch.Text = "This company places large orders twice " & _
"a year for garlic, oregano, chilies and cumin."
Set ctlTextToSearch = Nothing
End Sub
Public Sub Find_Click()
Dim strSearch As String
Dim intWhere As Integer
Dim ctlTextToSearch As Control
' Get search string from user.
With Me!Textbox1
strSearch = InputBox("Enter text to find:")
' Find string in text.
intWhere = InStr(.Value, strSearch)
If intWhere Then
' If found.
.SetFocus
.[B]SelStart[/B] = intWhere - 1
.SelLength = Len(strSearch)
Else
' Notify user.
MsgBox "String not found."
End If
End With
End Sub
No worries Lana. Try and investigate the InStr(), Mid(), InStrRev() functions to see what you can come up with. Then just post your code and I'll have a look.
If (however) you get stuck or are struggling just come back and give us a post.