Solved

Writing RichTextBox to Access in Visual Basic 2008

Posted on 2008-06-18
8
676 Views
Last Modified: 2013-11-26
I am writing a program that allows the user to input formatted text into a rich text box in visual basic 2008. This information is then written to an access database (.mdb format), but the rich text formatting is not written to the database file, it only shows up as plain text.
Public Class NewJob
 

    Private m_cnadonetconnection As New OleDb.OleDbConnection

    Private m_dadataadapter As OleDb.OleDbDataAdapter

    Private m_cbCommandBuilder As OleDb.OleDbCommandBuilder

    Private m_dtJobs As New DataTable

    Private m_rowposition As Integer = 0
 

    Private Sub cbJobType_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbJobType.SelectedIndexChanged

        cbJobSubType.Enabled = True

        If cbJobType.Text = "Technology" Then

            cbJobSubType.Items.Clear()

            cbJobSubType.Items.Add("Analyst")

            cbJobSubType.Items.Add("Business Systems")

            cbJobSubType.Items.Add("Consultant")

            cbJobSubType.Items.Add("Database Administrator")

            cbJobSubType.Items.Add("Database Developer / Engineer")

        End If

        If cbJobType.Text = "Telecommunications" Then

            cbJobSubType.Items.Clear()

            cbJobSubType.Items.Add("Engineer")

            cbJobSubType.Items.Add("Field Technician")

            cbJobSubType.Items.Add("Project Management")

            cbJobSubType.Items.Add("Product Management")

            cbJobSubType.Items.Add("Software / Applications Engineer")

        End If

    End Sub
 
 

    Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click

        Me.Close()

    End Sub
 

    Private Sub btnPost_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPost.Click
 
 

        Dialog1.Show()

        newjob_ID = tbJobID.Text

        newjob_Title = tbJobTitle.Text

        newjob_Type = cbJobType.Text

        newjob_SubType = cbJobSubType.Text

        newjob_Years = cbYears.Text

        newjob_Location1 = tbLocation1.Text

        newjob_Location2 = tbLocation2.Text

        newjob_Description = rtbDescription.Text

        newjob_Map = cbMap.Text

        newjob_Keywords = tbKeywords.Text
 

        Dim drNewRow As DataRow = m_dtJobs.NewRow()
 

        drNewRow("JobID") = tbJobID.Text

        drNewRow("JobTitle") = tbJobTitle.Text

        drNewRow("JobCategory") = cbJobType.Text

        drNewRow("jobSubCategory") = cbJobSubType.Text

        drNewRow("JobExperience") = cbYears.Text

        drNewRow("JobLocation1") = tbLocation1.Text

        drNewRow("JobLocation2") = tbLocation2.Text

        drNewRow("JobDescription") = rtbDescription.Text

        drNewRow("jobMap") = cbMap.Text

        drNewRow("jobKeywords") = tbKeywords.Text
 

        m_dtJobs.Rows.Add(drNewRow)

        m_dadataadapter.Update(m_dtJobs)

        m_rowposition = m_dtJobs.Rows.Count - 1
 
 
 
 
 
 

        Dialog1.Close()

        MessageBox.Show("Success!")

        Me.Close()
 
 

    End Sub
 

    Private Sub btnMapInfo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMapInfo.Click

        MapInfo.Show()

    End Sub
 

    Private Sub NewJob_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
 

        m_cnadonetconnection.Close()

        m_cnadonetconnection.Dispose()
 

    End Sub
 

    Private Sub NewJob_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        m_cnadonetconnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\database\SKYFIRMJACKSON.mdb"

        m_cnadonetconnection.Open()

        m_dadataadapter = New OleDb.OleDbDataAdapter("Select * From JOBS", m_cnadonetconnection)

        m_cbCommandBuilder = New OleDb.OleDbCommandBuilder(m_dadataadapter)

        m_dadataadapter.Fill(m_dtJobs)
 
 

    End Sub

End Class

Open in new window

0
Comment
Question by:SkyFirm
  • 4
  • 2
  • 2
8 Comments
 
LVL 75

Expert Comment

by:DatabaseMX (Joe Anderson - Access MVP)
Comment Utility
That's correct.  Until A2007, RFT is not supported.

mx
0
 
LVL 75

Expert Comment

by:DatabaseMX (Joe Anderson - Access MVP)
Comment Utility
However, I have successfully used this free tool:

http://www.lebans.com/richtext.htm

mx
0
 
LVL 48

Expert Comment

by:jpaulino
Comment Utility
Hi SkyFirm,

You have to save as Rtf format instead of Text. You need to use the property rtf

Me.RichTextBox1.Rtf
0
 
LVL 48

Accepted Solution

by:
jpaulino earned 500 total points
Comment Utility
DatabaseMX,

If you save to the database as Rtf format it will save the format also (as plain text but with the formatting). The db field can be defined as text.

This is "jpaulino" in green with Microsoft Sans Serif font.

"{\rtf1\ansi\ansicpg1252\deff0\deflang2070{\fonttbl{\f0\fnil\fcharset0 Microsoft Sans Serif;}}
{\colortbl ;\red0\green128\blue0;}
\viewkind4\uc1\pard\cf1\f0\fs17 jpaulino\cf0\par}"

When you retrive form the db (access, sql, etc) you set it again like:

Me.RichTextBox1.Rtf = MyFieldFromDB
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 49

Expert Comment

by:Gustav Brock
Comment Utility
> The db field can be defined as text.

Minor correction: For all practical purposes, it should be defined as Memo.

mx: You are thinking of the HTML formatted rich text control of A2007. That is, of course, different from the original Rich Text Control of previous versions which used RTF formatting.

/gustav
0
 
LVL 75

Expert Comment

by:DatabaseMX (Joe Anderson - Access MVP)
Comment Utility
"That's correct.  Until A2007, RFT is not supported."

Actually, I'm thinking of the fact the A2007 supports Rich Text in text boxes - not a control.

From:

http://msdn.microsoft.com/en-us/library/bb203849.aspx


"Replacing Code and Third-Party Controls"
 .........

"Saving Rich Text in a Field

In an Access 2007 Text field or Memo field, you have the option of saving unformatted text (as you always have in Access) or saving rich texttext that contains formatting such as bold and italic. To store rich text, you need to use a Text Box control on a form with its Text Format property set to Rich Text, as shown in Figure 25."
0
 
LVL 49

Expert Comment

by:Gustav Brock
Comment Utility
Right, but that "rich text" is not RTF Rich Text but HTML. Not that this is bad, but it is somewhat confusing (at least it was to me).

/gustav
0
 
LVL 75

Expert Comment

by:DatabaseMX (Joe Anderson - Access MVP)
Comment Utility
oops ...further down:

"Because Access 2007 stores its rich text in HTML format, instead of the Rich Text Format (RTF) format used by several third-party controls, you cannot just replace an ActiveX control with an Access 2007 control that provides similar functionality. If you are currently using a third-party control, and you have already stored RTF data in your database, you should continue using the existing control. If you are newly adding support for rich text to your application, however, use the new text box option instead."

Well ... still ... it's not a control.

mx
0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

When you are entering numbers in a speadsheet, and don't remember what 6×7 is, you just type “=6*7" instead. It works in every cell! This is not so in Access. To enter the elusive 42 in a text box, you have to find a calculator, and then copy the re…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
Familiarize people with the process of utilizing SQL Server functions from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Microsoft Ac…
In Microsoft Access, learn different ways of passing a string value within a string argument. Also learn what a “Type Mis-match” error is about.

771 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

11 Experts available now in Live!

Get 1:1 Help Now