Solved

Visual basic find word in a database record and pull data after it

Posted on 2004-04-06
9
302 Views
Last Modified: 2010-04-17
I have a database with a MEMO field. I need a code to find a certain word in the record and if found pull the data to the right of it. if not then do nothing and go to the next record.

Example.


field1                   field2
1                        this is a test and the word is great to be alive. How are you today
2                        today is friday and it is the week end



what I have here is two records.

I need it to look at the first record and find the word -----to
once found then copy the next 6 character would be:space be al
counting spaces this is how I get 6 characters

then go to the next record.
since-----to---- is not in the record do nothing. and so on until the records are all looked at.

Is this possible.

Platform = Visual Basic 6
                adodb = Microsoft Access database
0
Comment
Question by:bear23
9 Comments
 
LVL 14

Expert Comment

by:Tommy Kinard
ID: 10769388
Hi bear23

for each record
InfoAfterTo = Mid(DataBaseField, InStr(1, DataBaseField, "to") + 2, 6)
next

HTH
dragontooth
0
 

Expert Comment

by:peanut1010
ID: 10770767
the problem with the is let say this

I want to use another key word
  td


and I have records like this

this is td2 great day

hello td I hate today


it seems like even though I have td listed it is pulling the td2

is there a way to just make it look for td2 not anything other
0
 

Author Comment

by:bear23
ID: 10770776
geez peanut, you have been following me. this is the second or third question. Are you testing experts or are you just having the same problems????

0
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 

Author Comment

by:bear23
ID: 10770796
out of curiousity, because that might be a problem I face, what is the answer to that.

I tried what he was talking about and it seemed that if it seen any of the two character that it automatically pulled it. I even tried a if then statement and it still did it, meaning

keyword
to2

if  InStr(1, DataBaseField, "to") > 0 then
  InfoAfterTo = Mid(DataBaseField, InStr(1, DataBaseField, "to") + 2, 6)

else
   msgbox "No Match"
end if


the result was not the msgbox like it should have been, it did the infoafterto


is there a way to just lock the only work "to2"

not "to", to23344", "to2r", etc
0
 
LVL 27

Accepted Solution

by:
Dabas earned 50 total points
ID: 10772332
Hi bear23,
InfoAfterTo = Mid(DataBaseField, InStr(1, DataBaseField, "to ") + 3, 6)
Note the space after the word to.
Otherwise, taking your initial example, the second row would not give a blank but capture "day is"

Dabas
0
 
LVL 14

Expert Comment

by:Tommy Kinard
ID: 10774368
Dabas is correct.

dragontooth

0
 

Author Comment

by:bear23
ID: 10777016
the problem I am having now that I am really playing with it is the fact that if anywhere in that record there is the identifier it is pulling it.

So example
concentrating on this if part
key word this time is:
to

I have the following statement

if  InStr(1, DataBaseField, "to") > 0 then
  msgbox "found"
else
   msgbox "No Match"
end if



record looks like this

I am going too
next record
I am going to the store

it is pulling msgbox found for both, it should only pull for the 2nd recordset
I am going to the store

why or how can I get this if then statement to work properly....
0
 
LVL 14

Expert Comment

by:Tommy Kinard
ID: 10777306
As Dabas pointed out if you are looking for the word "to" and you do not want to pick up every occurance of "to" and you actually want to pick up the word " to " add spaces and adjust the count.

So in this case you will pick up every occurance of "to " in "away we go into the wild blue yonder" using the code below you will get a message box of "found"

if  InStr(1, DataBaseField, "to ") > 0 then  ' "to " you are looking for this
  msgbox "found"
else
   msgbox "No Match"
end if

So in this case you will pick up every occurance of " to " in "away we go into the wild blue yonder" using the code below you will get a message box of "No Match"

if  InStr(1, DataBaseField, " to ") > 0 then  ' " to " you are looking for this
  msgbox "found"
else
   msgbox "No Match"
end if

So in this case you will pick up every occurance of "to" in "away we go into the wild blue yonder" using the code below you will get a message box of "found"

if  InStr(1, DataBaseField, "to") > 0 then  ' "to" you are looking for this
  msgbox "found"
else
   msgbox "No Match"
end if

dragontooth

0

Featured Post

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
groupNoAdj 7 105
Modify a small python script 19 116
ejb example issues 3 26
SQL Insert parts by customer 12 42
This is an explanation of a simple data model to help parse a JSON feed
A short article about problems I had with the new location API and permissions in Marshmallow
An introduction to basic programming syntax in Java by creating a simple program. Viewers can follow the tutorial as they create their first class in Java. Definitions and explanations about each element are given to help prepare viewers for future …
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …

837 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question