18. januar 2005 - 19:59Der 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.?
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
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.
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.
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.
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
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.