Avatar billede aros Nybegynder
15. juli 2003 - 21:31 Der er 20 kommentarer og
1 løsning

Fejlmeddelelse hvis data ikke findes i anden tabel

Hjæælp, jeg er igang med at lave en db, der skal bruges til en indsamling, hvor vi skal indtaste indsamler samt tildele dem et rutenr. Jeg vil gerne have det lavet sådan, at hvis man taster et rutenr. som ikke eksisterer, så kommer der en fejlmeddelelse....

Hvordan gør jeg det???
Avatar billede jytte Nybegynder
15. juli 2003 - 21:38 #1
Er det ikke nemmere kun at lade indtasteren vælge mellem eksisterende rutenumre, så er der nemlig ikke brug for nogen fejlmeddeleser da der ikke kan vælges et ikke eksisterende rutenummer ?
Avatar billede mugs Novice
15. juli 2003 - 21:49 #2
Denne kode tæller hvormange rutenr der er i tabellen "rute" i feltet "rutenr", hvor rutenr er = det netop indtastede i en formular:

Private Sub rutenr_BeforeUpdate(Cancel As Integer)
a = Me.rutenr
If DCount("*", "rute", "[rutenr] = " & a) = 0 Then
MsgBox "Rutenr. findes ikke."
End If
End Sub
Avatar billede mugs Novice
15. juli 2003 - 21:50 #3
Afprøvet i en testdb, kan sende hvis du lægger din e-mail
Avatar billede henrik13 Nybegynder
15. juli 2003 - 21:54 #4
Den vil jeg gerne se.
oz1bua@wanadoo.dk
:o)
Avatar billede mugs Novice
15. juli 2003 - 21:59 #5
jytte > Du må tænke på en kombinationsboks. Hvis nu der er 100 rutenr., så er det en lang proces at browse ned igennem posterne. Det er ikke helt korrekt, at der ikke kan indtastes et rutenr der ikke eksisterer. Det afhænger af, hvordan comboen er sat i egenskaben BegrænsTilListe Ja eller Nej.
Avatar billede henrik13 Nybegynder
15. juli 2003 - 22:00 #6
>>mugs
Tak for tilsendte.  :o)
Avatar billede mugs Novice
15. juli 2003 - 22:03 #7
selv tak, fungerer det?
Avatar billede henrik13 Nybegynder
15. juli 2003 - 22:06 #8
Ja. Jeg skal bare opbygge de password jeg ville bruge den til.  :o)
Avatar billede mugs Novice
15. juli 2003 - 22:08 #9
Husk at syntaksen er lidt forskellig vedr. nujmeriske og alfanumeriske felter. Se evt. den db15 jeg sendte for lang tid siden.
Avatar billede henrik13 Nybegynder
15. juli 2003 - 22:10 #10
Ok. Tak for info.    :o)
Avatar billede fynbohans Nybegynder
15. juli 2003 - 22:21 #11
Brug DoCmd.FindRecord.
Hvis du havner på samme rute, du startede fra, findes ruten ikke.
Avatar billede aros Nybegynder
15. juli 2003 - 23:22 #12
Mugs: Hejsa, den vil jeg gerne se, virker lidt som volapyk for mig.. min mail er: christian.krog@andersen.mail.dk
Men problemet ligger også i, at rutenr. ikke kommer i rækkefølge, ved ikke om det kan give problemer for dit løsningsforslag????

og til jytte, godt forslag, men der er ca. 1000 ruter, så det vil være lidt for langt at lade brugeren vælge ;o)
Avatar billede fynbohans Nybegynder
15. juli 2003 - 23:32 #13
Ved klik på den knap der finder rutenr:

DIM Nr as Long
Nr = [RuteNr]
[RuteNr].SetFocus
DoCmd.FindRecord [NyRute] ' der hvad man skriver den rute man søger efter
If [RuteNr] = Nr then MsgBox "Ruten findes Ikke"
Avatar billede fynbohans Nybegynder
16. juli 2003 - 00:22 #14
For at undgå misforståelser må hellere tilføje en IF/END IF:

DIM Nr as Long
Nr = [RuteNr]
If [NyRute] <> [Rute] then
  [RuteNr].SetFocus
  DoCmd.FindRecord [NyRute] 
  If [RuteNr] = Nr then MsgBox "Ruten findes Ikke"
End if
Avatar billede terry Ekspert
16. juli 2003 - 08:14 #15
I would have though that the easiest way was to make sure Rutenr was a unique index and when you try and WRITE to the dB you will automatically get an error. If necessary you can react on this error and show your own message!
Avatar billede terry Ekspert
16. juli 2003 - 08:17 #16
I can see its still a little early. Obviolsly a combo box would be the best here. In the NOT IN LIST event you can display a message and if you want you can ADD the new data.
Avatar billede terry Ekspert
16. juli 2003 - 08:23 #17
EXAMPLE:
Private Sub Cat_NotInList(NewData As String, Response As Integer)
Dim strMsg As String

    strMsg = "Kategori findes ikke, Ønsker du at tilføje det?"
     
    If MsgBox(strMsg, vbQuestion + vbYesNo, "findes ikke") = vbNo Then
        Response = acDataErrContinue
    Else
        DoCmd.RunSQL "INSERT into tblCat (Category) VALUES ('" & NewData & "')"
       
        Response = acDataErrAdded
    End If

End Sub

and if you must not allow additions then

Private Sub Cat_NotInList(NewData As String, Response As Integer)
Dim strMsg As String

    strMsg = "Kategori findes ikke"
     
    MsgBox strMsg
    Response = acDataErrContinue
   

End Sub
Avatar billede aros Nybegynder
16. juli 2003 - 09:33 #18
Terry: I'm not sure I'm understanding your suggestion... Where does it check if the number I put in the table is "existing"???
Avatar billede terry Ekspert
16. juli 2003 - 10:35 #19
If you place a combo box on the from using the wizard which selects ALL EXISTING rutenr from your table then if you enter a rutenr which DOES NOT exist the NOT IN LIST event gets fired and the gets performed.
For this to work th elimit to list property for the combo must be set to Yes.
Avatar billede terry Ekspert
16. juli 2003 - 10:41 #20
I cant see your database but if it is normalized then I would imagine that you have a table containing Rutenr. Then in the table which you use for "indsamling" you will have a field which references the table Rutenr. When you design your table "indsamling" change the datatype to "Lookup" for the Rutenr field. This will start a wizard to help you select the related table where Rutenr is to be taken from. Then when you create a form the Rutenr field should now be a combo box where you can choose the Rutenr from. Then when this is done the code (which you need to modify a little) should work!

If you cant get this to work then I will take a look later if you sent it to eksperten@santhell.dk
Avatar billede aros Nybegynder
16. juli 2003 - 22:59 #21
Først og fremmest tak til jer alle sammen for de mange svarmuligheder, det er dejligt at der er nogen som jer, der gider bruge tiden til at hjælpe... Det er nok ikke sidste gang jeg får brug for hjælp ;o)

Pointene går til Terry
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