Solved

VB-to-Word data sending.

Posted on 1998-11-24
6
203 Views
Last Modified: 2010-05-03
I need to learn how to send data from VB databases to a Word document.

The exact way I want to make it is: I navigate a VB database, I find the exact data (i.e. a person and the associated address and birth date), and I press a CommandButton "Send".

Then I want to open a pre-existing Word document (I know the exact document and its path) to insert the data. Some data will be in the middle of a phrase, and has to be at an exact place, as it will print to a pre-printed form.

Have I to put in the Word doc "marks" at the exact places to substitute them with the data? How is it made overstriking? (If I insert, the rest of the document will be displaced, I think, and I don't want it to move).

I need a little code sample, not hints. It would be enough if you tell me how to connect to Word ("Word.Application", Word.Document", both?), how to send a text from a variable or a field, how to insert this text at a specific location without displacing the rest, and how to print the document directly from VB without having to go to Word's File:Print.

A final little collateral question: If I wanted to reformat the whole document after inserting data (i.e. a personalized mailing with the name in the middle of the phrase) to re-justify it, how it would be made?

I own VB 5 Enterprise and Office 97 Pro, and I know VB for Applications is the common gateway between them.

Thank you in advance, and greetings from Spain, Europe.
0
Comment
Question by:BETTY
  • 3
  • 2
6 Comments
 
LVL 1

Author Comment

by:BETTY
ID: 1446493
Edited text of question
0
 
LVL 1

Expert Comment

by:mithomas
ID: 1446494
Since you want actual code, and I don't have time to develop some, I'll just mark this a comment.  Hopefully you'll accept hints for free.

One of the best ways to learn how to interact with word is to use its macro recorder features.  Try doing the things in Word that you want to automate, with the macro recorder on.  The recorder will write the commands to a word document.  These are the commands that you will send to word from your VB app.

To attach VB to word, you basically do a CreateObject() on the ProgId for word, storing the returned reference in an object variable.  You then make the calls to word:

'This code is fake.  It's been
'a long time since I did this!
Dim Word as Object
Set Word = CreateObject("Word7") 'This is not the correct progid
Word.OpenDocument "MyTemplate.doc"
Word.Document.InsertText "Bookmark1", "TheText"
Word.Document.Print
Set Word = Nothing

We used bookmarks and word templates to create "forms" to fill in.  You can use the bookmarks to indicate places where text must be filled in.  Name the bookmarks appropriately (such as "Name", or "Country"), and your code will make a lot of sense.

You DON'T need VBA to do this.  You DO need to read the help on CreateObject, and the Word object model (available from Word).

As an alternative to using CreateObject and just an Object variable thus requiring you to guess at how to interact with Word -- perhaps by now, MS has provided a type library so that you can add a reference to Word in your VB project and see all of the methods as you're writing your code.

Good luck...
0
 
LVL 3

Accepted Solution

by:
jjmartin earned 100 total points
ID: 1446495
'This example open a new word document and write to the file, you must be using Word 95 or 97

Private Sub Command1_Click()
Dim oWord As Word.Application
Dim oDoc As Word.Document

Set oWord = New Word.Application

' Open an existing file this way
'oWord.Documents.Open(...)

' Open a new document
Set oDoc = oWord.Documents.Add

oDoc.Content.InsertAfter "Mary had a little lamb," & vbCrLf & "Her fleece was white as snow"

oDoc.SaveAs "C:\Junk.Doc"
oDoc.Close

Set oWord = Nothing

End Sub


You must select the word object library within the project references otherwise your project will not recognize the Word declarations.  This is just a quick and simple example, the hard part comes when you want to format the text.  If you go into word and look under help, there is a help file specificaly for VB to word.
0
Are your AD admin tools letting you down?

Managing Active Directory can get complicated.  Often, the native tools for managing AD are just not up to the task.  The largest Active Directory installations in the world have relied on one tool to manage their day-to-day administration tasks: Hyena. Start your trial today.

 
LVL 1

Author Comment

by:BETTY
ID: 1446496
I would want to give jjmartin 50 additional points from my account, as his/her hint is nearly as helpful as the accepted answer from the other expert.

So, if you can do it directly, you have my authorization. If not, please tell me how can I do it.
0
 
LVL 1

Author Comment

by:BETTY
ID: 1446497
Sorry, I made a mistake when I wrote the last comment on November 25, 06:46 PST. Where I wrote "give jjmartin 50 additional points", I meant "give mithomas ...".

The reason is he/she made me a comment that helped me nearly the same that the accepted answer from jjmartin. Then, the A grade (100 points) goes to jjmartin, and I want to give a "gift" of 50 points to mithomas for the comment.

Thanks, and sorry again for the mistake.
0
 
LVL 1

Expert Comment

by:mithomas
ID: 1446498
Thanks, Betty, even if I don't get the points.  I appreciate the thought!

 :-)
0

Featured Post

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

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

The debugging module of the VB 6 IDE can be accessed by way of the Debug menu item. That menu item can normally be found in the IDE's main menu line as shown in this picture.   There is also a companion Debug Toolbar that looks like the followin…
If you have ever used Microsoft Word then you know that it has a good spell checker and it may have occurred to you that the ability to check spelling might be a nice piece of functionality to add to certain applications of yours. Well the code that…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

773 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