Volledige versie bekijken : Error in vb programma



Sille
15 May 2012, 21:04
Hey mannen,

Ik krijg altijd een lastige Error in vb.net als ik een scherm wil sluiten .. Hij zegt namelijk dat ik een datum verplicht ben in te geven ..


Ik zal het even schetsen waar de fout zich bevind... Dus van zodra je een nieuwe draaiing of film wilt toevoegen moet je een datum veld invullen. Dus ik vergis me en ik meot een film toevoegen in plaats van een draaiing dus ik druk op het sluit kruisje .. En daarna gaat hij dus in error want de datum moet binnen een bepaald limiet liggen ??

Dus is er iemand die weet hoe ik deze error kan opvangen en eventueel omzeilen zodat het programma toch gewoon verder kan runnen en niet crashed.



http://uploading.com/files/m975b8m6/Ado_gold.rar/

ultddave
21 May 2012, 13:06
frmFilmInsert en frmFilm neem ik aan?

In frmFilm doe je:


Dim myfrmFilmInsert As New frmFilmInsert
myfrmFilmInsert.ShowDialog()

myFilm.p_filmnaam = myfrmFilmInsert.p_myFilm.p_filmnaam
myFilm.p_filmduur = myfrmFilmInsert.p_myFilm.p_filmduur
myFilm.p_filmreleasedtm = myfrmFilmInsert.p_myFilm.p_filmreleasedtm
myFilm.p_filmid = myfrmFilmInsert.p_myFilm.p_filmid

myData.s_InsertFilmRam(myFilm)

Me.txtFilmnaam.Text = myFilm.p_filmnaam
Me.txtFilmduur.Text = myFilm.p_filmduur
Me.txtFilmid.Text = myFilm.p_filmid
Me.dtpReleasedtm.Value = myFilm.p_filmreleasedtm

Me.cboFilmZoek.SelectedValue = myFilm.p_filmid

MessageBox.Show("Film werd correct opgeslagen!")

s_enab()
Me.EditToolStripMenuItem.Enabled = True
Me.DeleteToolStripMenuItem.Enabled = True


Maar als die myfrmFilmInsert gesloten wordt, zoals je zei, dan zal hij nog steeds die data opvragen etc ;).

Gewoon een if test bij die showdialog plaatsen:




Dim myfrmFilmInsert As New frmFilmInsert
if(myfrmFilmInsert.ShowDialog() != DialogResult.Cancel) {
myFilm.p_filmnaam = myfrmFilmInsert.p_myFilm.p_filmnaam
myFilm.p_filmduur = myfrmFilmInsert.p_myFilm.p_filmduur
myFilm.p_filmreleasedtm = myfrmFilmInsert.p_myFilm.p_filmreleasedtm
myFilm.p_filmid = myfrmFilmInsert.p_myFilm.p_filmid

myData.s_InsertFilmRam(myFilm)

Me.txtFilmnaam.Text = myFilm.p_filmnaam
Me.txtFilmduur.Text = myFilm.p_filmduur
Me.txtFilmid.Text = myFilm.p_filmid
Me.dtpReleasedtm.Value = myFilm.p_filmreleasedtm

Me.cboFilmZoek.SelectedValue = myFilm.p_filmid

MessageBox.Show("Film werd correct opgeslagen!")

s_enab()
Me.EditToolStripMenuItem.Enabled = True
Me.DeleteToolStripMenuItem.Enabled = True
}

(Ik heb geen visual basic IDE geinstalleerd staan, dus kan compile errors geven, maar die showdialog functie returned "DialogResult.Cancel" als je op het kruisje drukt. En dan kan je dus makkelijk met een if-test checken of dat het geval was of niet ;).

Meer info;
http://msdn.microsoft.com/en-us/library/c7ykbedk.aspx (bij het onderdeel "remarks").

Ik weet niet of Visual Basic lege return statements toelaat om de functie vroegtijdig te stoppen. Dan zou dit ook gaan (gewoon stoppen met het uitvoeren van de functie als hij gelijk is aan "cancel" ;).


if(myfrmFilmInsert.ShowDialog() == DialogResult.Cancel)
return;


Mvg,
Dave