Avatar billede regihr_slein Nybegynder
03. december 2009 - 10:12 Der er 12 kommentarer og
1 løsning

If sætning i acces

Hej

Jeg vil gerne have dannet en if-sætning som i Excel vil se sådan ud i feltet F2: =IF(E2=0;D2;F1). Det vil sige at felter i en kolonne i min access-database skal have en værdi fra en af de andre kolonner, såfremt en tredje kolonnes værdi i rækken er lig 0. Er den ikke lig 0 skal den skrive ovenstående værdi.

Jeg er virkelig ikke skarp i acces, så håber der er nogen der kan hjælpe.
Avatar billede mugs Novice
03. december 2009 - 10:26 #1
I VBA:

If me.E2 = 0 then
Me.F2 = D2
else:
Me.F2 = F1
end if
Avatar billede regihr_slein Nybegynder
03. december 2009 - 10:32 #2
Jeg er i design view ved tabel - er det under default value der skal koden skal skrives?
Avatar billede mugs Novice
03. december 2009 - 10:35 #3
I SQL:

Udtryk1: IIf([E2]=0;[D2];[F1])
Avatar billede regihr_slein Nybegynder
03. december 2009 - 10:51 #4
Jeg skal anvende det under oprettelse af en tabel hvor jeg sætter værdier ind i alle kolonner, på nær kolonnen "FVMaterial". Værdierne i denne konolle skal gives ved værdien fra en celle i en kolonne ved navn "Komponent nr", såfremt en celle i en anden kolonne benævnt "BOM relation" er 0. Er cellen forskellig fra 0, skal cellen i FVMaterial have værdien fra en ovenstående celle.

Den første celle i BOM relation indsættes altid som 0
Avatar billede regihr_slein Nybegynder
03. december 2009 - 10:54 #5
"FVMaterial" er den 12. kolonne og "Komponent nr" den 4., mens "BOM relation" er den 3. Hvor skal koden skrives?
Avatar billede mugs Novice
03. december 2009 - 10:57 #6
Du kna ikke skrive en kode i en tabel. Der har du kun meget begrænsede muligheder for at manipulere med data.
Hvis du vælger VBA, skal du indsætte koden i feltets BeforeUpdate event.
Bruger du SQL, skla du indsætte IIf sætningen i et udtryk. Så tildeles udtrykket en værdi afhængig af IIf sætningen.
Avatar billede regihr_slein Nybegynder
07. december 2009 - 08:29 #7
Jeg har følgende SQL-sætning:

SELECT BOM.[BOM ID], BOM.Plant, BOM.[BOM relation], BOM.[Komponent nr], BOM.[BOM niveau], BOM.Item, BOM.ICt, BOM.X, BOM.Quantity, BOM.Unit, BOM.ALT, [NR] AS FVMaterial FROM BOM;

hvor FVMaterial skal dannes på baggrund af om BOM[BOM.niveau] er 0. er BOM.niveau = 0 skal BOM.[Komponent nr] skrives, ellers skal ovenstående værdi skrives.

Skal jeg så skrive:

iif(BOM[BOM.niveau]=0;BOM.[Komponent nr];[??]) og hvor skal den indsættes - i [NR]?

Kan man anvende koordinater?
Avatar billede mugs Novice
07. december 2009 - 08:51 #8
Sæt markøren i en ny tom kolonne og skriv dette:

Udtryk1: IIf([niveau]=0;[komponent nr];[niveau])

Kan man anvende koordinater? -> Hvad mener du?
Avatar billede regihr_slein Nybegynder
07. december 2009 - 09:06 #9
Mht til koordinater, tænkte jeg på et af dine forrige eksempler med IIf([E2]=0;[D2];[F1])

Når jeg sætter IIf([niveau]=0;[komponent nr];[niveau]) ind får jeg #Fejl i felterne i tabellen der oprettes


SELECT BOM.[BOM ID], BOM.Plant, BOM.[BOM relation], BOM.[Komponent nr], BOM.[BOM niveau], BOM.Item, BOM.ICt, BOM.X, BOM.Quantity, BOM.Unit, BOM.ALT, IIf([BOM niveau]=0,[Komponent nr],[BOM niveau]) AS FVMaterial
FROM BOM;
Avatar billede regihr_slein Nybegynder
07. december 2009 - 09:12 #10
NB - værdien i FVMaterial skal gerne skrives såfremt BOM niveau er 0 ellers skal ovenstående værdi i FVMaterial skrives
Avatar billede mugs Novice
07. december 2009 - 09:22 #11
Når jeg sætter IIf([niveau]=0;[komponent nr];[niveau]) ind får jeg #Fejl i felterne i tabellen der oprettes

Du skal skrive udtrykket i en forespørgsel.
Avatar billede regihr_slein Nybegynder
07. december 2009 - 09:31 #12
ja det er også det jeg gør - med tabel mener jeg outputtet (det ligner tabelform) og der står #Fejl i alle felterne.

BOM som de enkelte kolonner hentes fra ser således ud:

BOM ID|Plant|BOM relation|Komponent nr|BOM niveau||||
1    | 2  |            |506971      |  0      ||||
1    | 2  |      506971|59484446    |  1      ||||
1    | 2  |      506971|54484646    |  1      ||||
1    | 2  |            |506154      |  0      ||||
1    | 2  |      506154|59414541    |  1      ||||
1    | 2  |      506154|54484446    |  1      ||||

og resultatet af forespørgslen vil jeg gerne have til at se således ud:

BOM ID|Plant|BOM relation|Komponent nr|BOM niveau|FVMaterial|||
1    | 2  |            |506971      |  0      |506971|
1    | 2  |      506971|59484446    |  1      |506971|
1    | 2  |      506971|54484646    |  1      |506971|
1    | 2  |            |506154      |  0      |506154|
1    | 2  |      506154|59414541    |  1      |506154|
1    | 2  |      506154|54484446    |  1      |506154|

Altså FVMaterial hentes fra Komponent nr, såfremt BOM niveau er 0 ellers skal den hente ovenstående værdi - første værdi i BOM niveau er altid 0
Avatar billede mugs Novice
07. december 2009 - 10:04 #13
Kan du sende blot med enkelte data i til:

mugs@mail.dk

som en .zip fil. Så ser jeg på det.
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