Populate textbox with combobox selection

Posted on 2009-05-14
Last Modified: 2013-11-26
I am trying to create a database program in Visual Basic 2008 using Access Database.
I have 2 tables, Invoice and Customer.  Customer Table is bound to a combobox. I would like to populate three textboxes on my invoice form with the content of the combobox.  i.e. The user selects a customer from the combobox and the customers Name, Address and City are put in the textboxes on an invoice form.
Imports System.Data

Imports System.Data.OleDb


Public Class Form1

    Dim DbConnection As OleDbConnection

    Dim InvoiceCommand As OleDbCommand

    Dim InvoiceAdapter As OleDbDataAdapter

    Dim InvoiceTable As DataTable

    Dim InvoiceManager As CurrencyManager

    Dim CustomerCommand As OleDbCommand

    Dim CustomerAdapter As OleDbDataAdapter

    Dim CustomerTable As DataTable

    Dim CustomerManager As CurrencyManager


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        'connect to database

        DbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source = c:\Database2.mdb")



        'establish command object

        InvoiceCommand = New OleDbCommand("Select * from tblInvoice ORDER BY CustomerName", DbConnection)


        'establish data adapter/data table

        InvoiceAdapter = New OleDbDataAdapter()

        InvoiceAdapter.SelectCommand = InvoiceCommand

        InvoiceTable = New DataTable()



        'bind controls to data table

        txtName.DataBindings.Add("Text", InvoiceTable, "CustomerName")

        txtAddress.DataBindings.Add("Text", InvoiceTable, "Address")

        txtCity.DataBindings.Add("Text", InvoiceTable, "City")



        'establish customer table/combo box to pick customer

        CustomerCommand = New OleDbCommand("Select * from TblCustomer ORDER BY CustomerID", DbConnection)

        CustomerAdapter = New OleDbDataAdapter()

        CustomerAdapter.SelectCommand = CustomerCommand

        CustomerTable = New DataTable()



        ComboBox1.DataSource = CustomerTable

        ComboBox1.DisplayMember = "CustomerID"

        ComboBox1.ValueMember = "CustomerID"

        ' ComboBox1.DataBindings.Add("SelectedValue", InvoiceTable, "CustomerName")


    End Sub


    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

        txtName.Text = ComboBox1.SelectedText


    End Sub

Open in new window

Question by:williamaa

Accepted Solution

Bob Hoffman earned 500 total points
ID: 24391130
create a strycture to hold the name, address and city. Load the structure to the combo box. On event SelectIndexChanged write the data to your textboxes. I didn't check the code below, wrote it in notepad, but it should get you real close.
    'Put this structure in a Module

    Public Structure CustData

        Dim Name As String

        Dim Address As String

        Dim City As String

        Public Sub New(ByVal _Name As String, ByVal _Address As String, ByVal _City As String)

            Name = _Name

            Address = _Address

            City = _City

        End Sub

        Public Overrides Function ToString() As String

            Return Me.Name

        End Function

    End Structure

    Public Sub LoadComboBox()

        Dim oCn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source = c:\Database2.mdb")

        Dim oCmd As New OleDb.OleDbCommand("Select * from tblInvoice ORDER BY CustomerName", oCn)


        Dim oDr As OleDb.OleDbDataReader = oCmd.ExecuteReader()

        While oDr.Read()

            Dim oExtraData As Object = Nothing

            yourComboBox.Items.Add(New CustData(oDr("Name"), oDr("Address"), oDr("City")))

        End While



    End Sub

    Private Sub yourComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles yourComboBox.SelectedIndexChanged

        txtName.text = yourComboBox.SelectedItem.Name

        txtAddress.text = yourComboBox.SelectedItem.Address

        txtCity.text = yourComboBox.SelectedItem.City

    End Sub

Open in new window


Author Closing Comment

ID: 31656983
Excellent.  Thank you very much have searched for 3 days for the correct answer.

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

Article by: Martin
Here are a few simple, working, games that you can use as-is or as the basis for your own games. Tic-Tac-Toe This is one of the simplest of all games.   The game allows for a choice of who goes first and keeps track of the number of wins for…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

895 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

12 Experts available now in Live!

Get 1:1 Help Now