Avatar billede oyejo Nybegynder
02. november 2001 - 10:02 Der er 11 kommentarer og
1 løsning

Beregnet felt, med tomt felt som parameter

Har en tabel med feltene lengde og bredde
Har en forespørsel med et beregnet felt
Det beregnede feltet returner en verdi der lengde * bredde inngår i uttrykket
*****************************************************
Problem:Jeg ønsker at det beregnede feltet skal returnre verdien 0 når feltet lengde eller bredde er tomt. (ønsker ikke å sette standardverdien til 0 )
Har prøvd å skrive:
Select Case lengde 1000 * bredde
Case Is = Null, GetKode = 0
Det går bra når jeg skriver Case Is = 0, men da må standardverdien til feltene Lengde og Bredde være 0
Hva kan jeg gjøre for at funksjonen returnerer 0 når et av feltene er tomme???
****************************************************
Spørsmål 2
Hvordan kan jeg sette at standardverdien til et felt skal være likt med det samme feltet posten forran??
oye :o}



02. november 2001 - 10:07 #1
Har du prøvet

Case Is Null

Alternativt kan du sige:

Select Case True
  Case lengde * 1000 * bredde = 0, isNull(Lengde), isnull(Bredde)
  \'---
  \'---
end select
Avatar billede oyejo Nybegynder
02. november 2001 - 10:10 #2
Har prøvet Case Is Null, det gikk ikke
Skal prøve ut ditt andre alternativ
oye

Avatar billede nih Novice
02. november 2001 - 19:59 #3

#1: brug functionen nz
areal: nz([Bredde]*[Lengde];0)

#2:
Det kan du ikke, ikke i tabeldesign. Der er du nødt til at bruge noget kode i din indtastningsformular.

Niels
Avatar billede oyejo Nybegynder
02. november 2001 - 20:59 #4
Niels
#1):
deler av koden i module 1 ser slik ut:

Public Function GetKode(lengde As Double, bredde As Double) As Integer
Select Case Nz(lengde * bredde, 0)
  Case Is = 0
      GetKode = 0
  Case Is < 0.01
        .....
Ps! tomas mener jeg kan benytte IsNull,
vil det være bedre?? Og hvordan??


#2)finnes det en funksjon som viser til samme controll i forrige record??
som jeg kan benytte i en eller annen hendelsesprosedyre?

oye :-)



Avatar billede nih Novice
02. november 2001 - 21:25 #5
#1
Du kan bruge nz direkte i forespørgslen. I en tom kollone (designvisning) skriver du:
      areal: nz([Bredde]*[Lengde];0)
i øverste felt i designgitteret.

Niels
Avatar billede nih Novice
02. november 2001 - 21:44 #6
Public Function GetKode(lengde As Double, bredde As Double) As Integer
    GetKode = Nz(bredde * lengde, 0)
End Function

men denne funktion kan ikke modtage null som parameter.....

Niels
Avatar billede nih Novice
02. november 2001 - 22:18 #7
#2
Jeg har leget lidt ;)

i din indtastningsform\'s vedAktuel hændelse:
Private Sub Form_Current()
    Dim rs As Recordset
    If Me.NewRecord Then
        Set rs = Me.RecordsetClone
        rs.Move (Me.CurrentRecord)
        rs.MovePrevious
        Me.bredde.DefaultValue = Nz(rs![bredde], 0)
    End If
End Sub
Avatar billede nih Novice
02. november 2001 - 22:22 #8
linjen:
Me.bredde.DefaultValue = Nz(rs![bredde], 0)

den første \'bredde\' er NAVNET på textboxen.
den anden \'[bredde]\' er FELT navnet på det felt der er bumndet til textboxen.

Forvirret, så følg med i næste episode af .....

Niels
Avatar billede oyejo Nybegynder
03. november 2001 - 10:32 #9
Niels
Takker for tipset med Nz funksjonen
Det fungerte utmerket
Når det gjelder spørsmål 2 Så er det bare 2 av feltene som skal ha verdiene til forringe post som standardverdi, det er også et felt som skal ha forrige post+1 som standardverdi.

øye ;o}
Ps. venter spent på neste episode
Avatar billede nih Novice
03. november 2001 - 13:05 #10
Private Sub Form_Current()
    Dim rs As Recordset
    If Me.NewRecord Then
        Set rs = Me.RecordsetClone
        rs.Move (Me.CurrentRecord)
        rs.MovePrevious
        Me.bredde.DefaultValue = Nz(rs![bredde], 0)
        me.enAndenTxt.DefaultValue = Nz(rs![etAndetFelt]+1, 0)
        me.entredeTxt.DefaultValue = Nz(rs![etTredjeFelt]+10, 0)
    End If
End Sub

Niels
Avatar billede oyejo Nybegynder
03. november 2001 - 14:35 #11
Tusen takk Niels
jeg er imponert over hvor lett det er å få svar her på eksperten.
poengene har du fortjent, ønsker deg en god helg
øye:-)
Avatar billede nih Novice
03. november 2001 - 15:05 #12
Selvtak

Du kan prøve at slette if sætningen - Det virker måske bedre hvis du har en form med fortløbende poster.

Niels
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