Avatar billede rickie Juniormester
01. august 2006 - 13:43 Der er 13 kommentarer og
1 løsning

iif sats

Hej,

Hvordan får jeg denne at virke korrekt?
Den skal tjekke i databasen og hvis BKComment = Kreditering så skal der vises - (minus) og hvis det er Debitering så skal der ikke vises noget!

---

Option Compare Database

Private Sub repBokföringsbilaga_Open(Cancel As Integer)
Function CheckIt(KrediteringDebitering As Integer)
  CheckIt = IIf(BKComment = Kreditering, "-", "")
End If
End Function
Avatar billede fdata Forsker
02. august 2006 - 00:03 #1
Du kan ikke anvende Iif i en Function. Prøv:

Function CheckIt(KrediteringDebitering As Integer) As String
  If BKComment = Kreditering then
    CheckIt = "-"
  Else
    CheckIt=""
  End If
End Function

(Hvis CheckIt er et felt på en form bør du skrive Me.CheckIt)
Avatar billede rickie Juniormester
02. august 2006 - 08:59 #2
Hvad hvis det er i en report jeg vil have det - glemte lige det :-)
Avatar billede rickie Juniormester
02. august 2006 - 09:41 #3
...og hvor sätter jeg koden in hvis det er en form (onload etc.)?
Har en masse felter i "Detail" billedet. I "Form header" har jeg felterne hvor jeg taster data ind.
Avatar billede fdata Forsker
02. august 2006 - 18:03 #4
Form eller Report - det er samme fremgangsmåde.

I din form opretter du et felt, f.eks. Fortegn, og i formens OnCurrent event kan du så skrive:
  Me.Fortegn=CheckIt(<EtEllerAndetFeltsVærdi>)

NB: Jeg er ikke helt med på din struktur. Din Parameter i funktionen hedder KrediteringDebitering; men den anvender du slet ikke. Til gengæld tjekker du værdien af BKComment.
Avatar billede rickie Juniormester
03. august 2006 - 08:39 #5
Hej,

Det vil stadig ikke virke. Jeg har slet ikke noget der heder OnCurrent men alle mulige andre som feks. OnDirty, OnUndo, OnChange, OnGotFocus osv.

Det er en form (Continuous Forms). I header kan man indtaste nye data, i detail vises alle der er indtastet. Det er her jeg vil at det skal vises men jeg kan bare ikke få det til at virke. Må jeg sende det til dig per mail?
Avatar billede rickie Juniormester
03. august 2006 - 08:53 #6
Jeg har fundet OnCurrent i formen som du skrev men kan du ikke lige lave hele koden, hvor jeg skal sätte den ind osv. Ked ad det men jeg er ingen haj til dette! :-)
Avatar billede fdata Forsker
03. august 2006 - 12:44 #7
Det er helt enkelt:

Private Sub Form_Current()
  Me.Fortegn=CheckIt(<EtEllerAndetFeltsVærdi>)
End Sub

Din funktion lægger du i et eller andet modul - eller sammen med den øvrige kode i formen.

Hvis det stadig er uklart, må du lige give mig alle oplysninger. Se min forrige kommentar.
Avatar billede rickie Juniormester
03. august 2006 - 14:41 #8
Det vil stadig ikke.

FORM: frmBokföring
ON CURRENT: [Event procedure]. Har også prövet med Me.Fortegn=CheckIt(BKComment1)

Kode:
Private Sub Form_Current()
  Me.Fortegn = CheckIt(Comment1)
Function CheckIt() As String
  If BKComment = Kreditering Then
    CheckIt = "-"
  Else
    CheckIt = ""
  End If
End Function
End Sub

TEKSTBOKS i formular frmBrevbokning i detaljebilledet: Me.Fortegn

Hvad gör jeg forkert?
Avatar billede fdata Forsker
03. august 2006 - 15:59 #9
Syntaksen er:

Private Sub Form_Current()
  Me.Fortegn = CheckIt(Comment1)
End Sub

Function CheckIt() As String
  If BKComment = Kreditering Then
    CheckIt = "-"
  Else
    CheckIt = ""
  End If
End Function

... men der er stadig ikke sammenhæng!
Hvad er Comment1?
Hvad er BKComment?
Avatar billede fdata Forsker
03. august 2006 - 16:14 #10
Forslag uden funktionen:

Private Sub Form_Current()
  If Me.BKComment1 = "Kreditering" Then
    Me.Fortegn = "-"
  Else
    Me.Fortegn = ""
  End If
End Sub
Avatar billede rickie Juniormester
03. august 2006 - 18:28 #11
jeg kan sgu bare ikke få det at virke. Er det ikke nemmere at jeg sender det til dig så kan du se på det, for jeg får det aldrig rigtigt. Det kan også väre at jeg ikke forklarer det godt nok og så er det måske nemmere hvis du kigger på det.
Jeg giver gerne 100 points for jeg er ved at väre godt trät :-) af "skidtet" :-)
Avatar billede fdata Forsker
03. august 2006 - 20:13 #12
Rolig nu. Send basen til f-data<snabela>jubii.dk, så ser jeg på den.
Avatar billede fdata Forsker
06. september 2006 - 00:44 #13
Jeg har set på basen, og jeg tror at jeg forstår problemet.
Du forsøger at markere hver linie med et fortegn; men fortegnsfeltet er ubundet. Derfor kan du ikke "fastholde" fortegnet. Det skifter, når du flytter markøren. Løsningen er at oprette et nyt felt i dine detail-data, så du gemmer fortegnet for hver linie. Du kan beregne det lige inden "INSERT INTO" sætningen:
  If Me.TxtComment1 = "Kreditering" Then
    Fortegn = "-"
  Else
    Fortegn = ""
  End If
.. og så tilføje det til din feltliste i "INSERT INTO". OK?
Avatar billede rickie Juniormester
05. oktober 2006 - 22:17 #14
Perfekt 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