Avatar billede cgleerup Nybegynder
26. februar 2002 - 11:36 Der er 14 kommentarer og
1 løsning

Compile error

Jeg har følgende handling på afterupdate - men den meddeler mig at jeg har følgende fejl:
Compile error: duplicate declaration in current scope.
Den markere den linje jeg har stjerner omkring som værende hovedårsag til fejlen!

Nogen der kan hjælpe? Gerne hurtigt

Private Sub Ramme237_AfterUpdate()
 
Me!Billede = DLookup("[dump]", "type", "[Autonummer]=" & Me![Type_Opslag]) & "dk\" & Me!Varenummeret & DLookup("[dk]", "end", "[Autonummer]=" & Me![Type_Opslag]) & ".tif"
Me!Billedeno = DLookup("[dump]", "type", "[Autonummer]=" & Me![Type_Opslag]) & "no\" & Me!Varenummeret & DLookup("[no]", "end", "[Autonummer]=" & Me![Type_Opslag]) & ".tif"
Me!Billedesv = DLookup("[dump]", "type", "[Autonummer]=" & Me![Type_Opslag]) & "sv\" & Me!Varenummeret & DLookup("[sv]", "end", "[Autonummer]=" & Me![Type_Opslag]) & ".tif"
Me!billedefi = DLookup("[dump]", "type", "[Autonummer]=" & Me![Type_Opslag]) & "fi\" & Me!Varenummeret & DLookup("[fi]", "end", "[Autonummer]=" & Me![Type_Opslag]) & ".tif"


Me.[type_beregn] = DLookup("[ean_type]", "type", "[Autonummer]=" & Me.[Type_Opslag])

Me.[eandk_beregn] = "570610" & Me.[type_beregn] & Me.Varenummeret
Me.[eanse_beregn] = "570611" & Me.[type_beregn] & Me.Varenummeret
Me.[eanno_beregn] = "570612" & Me.[type_beregn] & Me.Varenummeret
Me.[eanfi_beregn] = "570613" & Me.[type_beregn] & Me.Varenummeret

Me.[eandket] = (Val(Mid([eandk_beregn], 1, 1)) + Val(Mid([eandk_beregn], 3, 1)) + Val(Mid([eandk_beregn], 5, 1)) + Val(Mid([eandk_beregn], 7, 1)) + Val(Mid([eandk_beregn], 9, 1)) + Val(Mid([eandk_beregn], 11, 1))) + ((Val(Mid([eandk_beregn], 2, 1)) + Val(Mid([eandk_beregn], 4, 1)) + Val(Mid([eandk_beregn], 6, 1)) + Val(Mid([eandk_beregn], 8, 1)) + Val(Mid([eandk_beregn], 10, 1)) + Val(Mid([eandk_beregn], 12, 1))) * 3)
Me.[eanseet] = (Val(Mid([eanse_beregn], 1, 1)) + Val(Mid([eanse_beregn], 3, 1)) + Val(Mid([eanse_beregn], 5, 1)) + Val(Mid([eanse_beregn], 7, 1)) + Val(Mid([eanse_beregn], 9, 1)) + Val(Mid([eanse_beregn], 11, 1))) + ((Val(Mid([eanse_beregn], 2, 1)) + Val(Mid([eanse_beregn], 4, 1)) + Val(Mid([eanse_beregn], 6, 1)) + Val(Mid([eanse_beregn], 8, 1)) + Val(Mid([eanse_beregn], 10, 1)) + Val(Mid([eanse_beregn], 12, 1))) * 3)
Me.[eannoet] = (Val(Mid([eanno_beregn], 1, 1)) + Val(Mid([eanno_beregn], 3, 1)) + Val(Mid([eanno_beregn], 5, 1)) + Val(Mid([eanno_beregn], 7, 1)) + Val(Mid([eanno_beregn], 9, 1)) + Val(Mid([eanno_beregn], 11, 1))) + ((Val(Mid([eanno_beregn], 2, 1)) + Val(Mid([eanno_beregn], 4, 1)) + Val(Mid([eanno_beregn], 6, 1)) + Val(Mid([eanno_beregn], 8, 1)) + Val(Mid([eanno_beregn], 10, 1)) + Val(Mid([eanno_beregn], 12, 1))) * 3)
Me.[eanfiet] = (Val(Mid([eanfi_beregn], 1, 1)) + Val(Mid([eanfi_beregn], 3, 1)) + Val(Mid([eanfi_beregn], 5, 1)) + Val(Mid([eanfi_beregn], 7, 1)) + Val(Mid([eanfi_beregn], 9, 1)) + Val(Mid([eanfi_beregn], 11, 1))) + ((Val(Mid([eanfi_beregn], 2, 1)) + Val(Mid([eanfi_beregn], 4, 1)) + Val(Mid([eanfi_beregn], 6, 1)) + Val(Mid([eanfi_beregn], 8, 1)) + Val(Mid([eanfi_beregn], 10, 1)) + Val(Mid([eanfi_beregn], 12, 1))) * 3)

*********************
Dim eandket As Single
*********************
Dim eanseet As Single
Dim eannoet As Single
Dim eanfiet As Single

