Avatar billede woodgaard Nybegynder
23. februar 2004 - 09:50 Der er 13 kommentarer og
4 løsninger

IF sætning Virker ikke

Hvorfor virker denne IF ikke..?

Private Sub Firmanavn_LostFocus()
If fldisempty(Me.Firmanavn) Then
MsgBox "Du Skal Skrive et Firmanavn"
Me.Firmanavn.SetFocus
End If
End Sub
Avatar billede hubs Nybegynder
23. februar 2004 - 10:09 #1
Har du prøvet med IsNull istedet?

If IsNull(Me.Firmanavn) Then
Avatar billede kabbak Professor
23. februar 2004 - 10:09 #2
Private Sub Firmanavn_LostFocus()
If IsEmpty(Me.Firmanavn) Then
MsgBox "Du Skal Skrive et Firmanavn"
Me.Firmanavn.SetFocus
End If
End Sub
Avatar billede terry Ekspert
23. februar 2004 - 10:13 #3
The function fldIsEmpty (which I think originates from me) may not be correct!


Change to


Private Sub Firmanavn_LostFocus()
  If Trim(Len(Me.Firmanavn)) = 0 Then
    MsgBox "Du Skal Skrive et Firmanavn"
    Me.Firmanavn.SetFocus
  End If
End Sub
Avatar billede terry Ekspert
23. februar 2004 - 10:15 #4
can you show the function fldIsEmpty here, maybe I can fix it!
Avatar billede terry Ekspert
23. februar 2004 - 10:16 #5
or replace with

Function fldIsEmpty(fld As Variant) As Boolean

    fldIsEmpty = True

    If Len(Trim(fld)) > 0 Then fldIsEmpty = False
   
End Function
Avatar billede woodgaard Nybegynder
23. februar 2004 - 10:21 #6
sorry venner men den virker så der kommer en msgbox men den sætter ikke fokus i Firmanavn...?
Avatar billede mugs Novice
23. februar 2004 - 11:14 #7
Is IsNull(Me.Firmanavn) Then
MsgBox "Du skal skrive et firmanavn."
DoCmd.GoToControlelement "Firmanavn"
End If
Avatar billede terry Ekspert
23. februar 2004 - 11:15 #8
is this the last field in a detail section? If so then when you leave the field you are more than likely on th enext record!

So you need to use the forms BEFORE UPDATE event to check that the field contains data. If it deosnt then set the Cancel parameter to True
Avatar billede woodgaard Nybegynder
23. februar 2004 - 11:31 #9
mugs  > det virker ikke dit eksempel
terry > Jeg har sat min kode ind på min underformular - BEFORE UPDATE. men det virker ikke..? hvordan får jeg den til at sætte fokus osv. fra min underformular til min hovedformular

Private Sub Firmanavn_LostFocus()
If IsEmpty(Me.Firmanavn) Then
MsgBox "Du Skal Skrive et Firmanavn"
Me.Firmanavn.SetFocus
End If
End Sub
Avatar billede hubs Nybegynder
23. februar 2004 - 11:37 #10
prøv med Me!Parent!Firmanavn.SetFocus
Avatar billede hubs Nybegynder
23. februar 2004 - 11:42 #11
Hov det skal vist være Me.Parent!Firmanavn.SetFocus
Avatar billede terry Ekspert
23. februar 2004 - 12:13 #12
The form AFTER UPDATE event occurs only when you have altered data or inserted a new record, it doesnt occur when you move from the field Firmanavn to another control.

So you will VERY likely need to have code in more than one event. For example when you INSERT a new record you will need to check that your fields are valid BEFORE the record gets written to the dB (Forms BEFORE update) but just because the cursor is in the fields firmanavn and you move from it (lost focus) you can not be sure that you have altered the record. So there may be no need to inform the user that it needs entering.


You can check the forms dirty property to see if the record has changed.


If Me.Dirty Then ......
Avatar billede mugs Novice
23. februar 2004 - 12:19 #13
woodgaard -> Min kode er ikke afprøvet, men burde fungere. Fejlen er, at du ikke fra starten har angivet, at det drejer sig om en underformular. Hvis du står i en formular og vil checke et felt i en undeformular, er du nødt til først (som hubs angiver), at sætte fokus først på underformularen og dernæst på det pågældende felt i underformularen.

Den anden vej fra underformular til hovedformular, kan du nøjes med at sætte fokus på hovedformularen, så vil markøren gå til det første tabulatorindeks i hovedformularen.

Så moralen er: Husk altid at angive, at det drejer sig om en underformular.
Avatar billede terry Ekspert
23. februar 2004 - 13:06 #14
If the user is in a field,  be it on a the main form OR a sub form, then as long as the focus doesnt move FROM the sub form TO the main form then there should be NO REASON to set focus back to the sub form!

If we are in a detail record and the last field in the detail (tabe order not visual) is Firmanavn then losing focus will move to the next record unless we have set the forms cycle property to current record
Avatar billede woodgaard Nybegynder
23. februar 2004 - 13:42 #15
Jeg har fundet den løsning som det til at virke jeg satte denne hændelse på et tekst felt i underformularen:

If fldisempty(Me.Parent.Firmanavn) Then
MsgBox ":: Du skal først indtaste et Firmanavn ::"
Me.Parent!Firmanavn.SetFocus
End If

Beklager at jeg har sagt forkert fra start af :-)
Læg Et svar hubs så for i alle terry, mugs, hubs point for jeres tid og hjælp ;)
Avatar billede hubs Nybegynder
23. februar 2004 - 13:50 #16
Det er helt okay gi' bare de andre point'ne de har lagt noget mere arbejde i det end mine små kommentarer. :c)
Avatar billede mugs Novice
23. februar 2004 - 15:41 #17
.
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