Avatar billede xzaboo Praktikant
18. januar 2005 - 19:59 Der er 10 kommentarer og
1 løsning

Ved Ikke På Liste problem

Hej alle sammen..
Jeg har en komboboks i en formular, hvor jeg har en opslagslist, denne komboboks bliver ikke ændret manuelt, men ud fra et beregnende felt som kopiere et resulatet over. Denne komboboks er relateret til et felt i en anden tabel, hvor denne skal se om resultatet af værdien matcher, og gør denne det skal den smide matchens tilhørende oplysninger ind i felter i formularen. Alt dette virker fint nok, men mit problem opstår nu i, at hvis der ikke er nogen match, så skal den bare smide et 0 ind, fordi ellers så opstår der det problem, at hvis jeg vil gemme en ny post i formularen som har en "ikke-match" så får jeg følgende fejlmeddelelse:

  Microsoft Jet-databasemotoren kan ikke finde en post i tabellen "Priser",
  hvor nøglen svarer til feltet/felterne "PrisGruppeC"

Hvordan kan jeg få den til at smide et 0 ind?
Har selv overvejet en event på VedIkkePåList, men ved ikke hvordan at lave den.?

Mvh. Steffen K.
Avatar billede mugs Novice
18. januar 2005 - 20:38 #1
Private Sub felt1_NotInList(NewData As String, Response As Integer)
Dim prompt As String
DoCmd.SetWarnings False
Response = acDataErrContinue
prompt = "Denne type findes ikke i listen, ønsker du at oprette den?"
If MsgBox(prompt, vbYesNo, "Typen findes ikke!") = vbYes Then
DoCmd.RunSQL "INSERT into Register (FELTNAVN) VALUES ('" & NewData & "')"
Response = acDataErrAdded
End If
DoCmd.SetWarnings True
End Sub

Ændre FELTNAVN til det aktuelle felt i tabellen.
Avatar billede mugs Novice
18. januar 2005 - 20:39 #2
INSERT into Register (FELTNAVN) VALUES ('" & NewData & "')"

Og Register skal ændres til navnet på den aktuelle tabel.
Avatar billede xzaboo Praktikant
18. januar 2005 - 20:49 #3
Hejsa, tror vist jeg har formuleret mig forkert. Den må ikke oprette nye oplysninger i tblPriser, det eneste der skal ske, er at den bare indsætter 0 i feltet hvis der ikke findes en match.
Altså 0 er så selvfølgelig oprettet i tblPriser.
18. januar 2005 - 21:46 #4
Kan du ikke bare indsætte en post med værdien 0 én gang for alle?
18. januar 2005 - 21:52 #5
sorry...det skrev du, at der allerede var!

Så forstår jeg ikke helt problemet...Måske er Mugs mere med?
Avatar billede xzaboo Praktikant
18. januar 2005 - 21:54 #6
Nej, det går ikke. Feltet vil jo blive ændret når man udfylder de forskellige ting som som dette felt lige netop er beregnet ud fra. Det er derfor jeg gerne vil have den til at indsætte 0 hvis ikke der findes en post i tblPriser som har PrisID der passer med en beregning.
Avatar billede mugs Novice
18. januar 2005 - 21:55 #7
Jeg er ikke helt med. Problemet er jo, at vi får Access indbyggede advarsler så længe egenskaben BegrænsTilListe er sat til Ja.
Avatar billede mugs Novice
18. januar 2005 - 21:57 #8
Så vidt jeg kan læse af dit spørgsmål får din kombo jo data fra et beregnende felt. Hvorfor? Hvis dette er korrekt er det ikke nødvendigt med en kombo, men blot et almindeligt tekstfelt.
Avatar billede xzaboo Praktikant
18. januar 2005 - 22:09 #9
Ja, det gør jeg uanset hvad.
Jeg prøver lige at forklare mig igen..
Jeg har en komboboks [PrisGruppe], hvor værdierne der er ned af listen kommer fra [PrisID] fra tblPriser. Denne liste bruges dog ikke til at vælge noget fra manuelt, da den værdi der kommer til at stå i komboboksen [PrisGruppe] er beregnet ud fra 3 felter [SagsKndID], [LTp] og [Zone]. Beregninger er bare de 3 felter sat sammen (konkateneret). Når de 3 felter er udfyldt kan der fås et næsten uendeligt antal resultater, og det er derfor at jeg har [PrisID] fra tblPriser, som fortæller hvilke værdier der kan bruges. Når man så derfor har udfyldt [SagsKndID], [LTp] og [Zone] i formularen, så skal komboboksen [PrisGruppe] tjekke med [PrisID] om værdien findes. Hvis den findes, så er der endnu et felt fra tblPriser som hedder [Fakt], som så skal blive udfyldt. Hvis ikke værdien findes i [PrisID], så skal der i komboboks [PrisGruppe] blot indsættes værdien 0, og [Fakt] vil så bare stå tomt, men dette er helt okay.

Men den eneste grund til at den er en komboboks, er fordi at jeg ville prøve at se om ikke jeg kunne lave noget under hændelsen 'VedIkkePåListe'. Fordi jeg jo så ville kunne indsætte [PrisID] som listen i komboboksen, og derfor ikke kunne få andre værdier end dem der findes i [PrisID]

Håber i forstår mig, den er lidt svær at forklare sig ud af :S
Avatar billede xzaboo Praktikant
20. januar 2005 - 19:04 #10
Var der ingen der virkeligt ingen der kunne forstå det jeg skrev før ? :S
Håber på at få lidt hjælp..

Mvh. Steffen..
Avatar billede xzaboo Praktikant
25. januar 2005 - 19:01 #11
Jeg har omformuleret mit spørgsmål i en anden indlæg, og har nu fået et svar på det hele som fungere.
Mange tak for forsøgene på hjælp..

Mvh. Steffen

http://www.eksperten.dk/spm/584279
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