Visual Studio. Как скопировать запись из базы данных в слово .doc и распечатать ее - PullRequest
0 голосов
/ 06 июня 2011

В Visual studio 2010> Новый проект> Visual Basic> Windows> Приложение Windows формы, я создал форму (form1.vb) и базу данных (Local Database> «Database1.sdf») и таблицу с 3 столбцами ( "Имя", "Город", "Возраст").

Мне нравится копировать эти 3 поля и вставлять их в документ "test1.doc" (откройте его с помощью MS Office или Open Office Writer). У меня есть закладки ("PasteName", PasteCity "," PasteAge ") в указанных местах в test1.doc.

Как сделать кнопку, чтобы открыть документ "test1.doc" и скопировать - вставить эти 3 элемента из таблицы в документ и просмотреть перед печатью? (не для сохранения - только предварительный просмотр и закрытие печати без сохранения после печати)

Я нашел этот код для MS Office, но не работал в Visual Studio. Мне нравится нечто подобное. (этот код предназначен для полей формы документа - в моем документе есть закладки).

Private Sub cmdPrint_Click()
Dim appWord As Word.Application
Dim doc As Word.Document
Set appWord = GetObject(, "Word.Application")
Set appWord = New Word.Application
Set doc = appWord.Documents.Open("C:\WordForms\CustomerSlip.doc", , True)
With doc
.FormFields("fldCustomerID").Result = Me!CustomerID
.FormFields("fldCompanyName").Result = Me!CompanyName
.FormFields("fldContactName").Result = Me!ContactName
.Visible = True
.Activate
End With
Set doc = Nothing
Set appWord = Nothing
End Sub

Спасибо, программисты, люди

Ответы [ 2 ]

0 голосов
/ 28 июня 2011

Это работает для меня. (действие кнопки)

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    'Print customer slip for current customer.
    Dim appWord As Word.Application
    Dim doc As Word.Document
    'Avoid error 429, when Word isn't open.
    On Error Resume Next
    Err.Clear()
    'Set appWord object variable to running instance of Word.
    appWord = GetObject(, "Word.Application")
    If Err.Number <> 0 Then
        'If Word isn't open, create a new instance of Word.
        appWord = New Word.Application
    End If
    doc = appWord.Documents.Open("D:\Test.docx", , True)
    doc.Visible()
    doc.Activate()
    With doc.Bookmarks
        .Item("Name").Range.Text = Me.NameID.Text
        .Item("City").Range.Text = Me.CityID.Text
    End With

    Dim dlg As Word.Dialog
    dlg = appWord.Dialogs.Item(Word.WdWordDialog.wdDialogFilePrint)
    dlg.Display()
    'doc.Printout
    doc = Nothing
    appWord = Nothing
    Exit Sub
     errHandler:
    MsgBox(Err.Number & ": " & Err.Description)
End Sub
0 голосов
/ 06 июня 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...