print from visual basic 6.0 to word or excel

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • mixalis21
    New Member
    • Dec 2007
    • 1

    print from visual basic 6.0 to word or excel

    hi,

    i really need to know in this month a way to take data from a vb form and put then in particular places in a word/excel document which i have already created.

    for example, i have a text box named n1, a command button called c1 and my report is called "myrep.doc" or "mydoc.xls" . what would be the script in the command button action, so that when i press the button the program will take the value from the text box "n1" and put it in a particular place in one of the two reports.

    i really need an answer till the end of this month.

    thanks a lot in advance.
  • Dököll
    Recognized Expert Top Contributor
    • Nov 2006
    • 2379

    #2
    Originally posted by mixalis21
    hi,

    i really need to know in this month a way to take data from a vb form and put then in particular places in a word/excel document which i have already created.

    for example, i have a text box named n1, a command button called c1 and my report is called "myrep.doc" or "mydoc.xls" . what would be the script in the command button action, so that when i press the button the program will take the value from the text box "n1" and put it in a particular place in one of the two reports.

    i really need an answer till the end of this month.

    thanks a lot in advance.
    Hey there, mixalis21!

    Here is info gathered through link you see here, you can modify to create word doc:

    Dim oExcel As Object
    Dim oBook As Object
    Dim oSheet As Object

    'Start a new workbook in Excel
    Set oExcel = CreateObject("E xcel.Applicatio n")
    Set oBook = oExcel.Workbook s.Add


    'Add data to cells of the first worksheet in the new workbook
    Set oSheet = oBook.Worksheet s(1)
    oSheet.Range("A 1").Value = "Last Name"
    oSheet.Range("B 1").Value = "First Name"
    oSheet.Range("A 1:B1").Font.Bol d = True
    oSheet.Range("A 2").Value = "Doe"
    oSheet.Range("B 2").Value = "John"

    'Save the Workbook and Quit Excel
    oBook.SaveAs "C:\Book1.x ls"
    oExcel.Quit



    ......


    Dim oExcel As Object
    Dim oBook As Object
    Dim oSheet As Object

    'Start a new workbook in Excel
    Set oExcel = CreateObject("E xcel.Applicatio n")
    Set oBook = oExcel.Workbook s.Add

    'Create an array with 3 columns and 100 rows
    Dim DataArray(1 To 100, 1 To 3) As Variant
    Dim r As Integer
    For r = 1 To 100
    DataArray(r, 1) = "ORD" & Format(r, "0000")
    DataArray(r, 2) = Rnd() * 1000
    DataArray(r, 3) = DataArray(r, 2) * 0.7
    Next

    'Add headers to the worksheet on row 1
    Set oSheet = oBook.Worksheet s(1)
    oSheet.Range("A 1:C1").Value = Array("Order ID", "Amount", "Tax")

    'Transfer the array to the worksheet starting at cell A2
    oSheet.Range("A 2").Resize(1 00, 3).Value = DataArray

    'Save the Workbook and Quit Excel
    oBook.SaveAs "C:\Book1.x ls"
    oExcel.Quit




    Dim sNWind As String
    Dim conn As New ADODB.Connectio n
    Dim rs As ADODB.Recordset
    sNWind = _
    "C:\Program Files\Microsoft Office\Office\S amples\Northwin d.mdb"
    conn.Open "Provider=Micro soft.Jet.OLEDB. 4.0;Data Source=" & _
    sNWind & ";"
    conn.CursorLoca tion = adUseClient
    Set rs = conn.Execute("O rders", , adCmdTable)

    'Create a new workbook in Excel
    Dim oExcel As Object
    Dim oBook As Object
    Dim oSheet As Object
    Set oExcel = CreateObject("E xcel.Applicatio n")
    Set oBook = oExcel.Workbook s.Add
    Set oSheet = oBook.Worksheet s(1)

    'Transfer the data to Excel
    oSheet.Range("A 1").CopyFromRec ordset rs

    'Save the Workbook and Quit Excel
    oBook.SaveAs "C:\Book1.x ls"
    oExcel.Quit

    'Close the connection
    rs.Close
    conn.Close


    ......



    'Create a new workbook in Excel
    Dim oExcel As Object
    Dim oBook As Object
    Dim oSheet As Object
    Set oExcel = CreateObject("E xcel.Applicatio n")
    Set oBook = oExcel.Workbook s.Add
    Set oSheet = oBook.Worksheet s(1)

    'Create the QueryTable
    Dim sNWind As String
    sNWind = _
    "C:\Program Files\Microsoft Office\Office\S amples\Northwin d.mdb"
    Dim oQryTable As Object
    Set oQryTable = oSheet.QueryTab les.Add( _
    "OLEDB;Provider =Microsoft.Jet. OLEDB.4.0;Data Source=" & _
    sNWind & ";", oSheet.Range("A 1"), "Select * from Orders")
    oQryTable.Refre shStyle = xlInsertEntireR ows
    oQryTable.Refre sh False

    'Save the Workbook and Quit Excel
    oBook.SaveAs "C:\Book1.x ls"
    oExcel.Quit
    Use the clipboard
    The Windows Clipboard can also be used as a mechanism for transferring data to a worksheet. To paste data into multiple cells on a worksheet, you can copy a string where columns are delimited by tab characters and rows are delimited by carriage returns. The following code illustrates how Visual Basic can use its Clipboard object to transfer data to Excel: 'Copy a string to the clipboard
    Dim sData As String
    sData = "FirstName" & vbTab & "LastName" & vbTab & "Birthdate" & vbCr _
    & "Bill" & vbTab & "Brown" & vbTab & "2/5/85" & vbCr _
    & "Joe" & vbTab & "Thomas" & vbTab & "1/1/91"
    Clipboard.Clear

    Clipboard.SetTe xt sData

    'Create a new workbook in Excel
    Dim oExcel As Object
    Dim oBook As Object
    Set oExcel = CreateObject("E xcel.Applicatio n")
    Set oBook = oExcel.Workbook s.Add


    'Paste the data
    oBook.Worksheet s(1).Range("A1" ).Select
    oBook.Worksheet s(1).Paste

    'Save the Workbook and Quit Excel
    oBook.SaveAs "C:\Book1.x ls"
    oExcel.Quit





    .........



    Dim sNWind As String
    Dim conn As New ADODB.Connectio n
    Dim rs As ADODB.Recordset
    Dim sData As String
    sNWind = _
    "C:\Program Files\Microsoft Office\Office\S amples\Northwin d.mdb"
    conn.Open "Provider=Micro soft.Jet.OLEDB. 4.0;Data Source=" & _
    sNWind & ";"
    conn.CursorLoca tion = adUseClient
    Set rs = conn.Execute("O rders", , adCmdTable)

    'Save the recordset as a tab-delimited file
    sData = rs.GetString(ad ClipString, , vbTab, vbCr, vbNullString)
    Open "C:\Test.tx t" For Output As #1
    Print #1, sData
    Close #1

    'Close the connection
    rs.Close
    conn.Close

    'Open the new text file in Excel
    Shell "C:\Program Files\Microsoft Office\Office\E xcel.exe " & _
    Chr(34) & "C:\Test.tx t" & Chr(34), vbMaximizedFocu s



    'Create a new instance of Excel
    Dim oExcel As Object
    Dim oBook As Object
    Dim oSheet As Object
    Set oExcel = CreateObject("E xcel.Applicatio n")

    'Open the text file
    Set oBook = oExcel.Workbook s.Open("C:\Test .txt")

    'Save as Excel workbook and Quit Excel
    oBook.SaveAs "C:\Book1.x ls", xlWorkbookNorma l
    oExcel.Quit












    'Create a new connection object for Book1.xls
    Dim conn As New ADODB.Connectio n
    conn.Open "Provider=Micro soft.Jet.OLEDB. 4.0;" & _
    "Data Source=C:\Book1 .xls;Extended Properties=Exce l 8.0;"
    conn.Execute "Insert into MyTable (FirstName, LastName)" & _
    " values ('Bill', 'Brown')"
    conn.Execute "Insert into MyTable (FirstName, LastName)" & _
    " values ('Joe', 'Thomas')"
    conn.Close
    Excel 2007
    1. In Excel 2007, start a new workbook.
    2. Add the following headers to cells A1:B1 of Sheet1:

    A1: FirstName B1: LastName
    3. Format cell B1 as right-aligned.
    4. Select A1:B1.
    5. On the Ribbon, click the Formulas tab, and then click Define Name. Type the name MyTable, and then click OK.
    6. Save the new workbook as C:\Book1.xlsx, and then quit Excel.
    To add records to the MyTable table by using ADO, use code that resembles the following code example. 'Create a new connection object for Book1.xls
    Dim conn As New ADODB.Connectio n
    conn.Open "Provider=Micro soft.ACE.OLEDB. 12.0;" & _
    "Data Source=C:\Book1 .xlsx;Extended Properties=Exce l 12.0;"
    conn.Execute "Insert into MyTable (FirstName, LastName)" & _
    " values ('Scott', 'Brown')"
    conn.Execute "Insert into MyTable (FirstName, LastName)" & _
    " values ('Jane', 'Dow')"
    conn.Close

    Note In this example, Text1 represents a Text Box control on a Visual Basic form: 'Initiate a DDE communication with Excel
    Text1.LinkMode = 0
    Text1.LinkTopic = "Excel|MyBook.x ls"
    Text1.LinkItem = "R1C1:R2C3"
    Text1.LinkMode = 1

    'Poke the text in Text1 to the R1C1:R2C3 in MyBook.xls
    Text1.Text = "one" & vbTab & "two" & vbTab & "three" & vbCr & _
    "four" & vbTab & "five" & vbTab & "six"
    Text1.LinkPoke

    'Execute commands to select cell A1 (same as R1C1) and change the font
    'format
    Text1.LinkExecu te "[SELECT(""R1C1"" )]"
    Text1.LinkExecu te "[FONT.PROPERTIES (""Times New Roman"",""Bold" ",10)]"

    'Terminate the DDE communication
    Text1.LinkMode = 0

    Just in case you need to read up about it. I needed to clean it up so you can see some of the code:
    Last edited by Dököll; Dec 16 '07, 05:35 AM. Reason: added link...

    Comment

    • bonkbc
      New Member
      • Feb 2008
      • 4

      #3
      hi!

      the code snippets you added were very close to what I'm trying to do...but not quite close enough.

      I was wondering if you could pick up where you left off by addressing this issue:

      how can we take textbox data from a visual basic 6.0 form and write it to an excel worksheet once a command button is clicked?

      I've gotten very close to completing this on my own, here is my code:
      Private Sub cmdwrite_Click( )

      Dim oExcel As Excel.Applicati on
      Dim oWB As Excel.Workbook
      Dim oWS As Excel.Worksheet

      Set oExcel = New Excel.Applicati on
      oExcel.Visible = True

      Dim oRng1 As Excel.Range
      Dim oRng2 As Excel.Range


      Set oWB = oExcel.Workbook s.Add
      Set oWS = oWB.Worksheets( "Sheet1")

      Set oRng1 = oWS.Range("A1")

      oRng1.Value = Val(txtwrite.Te xt)

      oWB.SaveAs ("writeit.xl s")

      Cleanup:
      Set oWS = Nothing
      If Not oWB Is Nothing Then oWB.Close
      Set oWB = Nothing
      oExcel.Quit
      Set oExcel = Nothing
      End Sub


      Private Sub cmdquit_click()

      End

      End Sub

      the problem I am having, is that the value entered in the textbox is lost somewhere along the way, and the value written to excel is just "0" (the number zero).

      what is happening there?? I'm kind of lost, and would appreciate any help at all!!! thank you very much in advance.

      -bri

      Comment

      Working...