02. november 2001 - 10:02Der 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}
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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?
#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.
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
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.
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
Du kan prøve at slette if sætningen - Det virker måske bedre hvis du har en form med fortløbende poster.
Niels
Synes godt om
Ny brugerNybegynder
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.