Hi guys,
I am a new member to the group.
I am trying to build an inventory management application using VB.net 2008 express edtion and MS access 2007.
I have managed to load the Combo box (cmID) on form(frmSales) with product Ids from tblProducts.
I have two textboxes on the same form txtDescription and txtPrice. txtDescription should display product description from tblProducts and txtPrice should display the product price from the same table, based on the Product ID selected in combo box cmbID on the same form. I have tried to search for the code to make this work, but the suggestions I have gathered so far are not just doint it.
The code loading the combo box is:
Imports System.Data.OleDb
Public Class frmSales
Public myConnToAccess As OleDb.OleDbConnection
Dim mySQLCommand As OleDbCommand
Dim mySQLStrg As String
Dim ds As DataSet
Dim da As OleDbDataAdapter
Dim tables As DataTableCollection
Private Sub bntMenu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bntMenu.Click
frmMenu.Show()
Me.Hide()
End Sub
Private Sub frmSales_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
myConnToAccess = New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Delta\Documents\Visual Studio 2008\Projects\easysaling\posdb.accdb")
myConnToAccess.Open()
ds = New DataSet
tables = ds.Tables
da = New OleDbDataAdapter("SELECT pID from tblProducts", myConnToAccess)
da.Fill(ds, "tblProducts")
Dim view1 As New DataView(tables(0))
With cmbID
.DataSource = ds.Tables("tblProducts")
.DisplayMember = "pID"
.ValueMember = "pID"
.SelectedIndex = 0
.AutoCompleteMode = AutoCompleteMode.SuggestAppend
.AutoCompleteSource = AutoCompleteSource.ListItems
End With
End Sub
The above code as I said earlier is successfully populating the combo box with product IDs, with the drop down property.
But, the code to fill the text boxes with Product description and price based on the Id selected in the combo box is not working. This is the code I have so far.
Private Sub cmbID_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbID.SelectedIndexChanged
myConnToAccess = New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=H:\Users\Delta\Documents\Visual Studio 2008\Projects\easysaling\posdb.accdb")
myConnToAccess.Open()
Dim query As String = ("SELECT Description, Price FROM tblProducts WHERE pID = ' " & cmbID.Text & " ' ")
Dim cmd As New OleDb.OleDbCommand(query, myConnToAccess)
cmd.CommandText = query
txtDescription.Text = cmd.ExecuteScalar().ToString()
txtPrice.Text = cmd.ExecuteScalar().ToString()
myConnToAccess.Close()
End Sub
when I run this code, I am getting an error message "Object reference not set to an instance of an object"
May someone help me out please....