Hello all. I have a problem which is driving me up a wall. I am using two forms: Form2 is a child of Form1. Form1 contains a data bound grid which displays summaries of related Form2. When data in Form2 is saved (either an insert or an update), I raise an event, and I handle that event in Form1 by refreshing the grid. New/Update is determined by If/Then/Else.

Here's the pertinent code:


Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click
Dim EditPromo As New frmPromo
EditPromo.NewRecord = False
EditPromo.RecordID = dbgPromos.Item(dbgPromos.CurrentRowIndex, 0)
AddHandler EditPromo.ItemSave2, AddressOf RefreshGrid
End Sub
Private Sub RefreshGrid()
'm_Promos declared as datatable at beginning of class
Dim CM As CurrencyManager
'DA is a data access class which handles all of the SQLClient stuff.
m_Promos = DA.RunSPGetDS("SelectCampaignPromos", DA.CreateParam("@CampaignID", txtCampaignID.Text)).Tables("CampaignPromos")
'dataview declared at beginning of class
DV.Table = m_Promos
dbgPromos.DataSource = Nothing
dbgPromos.DataSource = m_Promos
CM = BindingContext(dbgPromos.DataSource, dbgPromos.DataMember)
End Sub


Private Sub SavePromo()
If m_New = True Then
Dim ID As New DataTable
ID = DA.RunSPGetDS("SelectNewPromoID").Tables("NewPromoID")
txtPromoID.Text = ID.Rows(0).Item("NewID")
DA.RunSP("InsertPromo", DA.CreateParam("@MCCampaignID", txtCampaignID.Text),_
DA.CreateParam("@MCPromoDescription", txtDescription.Text), _
DA.CreateParam("@MCPromoID", txtPromoID.Text), _
DA.CreateParam("@MCPromoNotes", txtNotes.Text))
'when updating an existing record
DA.RunSP("UpdatePromo", DA.CreateParam("@PromoID", txtPromoID.Text), _
DA.CreateParam("@MCPromoDescription", txtDescription.Text), _
DA.CreateParam("@MCPromoNotes", txtNotes.Text))
End If
RaiseEvent ItemSave()
End Sub

When I run the app and take it through the ELSE section, the event is not raised. I've tried splitting out the IF/Then/Else into separate subs, no difference. The grid on Form1 does not refresh.

Any suggestions or advice would be greatly appreciated.


I don't know much about raise ing events between forms, but what I see is you have in your "DA.RunSP" in the true part you have 4 "DA.CreateParam" and in the false you have 3 "DA.CreateParam". I don't know if this is the problem or not. Just a suggestion.

This article has been dead for over six months. Start a new discussion instead.