Avatar billede rosco Novice
06. juli 2005 - 20:50 Der er 14 kommentarer og
1 løsning

Efter ændring virker Luk knap ikke!

Brugeren får en meddelesesbox hvis der ikke er oprettet en titel i underformularen.

Private Sub Luk_knap_Click()
On Error GoTo Err_Luk_knap_Click

    Dim Video As Form
  'Hvis der ikke er oprettet en titel, kan der vælges at slette den nye post
  'eller gemme og lukke uden titel
  If IsNull(Me.Titel2) Then
  If MsgBox("Du har ikke oprettet en titel" + Chr(13) + "Klik Annuller for lukke uden at gemme" + Chr(13) + "Klik OK for at gemme uden titel", _
      vbQuestion + vbOKCancel + vbDefaultButton2, _
      "Titel mangler!") = vbCancel Then
    Me.Undo
    Me.Requery
    DoCmd.Close acForm, Me.Name
    DoCmd.OpenForm "Forside", acNormal, , , , acWindowNormal
 
    Else
    DoCmd.Close acForm, Me.Name
    DoCmd.OpenForm "Forside", acNormal, , , , acWindowNormal
   
    End If
    End If
 
Exit_Luk_knap_Click:
    DoCmd.SetWarnings True
    Exit Sub
   
Err_Luk_knap_Click:
    MsgBox Err.Description
    Resume Exit_Luk_knap_Click
       

End Sub

Men nu kan jeg ikke lukke formularen når der er en titel.
Avatar billede mugs Novice
06. juli 2005 - 21:02 #1
Jeg tror det ksn have noget at gøre med dine relationer. Hvis du oprettter en titel i parentform, kræves det også at du har samme titel i underformularen. Prøv at oprette titlen i childform først og derefter i parentform.
Avatar billede rosco Novice
06. juli 2005 - 21:14 #2
Hvis brugeren ikke har oprettet en titel, fungerer koden som forventet, Undo hvis der klikkes Anuller, ved OK lukkes formularen og posten gemmes uden titel.
Men hvis der som normalt er oprettet en titel, lukkes formularen ikke.
Da jeg kun brugte,
DoCmd.Close acForm, Me.Name
DoCmd.OpenForm "Forside", acNormal, , , , acWindowNormal
virkede det fint med at lukke.
Avatar billede rosco Novice
06. juli 2005 - 21:17 #3
feltet Titel2 ligger i hovedformularen, kilden er, =Optagelser1.Form!Titel
Avatar billede mugs Novice
06. juli 2005 - 21:19 #4
Private Sub Luk_knap_Click()
On Error GoTo Err_Luk_knap_Click

    Dim Video As Form
  'Hvis der ikke er oprettet en titel, kan der vælges at slette den nye post
  'eller gemme og lukke uden titel
  If IsNull(Me.Titel2) Then
  If MsgBox("Du har ikke oprettet en titel" + Chr(13) + "Klik Annuller for lukke uden at gemme" + Chr(13) + "Klik OK for at gemme uden titel", _
      vbQuestion + vbOKCancel + vbDefaultButton2, _
      "Titel mangler!") = vbCancel Then
    Me.Undo
    Me.Requery
    DoCmd.Close acForm, Me.Name
    DoCmd.OpenForm "Forside", acNormal, , , , acWindowNormal
 
    Else
    DoCmd.Close acForm, Me.Name
    DoCmd.OpenForm "Forside", acNormal, , , , acWindowNormal
   
    End If
    End If
 
    DoCmd.SetWarnings True
     
Err_Luk_knap_Click:
    Resume Next       

End Sub

Hvis du kan lukke nu, så i stedet for blot Resume Next at måle på err.number og foretag en handling afhængig af err.number
Avatar billede rosco Novice
06. juli 2005 - 21:25 #5
der sker intet når jeg trykker på luk. (kun hvis titel mangler), det var rart hvis man også kunne lukke på normal vis.
Avatar billede mugs Novice
06. juli 2005 - 21:28 #6
hmmm - Forbandede underformularer. Har du prøvet at requery underformularen inden du lukker. Jeg antager at du lukker med en kommandoknap med Docmd.close:

Me!underformularnavn.requery
docmd.close
Avatar billede rosco Novice
06. juli 2005 - 21:29 #7
Det virker som om der ikke er nogen reaktin på funtionen Else.
Avatar billede eaglehill Nybegynder
06. juli 2005 - 21:30 #8
Så vidt jeg kan se mangler du en "else" som håndterer den situation at der _er_ en titel:

If IsNull(Me.Titel2) Then
... din kode ...
Else
    DoCmd.Close acForm, Me.Name
End If
Avatar billede rosco Novice
06. juli 2005 - 22:09 #9
Går i seng nu, kigger forbi i morgen, gnat :o/
Avatar billede rosco Novice
07. juli 2005 - 17:21 #10
Jeg fandt en løsning.
Jeg byttede om på rækkefølgen, så nu virker det og ser det sådan ud.

Private Sub Luk_knap_Click()
On Error GoTo Err_Luk_knap_Click

  Dim Titel2 As String
   
  'Hvis der ikke er oprettet en titel, kan der vælges at slette den nye post
  'eller gemme og lukke uden titel
 
  If IsNull(Me.Titel2) = 0 Then
  DoCmd.Close acForm, Me.Name
  DoCmd.OpenForm "Forside", acNormal, , , , acWindowNormal
 
  Else
  If MsgBox("Du har ikke oprettet en titel" + Chr(13) + "Klik Annuller for lukke uden at gemme" + Chr(13) + "Klik OK for at gemme uden titel", _
      vbQuestion + vbAbortRetryIgnore + vbDefaultButton2, _
      "Titel mangler!") = vbAbort Then
    Me.Undo
    DoCmd.Close acForm, Me.Name
    DoCmd.OpenForm "Forside", acNormal, , , , acWindowNormal
     
     
Err_Luk_knap_Click:
    Resume Next
   
End If
End If
End Sub
Avatar billede rosco Novice
07. juli 2005 - 17:23 #11
Mugs: læg et svar, du fortjener point, som tak for den til du har brugt på det.
Avatar billede mugs Novice
07. juli 2005 - 17:26 #12
Så tak for point da.
Avatar billede rosco Novice
07. juli 2005 - 17:27 #13
en kunne måske hjælpe med et tillægspørgsmål,
Hvordan kan jeg vælge funtion på knappen  vbIgnore?
Avatar billede mugs Novice
07. juli 2005 - 17:31 #14
vbIgnore returnerer constanten 5, d.v.s.:

If msgbox(bla bla) = 5 then
og din kode hvis betingelsen er opfyldt
end if
Avatar billede rosco Novice
07. juli 2005 - 17:35 #15
Tak.
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
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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