Dim AfrundetResultat As Integer
Me.[eandkto] = IIf(Me.[eandket] Mod 10 = 0, Me.[eandket], Int(Me.[eandket] / 10 + 1) * 10)
Me.[eandk] = (Me.[eandk_beregn] & (Me.[eandkto] - Me.[eandket]))

Dim AfrundetResultatse As Integer
Me.[eanseto] = IIf(Me.[eanseet] Mod 10 = 0, Me.[eanseet], Int(Me.[eanseet] / 10 + 1) * 10)
Me.[eanse] = (Me.[eanse_beregn] & (Me.[eanseto] - Me.[eanseet]))

Dim AfrundetResultatno As Integer
Me.[eannoto] = IIf(Me.[eannoet] Mod 10 = 0, Me.[eannoet], Int(Me.[eannoet] / 10 + 1) * 10)
Me.[eanno] = (Me.[eanno_beregn] & (Me.[eannoto] - Me.[eannoet]))

Dim AfrundetResultatfi As Integer
Me.[eanfito] = IIf(Me.[eanfiet] Mod 10 = 0, Me.[eanfiet], Int(Me.[eanfiet] / 10 + 1) * 10)
Me.[eanfi] = (Me.[eanfi_beregn] & (Me.[eanfito] - Me.[eanfiet]))

End Sub
Avatar billede terry Ekspert
26. februar 2002 - 11:40 #1
well it looks to me as though you are trying to declare the same variable twice. Search through your code to see if this is the case
Avatar billede terry Ekspert
26. februar 2002 - 11:42 #2
If I were you I would move your declarations to the satrt of thhe procedure and also add

Option Explicit to the start of each form. This ensure that you declare variables. I hav ea feeling that you are using eandket  before it is declared!
Avatar billede cgleerup Nybegynder
26. februar 2002 - 11:42 #3
hej igen Terry.

Der underlige ved problemet er at jeg benytter den samme kode i en anden formular - som bruger samme tabel. det skal dog siges at denne formular er en gammel version og ikke bruges mere. Så den omtalte formular, altså den hvori fejlen opstår er blot en nyere med lidt pænere grafik og sådan - men med samme felter, feltbetegnelser osv.

Mystisk!
Avatar billede cgleerup Nybegynder
26. februar 2002 - 11:45 #4
Jeg er desværre forholdsvis ny på feltet, men kan jeg uden videre flytte disse declarations, altså linjen "Dim eandket As Single" til toppen - og hvad er det lige præcis du mener med option explicit to the start of the form. Ikke at jeg har problemer med sproget, men jeg forstår det ikke helt på dansk!
Avatar billede terry Ekspert
26. februar 2002 - 11:45 #5
Me.[eandket] !!! You have a field on the form withthe same name!
Avatar billede terry Ekspert
26. februar 2002 - 11:46 #6
option explicit ensures that variables get declared otherwise Access reports an error.
Avatar billede cgleerup Nybegynder
26. februar 2002 - 11:47 #7
Det vil sige at jeg bør ændre "Dim EANdket As Single" til eksempelvis "Dim EANdkxx As Single og så fremdeles?
Avatar billede cgleerup Nybegynder
26. februar 2002 - 11:57 #8
Hvis du vil meldte tilbage på mit sidste spørgsmål ville jeg blive glad, skal jeg ænre DIM EANdket as single til noget andet?
Avatar billede terry Ekspert
26. februar 2002 - 12:17 #9
Yes give it another name and then alter your code to use the new name!
Avatar billede terry Ekspert
26. februar 2002 - 12:24 #10
cgleerup>I am a bit confused now!
I can see inyour code that you use Me.[eandket] but I can NOT see if this refers to a field on the form or if it is the variable eandket you are refering to!

If you are using a variable then
DO NOT use Me. only use variable name. If you are using a field on the form then use ME

Hope you nderstand what I mean!
Avatar billede cgleerup Nybegynder
27. februar 2002 - 21:05 #11
Det er som om det ikke rigtig spiller, kan du gennemskue skidtet?
Avatar billede terry Ekspert
27. februar 2002 - 21:15 #12
Not easy when I dont know what the program is doing!

Make sure that when you refer to a field on the form that you use this syntax > Me.TheFormField

and when you use a variable > TheVariable

Always declare th evariables at the start of the procedure (function/Sub)
and use Option Explicit at th estart of each form/module.

Then it is just a case of stepping through your code one line at a time to see if it is doing what you expect.
Avatar billede cgleerup Nybegynder
28. februar 2002 - 09:08 #13
Jeg mener faktisk at du hjalp mig med nogle beregningsmetoder til denne procedure på et tidspunkt - men du har helt ret!

Jeg har kigget nærmere på omkodeningen, og tror at nøden er knækket - tjekker lige op, og giver så point!
Avatar billede cgleerup Nybegynder
28. februar 2002 - 09:34 #14
Mange tak for hjælpen, nu har jeg fået problemet løst - men din hjælp var ganske bevendt!
Avatar billede terry Ekspert
28. februar 2002 - 10:41 #15
Thanks :o) Yes I may have helped you at some stage, but I have e terrible memory and I tend to forget :o(
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