Zo even een update:
@sig69 CTRL + ALT + E bij "common language runtime exceptions" Thrown aangevinkt.
Applicatie hangt en ik krijg geen melding.
@iedereen
Ik heb ben de software aan het strippen geweest en ik denk dat ik weet waarop de software vast loopt.
Wat gebeurt er:
1. ik start de applicatie en dmv een button doe ik het volgende
code:
1
| frm_inchecken.ShowDialog() |
2. Nu krijg ik een form met een knop OK of Cancel
Waar het nu op fout gaat is het volgende.
De bedoeling is dat ik een file selecteer (waarvan ik de naam wil hebben) die ik open in dat dialoogvenster.
Dit doe ik met de volgende script:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| Private Sub btn_laad_bestand_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_laad_bestand.Click
Dim MyFileOpen As New System.Windows.Forms.OpenFileDialog
Dim bExOccured As Boolean
Dim retVal As DialogResult
Try
' does not add an extension to a file name if the user omits the extension
MyFileOpen.AddExtension = True
'dialog box does not allow multiple files to be selected
MyFileOpen.Multiselect = False
MyFileOpen.Filter = "All files (*.*)|*.*"
retVal = MyFileOpen.ShowDialog()
If retVal = Windows.Forms.DialogResult.OK Then
If MyFileOpen.CheckFileExists = True And MyFileOpen.CheckPathExists = True Then
lbl_bestandsnaam.Text = MyFileOpen.FileName
End If
End If
Catch ex1 As AccessViolationException
MsgBox(ex1.StackTrace.ToString)
bExOccured = True
Catch ex As Exception
MsgBox(ex.StackTrace.ToString)
bExOccured = True
Finally
If bExOccured = True Then
MsgBox("Program executed with some errors!!!")
End If
End Try
End Sub |
Zodra ik de bovenstaande code uitvoer dan loopt de applicatie vast zonder melding.
Druk ik op de button cancel of ik skip dat stukje code dan werkt het oké.
Wat gebeurt er als ik het dialoog venster sluit?
code:
1
2
| Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Close() |
Dan roep ik het bovenstaande stukje script op.
Voor alle duidelijkheid voeg ik hier even de complete code toe:
Button voor het oproepen van het dialoogvenster:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| Private Sub btn_inchecken_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_inchecken.Click
frm_inchecken.ShowDialog()
sConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\My Documents\DB_BESTAND_PLC.accdb"
Dim conn As New System.Data.OleDb.OleDbConnection(sConnectionString)
Dim cmd As New System.Data.OleDb.OleDbCommand(sSQL, conn)
conn.Open()
cmd.CommandText = "UPDATE BESTANDEN" & " SET LOCK = 'Uitgechecked', UITGECHECKEDDOOR = '" & inlog_naam & "', UITWHEN = '" & Date.Now & "' WHERE BESTANDSNAAM = '" & lbl_file_naam.Text & "'"
cmd.ExecuteNonQuery()
conn.Close() '<- HIER LOOPT DE CODE OP VAST
If incheck_ok = True Then
Else
End If
End Sub |
Hierbij de code van de dialoogvenster welke ik oproep:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
| Public Class frm_inchecken
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
' If txt_info.Text = "" Or lbl_bestandsnaam.Text = "Bestandsnaam" Then
' MsgBox("AUB een bestand selecteren en informatie over de wijziging toevoegen!")
'Inchecken NOK
'incheck_ok = False
' Else
Try
bestandsnaam = lbl_bestandsnaam.Text
Commentaar_incheck = txt_info.Text
'file naam eruit filteren
Dim file_naam As String = bestandsnaam.Substring(bestandsnaam.LastIndexOf("\") + 1)
'Inchecken OK
incheck_ok = True
Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Close()
Catch ex As Exception
MsgBox("Melding : " & vbCrLf & ex.Message)
'Inchecken NOK
incheck_ok = False
End Try
'End If
End Sub
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
'Inchecken NOK
incheck_ok = False
MsgBox("Let op er worden geen wijzigingen gemaakt!")
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close()
End Sub
' HET AANROEPEN VAN DE VOLGENDE STUKJE CODE ZORGT ERVOOR DAT DE APPLICATIE VASTLOOPT ALS IK HET DIALOOGVENSTER VERLAAT:
Private Sub btn_laad_bestand_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_laad_bestand.Click
Dim MyFileOpen As New System.Windows.Forms.OpenFileDialog
Dim bExOccured As Boolean
Dim retVal As DialogResult
Try
' does not add an extension to a file name if the user omits the extension
MyFileOpen.AddExtension = True
'dialog box does not allow multiple files to be selected
MyFileOpen.Multiselect = False
MyFileOpen.Filter = "All files (*.*)|*.*"
retVal = MyFileOpen.ShowDialog()
If retVal = Windows.Forms.DialogResult.OK Then
If MyFileOpen.CheckFileExists = True And MyFileOpen.CheckPathExists = True Then
lbl_bestandsnaam.Text = MyFileOpen.FileName
End If
End If
Catch ex1 As AccessViolationException
MsgBox(ex1.StackTrace.ToString)
bExOccured = True
Catch ex As Exception
MsgBox(ex.StackTrace.ToString)
bExOccured = True
Finally
If bExOccured = True Then
MsgBox("Program executed with some errors!!!")
End If
End Try
End Sub
End Class |
Heeft iemand een idee? Persoonlijk betwijfel ik het of VB het leuk vind dat ik 2x een dialoogvenster open.