Avatar billede yuksel Nybegynder
20. april 2005 - 12:49 Der er 40 kommentarer og
2 løsninger

værdien 0

hej til alle.


jeg har 3 felter
felt 1 og 2 skal indtastes og felt 3 = felt1 + felt2
eks. 5+2= 7

men hvis en af felterne er nul så melder den fejl, er der ikke en måde at forhindre dette på ?
Avatar billede mugs Novice
20. april 2005 - 12:51 #1
Brug funktionen Nz
Avatar billede yuksel Nybegynder
20. april 2005 - 12:51 #2
hvordan  ?
20. april 2005 - 12:51 #3
=nz(felt1;0) + nz(felt2;0)
Avatar billede terry Ekspert
20. april 2005 - 12:52 #4
felt3 = nz(felt1,0) + nz(felt2,0)
Avatar billede yuksel Nybegynder
20. april 2005 - 12:52 #5
a= (b/ 100) * f
hvor vil du smide Nz
20. april 2005 - 12:52 #6
:o)
Avatar billede mugs Novice
20. april 2005 - 12:52 #7
F.eks.:

felt3 = (Nz([felt1], 0) + Nz([felt2], 0))
20. april 2005 - 12:53 #8
a=(nz(b,0)/100)*f
20. april 2005 - 12:53 #9
(hvis det er i VBA)
Avatar billede mugs Novice
20. april 2005 - 12:53 #10
Eller i et udtryk i en forespørgsel:

Udtryk1: (Nz([felt1];0)+Nz([felt2];0))
20. april 2005 - 12:54 #11
Eller endda:

a=(nz(b,0)/100)*nz(f,0)
Avatar billede mugs Novice
20. april 2005 - 12:56 #12
Der er da ellers gang i forretningerne idag :0
Egentlig er det jo lidt forkert, fordi spørgsmålet lyder på 0. Vi svarer på Nul. Men meningerne er rigtige nok.
20. april 2005 - 12:58 #13
Mugs->som i den virkelige verden, så skal man ikke regnemed hvad folk SIGER, men i stedet regne med, hvad de MENER ;o)
Avatar billede yuksel Nybegynder
20. april 2005 - 13:01 #14
den melder fejl
Avatar billede mugs Novice
20. april 2005 - 13:02 #15
Åh ja - Men nu skal jeg ikke vælges til Folketinget, så jeg plejer at sige hvad jeg mener ;o)
Avatar billede yuksel Nybegynder
20. april 2005 - 13:02 #16
jeg har valgt denne :

a= (Nz(b, 0) / 100) * Nz(F, 0)

den melder object req....
a er en felt på min form
Avatar billede mugs Novice
20. april 2005 - 13:03 #17
a= (Nz(b, 0) / 100) * Nz(F, 0))
Avatar billede mugs Novice
20. april 2005 - 13:03 #18
Duer ik'
Avatar billede terry Ekspert
20. april 2005 - 13:03 #19
where is b and F?
Avatar billede yuksel Nybegynder
20. april 2005 - 13:05 #20
de er alle felter fra min form
og de indholder tal nogle gange og andre gange er de tomme
Avatar billede mugs Novice
20. april 2005 - 13:06 #21
(Nz(b, 0) / 100) * Nz(f, 0)

er afprøvet og fungerer. Kontroller for stavefejl (feltnavne).
20. april 2005 - 13:06 #22
er det i VBA, du skriver? Eller er det direkte i en tekstoks?
Avatar billede terry Ekspert
20. april 2005 - 13:08 #23
where are you placing the code?
Avatar billede yuksel Nybegynder
20. april 2005 - 13:08 #24
ved lukning af formen
20. april 2005 - 13:10 #25
Helt korrekt burde det så hedde:

Me!A = (Nz(Me!b, 0) / 100) * Nz(Me!f, 0)
Avatar billede yuksel Nybegynder
20. april 2005 - 13:10 #26
det er en fortløbende formular som har 3 felter
men disse 3 felter bliver indtastet også kommer der 3 ny osv.
felt nr 3 på dem alle skal regnes ud
20. april 2005 - 13:12 #27
du bør måske flytte koden til Form_BeforeUpdate
20. april 2005 - 13:16 #28
men det burde ikke ændre på fejlen. Du har vel andre feltnavne end a, b og f.

