Avatar billede Slettet bruger
24. april 2012 - 17:29 Der er 10 kommentarer og
1 løsning

Meddelseboks ved forkert indtasning

Hej Eksperter

Jeg har brug for lidt hjælp.
Jeg har følgende kode som henter brugeroplysninger ved indtagning af initialer, men jeg kan ikke find ud af at inlæge en meddelseboks (MsgBox) som komme frem hvis initialer ikke finden i min database

Er det noge der kan hjælp mig

Private Sub indsætBogmærke(bm, tekst)
    With ActiveDocument
        .Bookmarks(bm).Select
        Selection.TypeText Text:=CStr(tekst)
    End With
End Sub
Private Sub hentMedarbejderdata(Initialer)
    Set db = OpenDatabase("C:\Users\Bruger\Documents\Medarbejderliste.accDB")
   
    Set medarbejder = db.OpenRecordset("MA_liste")
   
    With medarbejder
        For r = 1 To medarbejder.RecordCount
            If LCase(Initialer) = LCase(.Fields(2)) Then
                indsætBogmærke "texnavn", CStr(.Fields(3))
                indsætBogmærke "texmail", .Fields(5)
                indsætBogmærke "textel", .Fields(6)
                Rem... o.s.v.
                Rem...
               
                medarbejder.Close
                Exit Sub
            End If
            .MoveNext
        Next r
    End With
   
    medarbejder.Close
    db.Close
End Sub
Avatar billede supertekst Ekspert
24. april 2012 - 17:53 #1
Private Sub hentMedarbejderdata(Initialer)
    Set Db = OpenDatabase("C:\Users\Bruger\Documents\Medarbejderliste.accDB")
   
    Set medarbejder = Db.OpenRecordset("MA_liste")
   
    With medarbejder
        For r = 1 To medarbejder.RecordCount
            If LCase(Initialer) = LCase(.Fields(2)) Then
                indsætBogmærke "texnavn", CStr(.Fields(3))
                indsætBogmærke "texmail", .Fields(5)
                indsætBogmærke "textel", .Fields(6)
                Rem... o.s.v.
                Rem...
               
                medarbejder.Close
                Exit Sub                    'her forlades loopet
            End If
            .MoveNext
        Next r
    End With
   
Rem Ej fundet, da der ikke er flere medarbejdere
    MsgBox "Initialerne: " & Initialer & " kunne ikke findes i databasen"
   
    medarbejder.Close
    Db.Close
End Sub
Avatar billede Slettet bruger
24. april 2012 - 18:43 #2
Hej supertekst

Det viker næste, det er bare et lille problem.

Boksen komme fint op, men den stopper ikke de andre processer (koder) nå jeg siger ok til boksen så overføre den de forkerte initialer og gemmer met word dokument som om et er galt!!!

Er der mulig at stoppe alle processer indtil man har skrivet rigitg initialer ???
Avatar billede supertekst Ekspert
24. april 2012 - 22:58 #3
Hvis du ændre din Sub til en Function og lade den returnere om Initaler var ok eller ej - så kan du styre det videre forløb.
Avatar billede Slettet bruger
26. april 2012 - 19:40 #4
Hej Supertekst

Jeg har ændret Sub til Function i koden, men den overføre stadigvæk et forket indtastet intialer. Hvad gør jeg forkeret?????????

Private Function hentMedarbejderdata(Initialer)

    Set db = OpenDatabase("C:\Users\Bruger\Documents\03 Casper\01 Sager\Erling Sørensen\Dokumentskabeloner\Medarbejderliste.accDB")
   
    Set medarbejder = db.OpenRecordset("MA_liste")
   
    With medarbejder
        For r = 1 To medarbejder.RecordCount
            If LCase(Initialer) = LCase(.Fields(2)) Then
                indsætBogmærke "texnavn", CStr(.Fields(3))
                indsætBogmærke "texmail", .Fields(5)
                indsætBogmærke "textel", .Fields(6)
                Rem... o.s.v.
                Rem...
               
                medarbejder.Close
                Exit Function
            End If
            .MoveNext
        Next r
    End With
   
    Rem Ej fundet, da der ikke er flere medarbejdere
    MsgBox "Initialerne: " & Initialer & " findes ikke, indtast gyldige initialer "

    medarbejder.Close
    db.Close
End Function
Avatar billede supertekst Ekspert
26. april 2012 - 23:10 #5
Det er strukturen der ikke er korrekt. At ændre til Function er ikke tilstrækkeligt. Den skal kaldes og returnere et svar, som du så kan teste.
Avatar billede Slettet bruger
27. april 2012 - 18:45 #6
Hej Supertekst

Jeg er ikke med på hvordan det gøres, at kaldes og returnere et svar?????
Avatar billede supertekst Ekspert
28. april 2012 - 14:24 #7
Eks.:

Private Sub Illustration()
Dim Initialer As String
    Initialer = "xx"
    If hentMedarbejderdata(Initialer) = True Then
Rem        ...Ok-proces
Rem        ...
    Else
        MsgBox "Initialerne: " & Initialer & " findes ikke, indtast gyldige initialer "
Rem        ... Fejl-process
    End If
End Sub
Private Function hentMedarbejderdata(Initialer)
    Set Db = OpenDatabase("C:\Users\Bruger\Documents\03 Casper\01 Sager\Erling Sørensen\Dokumentskabeloner\Medarbejderliste.accDB")
    Set medarbejder = Db.OpenRecordset("MA_liste")
   
    With medarbejder
        For r = 1 To medarbejder.RecordCount
            If LCase(Initialer) = LCase(.Fields(2)) Then
                indsætBogmærke "texnavn", CStr(.Fields(3))
                indsætBogmærke "texmail", .Fields(5)
                indsætBogmærke "textel", .Fields(6)
                Rem... o.s.v.
                Rem...
               
                medarbejder.Close
                hentMedarbejderdata = True
                Exit Function
            End If
            .MoveNext
        Next r
    End With
   
    Rem Ej fundet, da der ikke er flere medarbejdere
    medarbejder.Close
    Db.Close
   
    hentMedarbejderdata = False
End Function
Avatar billede Slettet bruger
28. april 2012 - 15:59 #8
Jeg kan ikke få det til at virke. Hvad gør jeg forkert??????
Avatar billede supertekst Ekspert
28. april 2012 - 16:05 #9
Det er jo svært at sige når jeg ikke kan se din kode.

Tror ikke jeg kan hjælpe dig mere..
Avatar billede Slettet bruger
28. april 2012 - 16:28 #10
Den ny kode gøre værke fra eller til

Den overføre fint brugeroplysninger for en rigitg person i min database, men hvis person ikke findes i min database så forsætter den som om intet var hent. Meningen med de kode var da at den skulle stoppe og fortælle at person ikke fandtes - ikke eller har jeg misforstået din kode?
Avatar billede Slettet bruger
26. maj 2012 - 12:05 #11
Lukket
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
Kurser inden for grundlæggende programmering

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