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å ?
Annonceindlæg fra Academic Work Denmark A/S
20. april 2005 - 12:51
#1
Brug funktionen Nz
20. april 2005 - 12:51
#2
hvordan ?
20. april 2005 - 12:51
#3
=nz(felt1;0) + nz(felt2;0)
20. april 2005 - 12:52
#4
felt3 = nz(felt1,0) + nz(felt2,0)
20. april 2005 - 12:52
#5
a= (b/ 100) * f hvor vil du smide Nz
20. april 2005 - 12:52
#6
:o)
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)
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)
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)
20. april 2005 - 13:01
#14
den melder fejl
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)
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
20. april 2005 - 13:03
#17
a= (Nz(b, 0) / 100) * Nz(F, 0))
20. april 2005 - 13:03
#18
Duer ik'
20. april 2005 - 13:03
#19
where is b and F?
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
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?
20. april 2005 - 13:08
#23
where are you placing the code?
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)
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?
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
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
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))))
20. april 2005 - 13:44
#33
Overflow > Prøv at kontrollere dine felttyper, om feltet rent faktisk kan indeholde resultatet af beregningen.
20. april 2005 - 13:55
#34
den melder det også ved en msgbox
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
20. april 2005 - 14:07
#36
det er 2 variabler der skal opdateres i en tabel
20. april 2005 - 14:33
#37
Set qry = dbs.CreateQueryDef("", strSQL) Skal det ikke være strsql1?
20. april 2005 - 14:39
#38
den er ændret men det melder at der er en syntaks fejl
20. april 2005 - 14:41
#39
på hvilken linie?
20. april 2005 - 14:42
#40
fejlen meldes her : DoCmd.RunSQL strsql1
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")
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser