Solved

Text from Word to Access

Posted on 1998-10-24
7
211 Views
Last Modified: 2012-08-14
I have a Word document that is a list of contracts; each starts with the same string, so the beginning of each is identifiable.  I want to select the text following this string, copy it to a new record in an access table, then move to the next item, copy it, and so on.  The question is how to select the text; the VBA documentation is confusing. Do I bookmark the occurrences of the string, then somehow select between bookmarks?  I dont know how to think about this, really.
0
Comment
Question by:jackwalsh
  • 3
  • 3
7 Comments
 
LVL 9

Expert Comment

by:david_levine
ID: 1614156
Is this a one-time thing (populate Access) or something you want to do on an ongoing basis?
0
 

Author Comment

by:jackwalsh
ID: 1614157
I want to do this on an ongoing basis--that is, I want to have a form in access with a command button that is pushed, opens Word, opens the file (which I receive daily), selects the correct sections of the text, copies each one to a new record in an access table, closes Word, and then distributes the text to selected email addresses.  I've got it all working except the ability to select the text, copy it, then select the next chunk.
So close!  
The problem is that I don't understand how to make a range from the current cursor position to the next occurrence of a string; once I get that, I'm ok.  The examples all show extending a range by a paragraph, or a sentence, or a word, or some object, rather than to a particular bit of text. Somehow it appears that bookmarks can be used, but the documentation of bookmarks is confusing--they are both objects and properties, I think, but I don't really understand.  Thanks for your help

Jack Walsh
0
 
LVL 3

Accepted Solution

by:
frazer earned 100 total points
ID: 1614158
Hi,

you should use Find to do the work for you.  It will select the text you are searching for....

With Selection.Find
        .Text = "REM"
        .Forward = True
        .MatchCase = True
        .MatchWholeWord = True
End With


then use

Selection.Copy

and then paste it into Access

To find the next occurance use...

Selection.Find.Execute


Put all this code into a loop to search the whole document.

Hope this helps

Frazer
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 3

Expert Comment

by:frazer
ID: 1614159
Hi,

Sorry I didn't read your question properly, try this code it should do more what you want


Sub WordSelecting()
    Dim temp As Range
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "REM"
        .Forward = True
        .MatchCase = True
        .MatchWholeWord = True
    End With
    Selection.Find.Execute
    Set temp = ActiveDocument.Range(Start:=Selection.Range.Start + Len(Selection.Find.Text), _
    End:=Selection.Range.Start + 16)
    Debug.Print Trim(temp.Text)
End Sub


hope this helps

Frazer
0
 

Author Comment

by:jackwalsh
ID: 1614160
Almost, not quite.  What I have is a standard heading for each sections of text---call it XXXXX.  What I want to do is select the text between the first occurrence of XXXXX and the second occurrence of XXXXX, copy it to an access record, then select the text between the second occurrence of XXXXX and the third, copy it, then between the third and fourth, and so on. The problem is that the text is of variable lengths; I can't just find XXXXX and go six paragraphs, or something like that.  It has to go from one occurrence to the next.  The problems is in finding the end of the selection.  Does this need bookmarks at each occurrence, then select from bookmark to bookmark?
0
 
LVL 3

Expert Comment

by:frazer
ID: 1614161
Hi,

Now I understand, this should work ok now....

Sub WordSelecting()
    Dim temp As Range
    Dim wdStart As Long
    Dim wdEnd As Long
    ActiveDocument.Range(1, 1).Select
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "REM"
        .Forward = True
        .MatchCase = True
        .MatchWholeWord = True
    End With
    Selection.Find.Execute
    wdStart = Selection.Range.End
    Do While Selection.Find.Execute = True
        wdEnd = Selection.Range.Start
        Set temp = ActiveDocument.Range(Start:=wdStart, End:=wdEnd)
        Debug.Print Trim(temp.Text)
        wdStart = Selection.Range.End
    Loop
End Sub


Hope this helps

Frazer
0
 

Author Comment

by:jackwalsh
ID: 1614162
Wonderful!  Frazer stuck with it until he made me state the problems in a way it could be understood.  Many thanks!!
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Microsoft Office Picture Manager is not included in Office 2013. This comes as a shock to users upgrading from earlier versions of Office, such as 2007 and 2010, where Picture Manager was included as a standard application. This article explains how…
Entering a date in Microsoft Access can be tricky. A typo can cause month and day to be shuffled, entering the day only causes an error, as does entering, say, day 31 in June. This article shows how an inputmask supported by code can help the user a…
This video walks the viewer through the process of creating envelopes and labels, with multiple names and addresses. Navigate to the “Start Mail Merge” button in the Mailings tab: Follow the step-by-step process until asked to find the address doc…
This video shows where to find templates, what they are used for, and how to create and save a custom template using Microsoft Word.

911 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

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now