Hoi allemaal , ik ben er weer met al mijn vragen
Op het moment heb ik 2 commandoknoppen
Knop Opslaan
en knop aanpassen
Nu zou ik deze 2 codes willen samen voegen en nog maar 1 commandoknop willen gebruiken .
Dmv een vorig gebruikte knop , keuze tussen " Nieuw" of "Wijzigen" moet er door een druk op een 3de knop "Opslaan" een ekuze gemaakt worden welke code gebruik gaat worden .
Had het volgende al uitgewerkt maar dit werkt weer niet .
Hoop dat het een beetje duidelijk is , Iemand een idee ?
Op het moment heb ik 2 commandoknoppen
Knop Opslaan
Code:
Private Sub OpslaanCmd_Click()
Dim intRetVal As Integer
Dim mblnNewRecord As Boolean
Dim Lresponse As Integer
If DCount("Afdelingsnaam", "Afdelingen", "[Afdelingsnaam] = '" & CStr(Forms!Afdelingen!Afdelingsnaam.Value) & "'") >= 1 Then
intRetVal = MsgBox("Afdeling bestaat al" & vbCrLf & "Wilt u een nieuwe ingave doen ?", vbYesNo, "Afdelingsnaam Opslaan")
Debug.Print "OpslaanCmd_Click : intRetVal = " & intRetVal
If intRetVal = vbYes Then
mblnNewRecord = True
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
DoCmd.GoToRecord , , acNewRec
Else
mblnNewRecord = False
If Me.Dirty Then 'Het toevoegen van een nieuw of gewijzigd record wordt teruggedraaid.
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
End If
Exit Sub
End If
Else
Refresh
DoCmd.GoToRecord , , acNewRec
If Me.Dirty Then 'Het toevoegen van een nieuw of gewijzigd record wordt teruggedraaid.
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
End If
End If
End Sub
en knop aanpassen
Code:
Private Sub Cmd_aanpassen_Click()
Dim intRetVal As Integer
Dim mblnNewRecord As Boolean
Dim Lresponse As Integer
On Error GoTo Err_Cmd_aanpassen_Click
If DCount("Afdelingsnaam", "Afdelingen", "[Afdelingsnaam] = '" & CStr(Forms!Afdelingen!Afdelingsnaam.Value) & "'") >= 1 Then
intRetVal = MsgBox("Afdeling bestaat al" & vbCrLf & "Wilt u een andere afdeling ingeven ?", vbYesNo, "Afdelingsnaam Wijzigen")
Debug.Print "Cmd_aanpassen_Click : intRetVal = " & intRetVal
If intRetVal = vbYes Then
Exit Sub
Else
If Me.Dirty Then 'Het toevoegen van een nieuw of gewijzigd record wordt teruggedraaid.
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
End If
Exit Sub
End If
Else
'update SQL
mijnsql = "UPDATE Afdelingen SET Afdelingen.Afdelingsnaam = '" & Me.Afdelingsnaam & "' " & _
"WHERE (((Afdelingen.AfdelingsId)= " & gekozennummer & "))"
DoCmd.SetWarnings False
DoCmd.RunSQL mijnsql 'Uitvoeren van Update
DoCmd.SetWarnings True
'toon listbox met nieuwe waarde
Me.OverzichtAfdelingen.Requery
If Me.Dirty Then 'Het toevoegen van een nieuw of gewijzigd record wordt teruggedraaid.
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
End If
DoCmd.GoToRecord , , acNewRec
If Me.Dirty Then 'Het toevoegen van een nieuw of gewijzigd record wordt teruggedraaid.
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
End If
End If
Exit_Cmd_aanpassen_Click:
Exit Sub
Err_Cmd_aanpassen_Click:
MsgBox Err.Description
Resume Exit_Cmd_aanpassen_Click
End Sub
Nu zou ik deze 2 codes willen samen voegen en nog maar 1 commandoknop willen gebruiken .
Dmv een vorig gebruikte knop , keuze tussen " Nieuw" of "Wijzigen" moet er door een druk op een 3de knop "Opslaan" een ekuze gemaakt worden welke code gebruik gaat worden .
Had het volgende al uitgewerkt maar dit werkt weer niet .
Code:
Option Compare Database
Option Explicit
Dim IsNewRec As Integer
Private Sub Form_Current()
If Me.NewRecord Then
IsNewRec = 1
Else
IsNewRec = 0
End If
End Sub
Code:
Private Sub Cmd_Opslaan_Click()
Dim intRetVal As Integer
Dim mblnNewRecord As Boolean
Dim Lresponse As Integer
If IsNewRec = 0 Then
If DCount("Afdelingsnaam", "Afdelingen", "[Afdelingsnaam] = '" & CStr(Forms!Afdelingen!Afdelingsnaam.Value) & "'") >= 1 Then
intRetVal = MsgBox("Afdeling bestaat al" & vbCrLf & "Wilt u een andere afdeling ingeven ?", vbYesNo, "Afdelingsnaam Wijzigen")
Debug.Print "Cmd_aanpassen_Click : intRetVal = " & intRetVal
If intRetVal = vbYes Then
Exit Sub
Else
If Me.Dirty Then 'Het toevoegen van een nieuw of gewijzigd record wordt teruggedraaid.
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
End If
Exit Sub
End If
Else
'update SQL
mijnsql = "UPDATE Afdelingen SET Afdelingen.Afdelingsnaam = '" & Me.Afdelingsnaam & "' " & _
"WHERE (((Afdelingen.AfdelingsId)= " & gekozennummer & "))"
DoCmd.SetWarnings False
DoCmd.RunSQL mijnsql 'Uitvoeren van Update
DoCmd.SetWarnings True
'toon listbox met nieuwe waarde
Me.OverzichtAfdelingen.Requery
If Me.Dirty Then 'Het toevoegen van een nieuw of gewijzigd record wordt teruggedraaid.
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
End If
DoCmd.GoToRecord , , acNewRec
If Me.Dirty Then 'Het toevoegen van een nieuw of gewijzigd record wordt teruggedraaid.
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
End If
End If
Else
If DCount("Afdelingsnaam", "Afdelingen", "[Afdelingsnaam] = '" & CStr(Forms!Afdelingen!Afdelingsnaam.Value) & "'") >= 1 Then
intRetVal = MsgBox("Afdeling bestaat al" & vbCrLf & "Wilt u een nieuwe ingave doen ?", vbYesNo, "Afdelingsnaam Opslaan")
Debug.Print "OpslaanCmd_Click : intRetVal = " & intRetVal
If intRetVal = vbYes Then
mblnNewRecord = True
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
DoCmd.GoToRecord , , acNewRec
Else
mblnNewRecord = False
If Me.Dirty Then 'Het toevoegen van een nieuw of gewijzigd record wordt teruggedraaid.
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
End If
Exit Sub
End If
Else
Refresh
DoCmd.GoToRecord , , acNewRec
If Me.Dirty Then 'Het toevoegen van een nieuw of gewijzigd record wordt teruggedraaid.
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
End If
End If
End If
End Sub
Hoop dat het een beetje duidelijk is , Iemand een idee ?