Kan du ikke indsætte den korrekte kode her?
Avatar billede yuksel Nybegynder
20. april 2005 - 13:26 #29
ok, en nærmere forklaring til tingene.

det er sådan så jeg har en fortløbende formular, med  nogle felter men her skal man lige tænke at hver gang der bliver indtastet og tilføjet bliver der vist flere og der kan således på en enkelt formular vises 10 * 3 felter som .


koden :



Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim dbs As Database
Dim qms As QueryDef
Dim rec As Recordset
Dim strSQL As String
Dim A4
Dim id
Dim beregn As Integer

id = Forms!bil!idnr

Me!fr = (Nz(Me!v, 0) / 100) * Nz(Me!fu, 0)
Me!vo = (Nz(Me!v, 0) - (Nz(Me!fr, 0) / (Nz(Me!de, 0))))



'vo = v - fr / de



Set dbs = CurrentDb

strSQL = "SELECT * FROM " & _
        "Bat " & _
        "WHERE ((nummer)=" & id & ") "

       
    Set qms = dbs.CreateQueryDef("", strSQL)
    Set rec = qms.OpenRecordset()
   
If Not rec.EOF Then rec.MoveFirst

Do While Not rec.EOF
   
    A4 = A4 + rec.Fields![vo]

  rec.MoveNext
Loop
   
Me!Vot = (Nz(Me!v, 0) / (Nz(Me!v, 0)))

'Vot = v - fr / A4
Avatar billede yuksel Nybegynder
20. april 2005 - 13:27 #30
A4 er en summen af en bestemt felt som dukker flere gange og den skal så
bruges til noget beregning for en af disse felter for hver af dem
20. april 2005 - 13:31 #31
den sidste er vel forkert?

Me!Vot = (Nz(Me!v, 0) / (Nz(Me!v, 0)))

Den vil jo altid give 0
Avatar billede yuksel Nybegynder
20. april 2005 - 13:39 #32
ja det er fejl i det sidste
jeg har rettet det men den melder "overflow"
vo = (Nz(Me!V, 0) - (Nz(Me!FR, 0) / (Nz(a4, 0))))
Avatar billede mugs Novice
20. april 2005 - 13:44 #33
Overflow > Prøv at kontrollere dine felttyper, om feltet rent faktisk kan indeholde resultatet af beregningen.
Avatar billede yuksel Nybegynder
20. april 2005 - 13:55 #34
den melder det også ved en msgbox
Avatar billede yuksel Nybegynder
20. april 2005 - 14:07 #35
ok jeg har fundet andet løsning til problemmet men jeg har denne fejl som skal rettes.
hvorfor melder denne fejl ?



strsql1 = " Update * b" & _
        "SET fri= " & Fr & ", Vo = " & v & " " & _
        "WHERE ((orid)=" & vr & ") "
       
        Set qry = dbs.CreateQueryDef("", strSQL)
        qry.Execute
Avatar billede yuksel Nybegynder
20. april 2005 - 14:07 #36
det er 2 variabler der skal opdateres i en tabel
Avatar billede mugs Novice
20. april 2005 - 14:33 #37
Set qry = dbs.CreateQueryDef("", strSQL)

Skal det ikke være strsql1?
Avatar billede yuksel Nybegynder
20. april 2005 - 14:39 #38
den er ændret men det melder at der er en syntaks fejl
Avatar billede mugs Novice
20. april 2005 - 14:41 #39
på hvilken linie?
Avatar billede yuksel Nybegynder
20. april 2005 - 14:42 #40
fejlen meldes her :

DoCmd.RunSQL strsql1
Avatar billede yuksel Nybegynder
20. april 2005 - 14:42 #41
jeg har fjernet denne      qry.Execute og erstatet med  DoCmd.RunSQL strsql1
20. april 2005 - 16:34 #42
En god ide: Skriv denne særning ind aller øverst i modulet (lige under Option Compare Database):

Option Explicit

Gå derefter i menuen Debug->Compile dindatabase
Hvis der er variabler, som ikke er erklæret korrekt (eller hvis der er stavefejl) så vil det vises nu. Option Explicit bør ALTID stå i toppen, da det forhindre mange fejl (f.eks. den med strsql1)

Denne sætning kan automatisk indsættes i nye moduler, hvis man går i Tools->options og sætter kryds i "Require Variable Declarations")
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