Microsoft KB Archive/117217

= HOWTO: Search for Specific Text in a Memo Field =

Article ID: 117217

Article Last Modified on 7/13/2004

-

APPLIES TO


 * Microsoft Visual FoxPro 3.0 Standard Edition
 * Microsoft Visual FoxPro 5.0 Standard Edition
 * Microsoft Visual FoxPro 6.0 Professional Edition
 * Microsoft FoxPro 2.0
 * Microsoft FoxPro 2.5b for MS-DOS
 * Microsoft FoxPro 2.5a
 * Microsoft FoxPro 2.5b for MS-DOS
 * Microsoft FoxPro 2.6 for MS-DOS
 * Microsoft FoxPro 2.5b
 * Microsoft FoxPro 2.5a
 * Microsoft FoxPro 2.5b
 * Microsoft FoxPro 2.6 Standard Edition
 * Microsoft FoxPro 2.5b for Macintosh
 * Microsoft Visual FoxPro 2.5c for Macintosh

-



This article was previously published under Q117217



SUMMARY
This article demonstrates the two methods you can use to search for specific text in a memo field. The first method uses the Query Designer. The second method programmatically searches a memo field of a database and highlights a specific word or phrase. The program continues searching and highlighting all occurrences within a memo field until all the matches are located.



Method 1
This example uses the CLIENTS database in the SAMPLE\ORGANIZE\DBFS subdirectory interactively using the Query Designer. Open the Query Designer (File, New, Query), and select the drop-down box under fField Name in the Selection Criteria dialog. Scroll to the bottom of the list of fields, and select . In the Expression window, enter the following: "ATC("msrchstr", Notes)."

In the Criteria drop-down box, select "More Than." In the Example textbox, type "0" (zero). When the query is performed, the cursor returns the set of records where the searched-for string occurs in the specified field at any location.

Method 2
This code example uses the CLIENTS database in the SAMPLE\ORGANIZE\DBFS subdirectory. Before executing the code, open the memo field of the first record and type the following text:

"This is a test of memo field text search program. If the test is successful, two occurrences will be found.."

After executing the program, type "test" (without the quotation marks) in the @ ... GET field, and press the RETURN key. The program will open the Notes memo field and highlight each occurrence of the word "test." The program will find two instances of the string "test" within the memo field: SET TALK OFF msrchstr=SPACE(5)  && This variable can be any size. &&  USE clients GO TOP @ 1,10 GET msrchstr READ msrchstr=ALLTRIM(msrchstr) m.occurrence=1 DO WHILE .t.     mfound=AT(msrchstr,Notes,m.occurrence) IF mfound > 0 m.occurrence=m.occurrence+1 MODI MEMO notes NOWAIT RANGE mfound,mfound+LEN(msrchstr) WAIT WINDOW 'Press any key to find next occurrence' ELSE WAIT WINDOW 'No more' EXIT ENDIF ENDDO SET TALK ON

Additional query words: highlight search find locate text string

Keywords: kbhowto kbdatabase kbdesigner KB117217

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.