I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Der er flere måder at gøre det på, men her er min version. Det er muligt du får en fejlmelding p.g.a. koden Chr$(13), hvis du gør det skal du kontrollere dine referencer (eller slette Chr$(13), som giver et linieskift i din MsgBox:
Public Function Check(CPRNR) Dim Rst As Recordset, Db As Database Dim VGT As String, i, Sum As Integer, ModSum As Integer, Kontrolciffer As Integer, Svar As String VGT = 432765432 If Len(CPRNR) <> 10 Then Svar = Msgbox(Prompt:=\"Der skal indtastes 10 cifre i CPR.\" & Chr$(13) & Chr$(13) & \"Der må ikke indtastes bindestreg.\" & Chr$(13) & Chr$(13) & \"Klik på OK og vend tilbage til CPR-feltet og foretag ny indtastning.\", Title:=\"Indtastningsfejl\", Buttons:=vbOKOnly) DoCmd.GoToControl \"CPRNR\" Exit Function End If For i = 1 To 9 Sum = Sum + (Val(Mid(CPRNR, i, 1)) * Val(Mid(VGT, i, 1))) Next ModSum = Sum Mod 11 If ModSum = 0 Then Kontrolciffer = 0 Else Kontrolciffer = 11 - ModSum End If If Val(Right(CPRNR, 1)) <> Kontrolciffer Then Svar = Msgbox(Prompt:=\"Efter indtastning af CPR-nummer har programmet foretaget en gyldighedstest af det indtastede.\" & Chr$(13) & Chr$(13) & \"Testen har afsløret en eller flere fejl i det indtastede CPRNR.\" & Chr$(13) & Chr$(13) & \"Klik på OK vend tilbage til CPR-feltet og foretag en ny indtastning.\" & Chr$(13) & Chr$(13) & \"Du kan ikke gå videre, før programmet har godkendt CPR-NR\", Title:=\"Forkert indtastet CPR-NR\", Buttons:=vbCritical + vbExclamation) DoCmd.GoToControl \"CPRNR\" End If End Function
Jeg bør dog tilføje, at funktionen er indsat i et modul, der modteger variablen CPRNR fra en formular.
Det ses i første linie:
Public Function Check(CPRNR)
hvor (CPRNR) modtages fra formularen. Funktionen skal så kaldes fra formularen med koden:
MODULNAVN.CPRNR
Du skal så erstatte MODULNAVN med det aktuelle navn. Når du laver din punktumnotation vil du få en drop-down liste med de aktuelle nave på procedürerne i modulet.
Udover min tidligere kommentar skal du være klar over, at min kode er rettet mod brugere, der ikke er vant til at arbejde med Access. Derfor ser den nok lidt mere indviklet ud end Terry\'s, idet jeg som en forudsætning har valgt, at procedüren skal returnere en MsgBox med oplysning om en evt. fejl, og et forslag til, hvordan fejlen kan rettes.
Hej Mugs og Terry. Jeg må desværre indrømme at jeg ikke kan få Mugs version til at virke, men har brugt Terrys version. Jeg har dog det problem at hvis, Cpr-nummeret ikke er korrekt, kan jeg ikke automatisk vende tilbage til ny indtastning af cprnr.
amorgos > jeg har lige kopieret min kode, og sat den ind i en ny db, og det virker. Får du en fejlmeddelelse?
Husk: Koden er beregnet til at sætte ind i et modul. Fra formularen skal du så kalde modulet og procedüren, samt sende variablen CPRNR til modulet sådan:
Modulnavn.Procedürenavn CPRNR
I modulet skal du samtidig angive, at variablen skal modtages:
Public Function (CPRNR)
Hvis du lægger din E-mail, kan jeg sende dig en lille testdb.
Hej Terry! Jeg har prøvet at anvende den funktion du har beskrevet den 13/9/2001, men får fejlmeddelesen: Runtime error '2108' Feltet skal gemmes, før handlingen GåTilKontrolelement, metoden GoToControl eller metoden SetFocus kan udføres
Jeg kalder Hændelsesproceduren FørOpdatering, og den ser således ud:
'Laver Modul 11 check på det indtastede CPR-nummer, førOpdateringhændelsen Private Sub CPRnummer_ID_BeforeUpdate(Cancel As Integer) If Not (CPR_Ok(Me.CPRnummer)) Then MsgBox "CPR-nummer er ikke korrekt" Me.CPRnummer = " " Me.CPRnummer.SetFocus End If
Jeg aner simpelthen ikke hvorledes jeg kom ud af denne situation - nu er jeg jo nybegynder.
Helloooo Mugs! Jeg skulle have lagt nogle flere points ind - det virker bare super nu. Bortset fra at fokus selvfølgelig skal sættes på CPRnummer_ID Mange tak for hjælpen.
Synes godt om
Ny brugerNybegynder
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.