Avatar billede sigyn Seniormester
26. august 2010 - 13:55 Der er 12 kommentarer og
2 løsninger

Fejlmeddelelse Ved ikke på liste

Det er første gang jeg har rodet mig ud i denne, og min kode ser pt således ud.

Private Sub SkemaNr_NotInList(NewData As String, Response As Integer)

    DoCmd.SetWarnings False
   
    MsgBox "Eksisterer ikke, tryk på knap"
    Me.cmdKnap.Enabled = True
    Me.Undo
   
    DoCmd.SetWarnings True
   
End Sub

Men jeg får stadig Access's meddelelse, om at mit element ikke er på listen, den kommer efter min komboboks, det troede jeg, at jeg havde slået fra med SetWarnings.
Det er en ting. Dernæst vil jeg helst, at den ikke sletter hele posten, hvis det er en ny post, men blot "nulstiller" comboboksen, så feltet er blankt. Hvis det er en "gammel" post jeg er i, ser det ud som om den blot "genvælger" den oprindelige værdi.
Avatar billede terry Ekspert
26. august 2010 - 14:26 #1
you should be able to find a number of examples for using NotInList, heres one of them

http://www.eksperten.dk/spm/252032
Avatar billede mugs Novice
26. august 2010 - 14:56 #2
Det hjælper ikke med Warnings, idet der jo ikke er tale om en egentlig fejl, mne en meddelelse om, at elementet ikke findes på listen.

Me dækker den aktuelle formular. Hvis det kun er et felt der skal "undo", skal du bruge:

Me.FELTNAVN.Undo
Avatar billede sigyn Seniormester
27. august 2010 - 07:06 #3
Søgning er en svær ting, især at få skrevet de helt rigtige søgeord ;-) Og Terry, jeg tror umiddelbart, at dit funde eksempel, er bedre, end dem jeg selv har fundet.

Jeg har ikke lige haft lejlighed til at afprøve endnu, men i vistnok alle de eksempler jeg har set, er der en "Promt" med, jeg går ud fra, at det er den der styrer ja/nej delen. Skal den med, Promten altså ? Min oprindelige tanke var bare, at få skrevet en lidt mere sigende meddelelse til brugeren, end Access'es egen (tak mugs) Og kan jeg så på anden vis slippe af med Access's, når det ikke er en Warning ?
Avatar billede terry Ekspert
29. august 2010 - 21:22 #4
Avatar billede terry Ekspert
29. august 2010 - 21:28 #5
In the example I give I dont remove the entered data (Me.ComboName.Undo) like in the Microsoft example

Response = acDataErrContinue
>>>>ctl.Undo

The reason I dont do this is because the user may only have made a spelling mistake so I leave it up to the user to decide
Avatar billede sigyn Seniormester
30. august 2010 - 12:12 #6
Så fik jeg også knækket den nød :-) ved hjælp af 2 x Response = acDataErrContinue, og en promt, så ved samme lejlighed fik jeg lige åbnet for nogle helt nye perspektiver. Tak for det.
Jeg vil gerne have lov til at give mugs 1/3 af pointene, da han også var med til at få min hjerne på ret kurs, så mugs, kan du ikke også lægge et svar :-)
Jeg havde haft prøvet noget med acDataErr... , men det virkede ikke rigtigt. Denne kode virker som jeg vil ah' det til

Private Sub SkemaNr_NotInList(NewData As String, Response As Integer)


Dim promt As String

    DoCmd.SetWarnings False
   
    promt = "Skemanummeret eksisterer ikke, vil du oprette et nyt ?"
   
    If MsgBox(promt, vbYesNo, "Not found!") = vbYes Then
        DoCmd.OpenForm "EnAndenFormular"
        Response = acDataErrContinue
    Else
        Response = acDataErrContinue
        Me.SkemaNr.Undo
    End If
   
   
    DoCmd.SetWarnings True
   
End Sub
Avatar billede sigyn Seniormester
30. august 2010 - 13:01 #7
Lige et tillægsspørgsmål til 10 ekstra points
Min promt ser sådan ud
promt = "Skemanummeret eksisterer ikke, vil du oprette et nyt ?"

Hvis jeg nu vil have den til at se sådan ud

promt = "Skemanummeret eksisterer ikke, vil du oprette et nyt " & Me.Skemanr & "?"
Hvordan får jeg den så til det, eller, hvad mangler ? for den skal jo tage det nye "ikke gyldige" og sætte ind i teksten, men det skal IKKE tilføjes til listen i comboboksen ad den vej, grundet andre finurligheder.
Avatar billede terry Ekspert
30. august 2010 - 13:24 #8
Not sure I undertstand what your after
"for den skal jo tage det nye "ikke gyldige" og ..."

Can you explain in more detail please?
Avatar billede sigyn Seniormester
30. august 2010 - 13:37 #9
Som det er nu spørger den "Skemanummeret eksistere ikke, vil du oprette et nyt ?
Jeg vil gerne have den til at spørge "Skemanummere eksisterer ikke, vil du oprette et nyt med nr xxx xxx?", hvor xxx xxx er det nummer der netop ikke er på listen, og derfor udløste ved ikke på liste
Avatar billede sigyn Seniormester
30. august 2010 - 13:38 #10
Hov, det skulle ikke have været et svar, men en kommentar :-S
Avatar billede terry Ekspert
30. august 2010 - 14:01 #11
promt = "Skemanummeret eksisterer ikke, vil du oprette et nyt med nr. " & NewData & "?"
Avatar billede sigyn Seniormester
30. august 2010 - 14:19 #12
Tadah :-)
Mugs skal lige have en chance for at få sine 10 points, så kommer der 30 til dig. Tusind tak
Avatar billede sigyn Seniormester
02. september 2010 - 08:56 #13
Terry, atter engang tak for hjælpen :-) Nu lukker jeg spørgsmålet og lægger et "hent dine points spørgsmål" ud til Mugs
Avatar billede terry Ekspert
02. september 2010 - 19:01 #14
thanks, have a nice weekend
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