Avatar billede hossein Nybegynder
25. juli 2002 - 15:41 Der er 6 kommentarer og
1 løsning

Hvad er der galt med if sætningen?

Hej!
På formen har jeg lagt en gruppe radiobokse, som har værdierne 1, 2, 3. hvis man vælger 1 så skal den gør dit og hvis man vælger 2 så kal den lave dat... osv. Men jeg kan ikke få den til at msgbox viser sig kun når man har valgt den tilhørende tal(værdi)? hvad er løsningen.

tak

Private Sub Es1_Click()

    Dim Msg ', Style, Title, Response
    Msg = "Da medlemmet har nægtet at deltage oprettes en ny rekord ?"
    'Style = vbOKCancel + vbCritical + vbDefaultButton2
    'Title = "Medlemmet nægter"

    'Msgbox(Msg, Style, Title)
   
    'If (Response = vbYes And Me![Es1].Value = 1) Then
    If Me![Es1].Value = 1 And Msgbox("Er du sikker på at du vil fortsætte?", vbOKCancel, "Error!") = vbOK Then

        Me![senr].Visible = False
        Me![Esenr].Visible = False
        DoCmd.GoToRecord , , acNewRec
        stDocName = "KontaktSenere"
        DoCmd.OpenForm stDocName, , , stLinkCriteria
    ElseIf Me![Es1].Value = 1 And Msgbox("Er du sikker på at du vil fortsætte?", vbOKCancel, "Error!") = vbCancel Then
        Me![senr].Visible = False
        Me![Esenr].Visible = False
        'DoCmd.GoToRecord , , acNewRec
    'End If
    ElseIf Me![Es1].Value = 3 And Msgbox("Er du sikker på at du vil fortsætte?", vbOKCancel, "Error!") = vbOK Then
            'Me![Esenr].Visible = True
            'Me![senr].Visible = True
            'Cpr.SetFocus
            Me![s2].Visible = True
            Me![E2].Visible = True
            'Me![s3].Visible = True
            'Me![E3].Visible = True
            Me![Streg344].Visible = True
            Me![Streg249].Visible = True
    ''ElseIf Me![Es1].Value = 3 And Msgbox("Er du sikker på at du vil fortsætte?", vbOKCancel, "Error!") = vbCancel Then
            Me![s2].Visible = False
            Me![E2].Visible = False
            'Me![s3].Visible = True
            'Me![E3].Visible = True
            Me![Streg344].Visible = False
            Me![Streg249].Visible = False
    ElseIf Me![Es1].Value = 2 And Msgbox(Msg, vbOKCancel, "Error!") = vbOK Then
            DoCmd.GoToRecord , , acNewRec
            'Es1.SetFocus
    Else
    Me![Es1].Value = 2 And Msgbox(Msg, vbOKCancel, "Error!") = vbCancel
               
            'vbCancel = True
          ' Exit Sub
            Me![Es1].SetFocus
         
    End If
End Sub
Avatar billede nih Novice
25. juli 2002 - 17:39 #1
If (Me![Es1].Value = 1) And (Msgbox("Er du sikker på at du vil fortsætte?", vbOKCancel, "Error!") = vbOK) Then

prøv at bruge paranteser

Niels
Avatar billede nih Novice
25. juli 2002 - 17:46 #2
prøv at ændre '!' til '.'
Me![Es1].Value  ->  Me.Es1.Value 

Niels
Avatar billede sjap Praktikant
25. juli 2002 - 17:52 #3
Linie 7
Du undersøger om response er vbYes, men ovenfor har du sat Style til vbOKCancel og så vidt jeg husker er vbOK ikke det samme som vbYes.

Linie 7-8 (to if sætninger lige efter hinanden)
Det er vel ikke nødvendigt at kontrollere Me!Es1.Value to gange lige efter hindanden - når du er kommet ind i den første løkke, så ER værdien 1.
Avatar billede nih Novice
25. juli 2002 - 18:05 #4
ja den er lidt rodet:
prøv en select case

Select Case Me.Es1.Value 
    Case 1 :
        If MsgBox("Er du sikker på at du vil fortsætte?", vbOKCancel, "Error!") = vbOK Then
            'kode ved "JA"
        Else
            'Kode ved "Nej"
        End If

    case 2:
        if ......
        else
        end if 
End Select

Nies
Avatar billede sjap Praktikant
25. juli 2002 - 18:09 #5
hossein du er også nødt til at flytte dine    Msgbox("Er du sikker på at du vil fortsætte?",    væk fra alle if sætningerne - ellers risikerer du at blive spurgt om det samme flere gange.

nih's idé med en select case er ret tiltalende og noget mere overskuelig.
Avatar billede hossein Nybegynder
25. juli 2002 - 20:37 #6
Ja tak, nih. Dit løsning virker, derfor får du pointen. Tak for hjælpen superjap. Her er hele coden rentskrevet:

Private Sub Es1_Click()
    Select Case Me.Es1.Value
        Case 1:
            If MsgBox("Er du sikker på at du vil fortsætte1?", vbOKCancel, "Error!") = vbOK Then
   
            Me![senr].Visible = False
            Me![esenr].Visible = False
            DoCmd.GoToRecord , , acNewRec
            stDocName = "KontaktSenere"
            DoCmd.OpenForm stDocName, , , stLinkCriteria
        Else
            Me![senr].Visible = False
            Me![esenr].Visible = False
        End If
       
        Case 2:
            If MsgBox("Er du sikker på at du vil fortsætte2?", vbOKCancel, "Error!") = vbOK Then
                DoCmd.GoToRecord , , acNewRec
        Else
                Me![Es1].SetFocus
        End If
       
        Case 3:
            If MsgBox("Er du sikker på at du vil fortsætte3?", vbOKCancel, "Error!") = vbOK Then
                Me![s2].Visible = True
                Me![e2].Visible = True
                Me![Streg344].Visible = True
                Me![Streg249].Visible = True
            Else
                Me![s2].Visible = False
                Me![e2].Visible = False
                Me![Streg344].Visible = False
                Me![Streg249].Visible = False
            End If
           
    End Select
End Sub
Avatar billede nih Novice
25. juli 2002 - 20:55 #7
Takker :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester