deel van code wordt niet uitgevoerd

Status
Niet open voor verdere reacties.

Tamara27

Gebruiker
Lid geworden
1 mrt 2010
Berichten
224
Ik vrees dat er een foutje geslopen is in volgende code, het rode gedeelte, gaat namelijk niet. Hij komt altijd zeggen dat de gegevens opgeslagen zijn, zelfs al is dit niet het geval. Iemand die ziet waar het mis gaat? bedankt!

Code:
Private Sub cmdVerder_Click()
Dim i As Integer
Dim sTabel As String, sPatient As String, sBehandeling As String, strSQL As String
Dim dtDatum As Date, iDatum As Double
Dim bCheck As Boolean
Dim lResponse As Integer
sTabel = "GegevensBehandeling"

If cmbUniekeCode = "" Then
MsgBox "Vul de unieke code in aub!", vbExclamation, "Oeps!"
Exit Sub

ElseIf Nz(cmbBehandeling, "") = "" Then
MsgBox "Vul de behandeling in aub!", vbExclamation, "Oeps!"
Exit Sub

ElseIf Nz(cmbBehandeling, "") <> "" And Nz(cmbUniekeCode, "") <> "" Then

lResponse = MsgBox("Verder gaan?", vbYesNo, "Verder gaan")

If lResponse = No Then
Exit Sub

Else
    If cmbBehandeling <> "" Then
            On Error Resume Next
            sPatient = Me.cmbUniekeCode
            sBehandeling = cmbBehandeling
            dtDatum = txtStart1
            iDatum = CDbl(dtDatum)
            Dim tmp
            strSQL = "SELECT DISTINCT [Unieke Code], [Type behandeling], [1ste startdatum] FROM " & sTabel & vbCrLf _
                & "WHERE (" _
                & "[Unieke Code] = '" & sPatient & "'" & vbCrLf _
                & "AND [Type behandeling] = '" & sBehandeling & "'" & vbCrLf _
                & "AND CDbl([1ste startdatum]) = " & iDatum _
                & ")"
''                tmp = InputBox("", "", strSQL)
            With CurrentDb.OpenRecordset(strSQL)
                If .RecordCount > 0 Then
                    bCheck = True
                Else
                    bCheck = False
                End If
                .Close
            End With
                                        
            If bCheck = False Then
                With CurrentDb.OpenRecordset(sTabel)
                    .AddNew
                    ![Unieke Code] = Me.cmbUniekeCode
                    ![Type behandeling] = cmbBehandeling
                    ![Dosis] = txtDosis
                    ![Frequentie] = Me.cmbFrequentie
                    ![1ste startdatum] = txtStart1
                    ![1ste stopdatum] = txtStop1
                    ![2de startdatum] = txtStart2
                    ![2de stopdatum] = txtStop2
                    ![3de startdatum] = txtStart3
                    ![3de stopdatum] = txtStop3
                    .Update
                    .Close
                End With
                
            For Each ctl In Controls
                      With ctl
                      Select Case .ControlType
                          Case acCheckBox
                                If .Value = -1 Then
                                    If .Name = "keuzeAndere" Then
                                        sNevenwerking = StrConv(Me.txtAndere.Value, 3)
                                    Else
                                        sNevenwerking = Mid(.Name, 6, Len(.Name) - 5)
                                    End If
                                    sTabel = .Tag
                                    On Error Resume Next
                                    With CurrentDb.OpenRecordset("GegevensBehandelingNevenwerking")
                                      .AddNew
                                      ![Unieke Code] = cmbUniekeCode
                                      ![Behandeling] = cmbBehandeling
                                      ![Nevenwerking Behandeling] = sNevenwerking
                                      .Update
                                      .Close
                                    End With
                                End If

                      End Select
                  End With
              Next ctl
            End If
      End If
      End If
      
        
        lResponse = MsgBox("Gegevens Opgeslagen." & vbNewLine & "Wilt u nog meer behandelingen invoeren van deze patiënt(e)?", vbYesNo, "Opgeslagen")
        If lResponse = vbYes Then
            sUniekeCode = Me.cmbUniekeCode
            VeldenLeeg
            Me.cmbUniekeCode = Me.OpenArgs
            Exit Sub
        Else
            DoCmd.Close acForm, "F_InvoerenBehandeling"
            DoCmd.OpenForm "F_Start", acNormal
        End If
        
   [COLOR="red"] ElseIf bCheck = True Then
        MsgBox "Behandeling bestaat al", vbOKOnly
    End If[/COLOR]
        
End Sub
 
Als je uitlijning correct is wordt die elseif alleen aangeroepen als cmbBehandeling leeg is. Echter wordt dan bcheck nooit gedaan dus zal altijd false zijn.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan