08. november 2000 - 00:12Der er
9 kommentarer og 1 løsning
forhindre indtastning af samme værdi i et felt i en formular
Hallo Er der nogen der kan hjælpe mig. Jeg har en formular med nogle forskellige felter. der er tre specifikke felter der spiller en stor rolle i databasen. Disse tre felter kalder jeg for Nr1, Nr2, og Nr3, kan jeg under egenskaber for det aktuelle felt før opdatering (before opdate), på en eller anden måde forhindre at brugeren indtaster en værdi der allerede er brugt. Det skal fungere på denne måde: hvis brugeren indtaster en værdi der allerede er brugt i samme felt i en anden post, skal der poppe en meddelse op til brugeren.Det lidt drilske er at værdien gerne må findes i Nr2, men ikke i Nr1 o.s.v. De forskellige muligheder for at indexsere i tabeldesign fungere ikke efter hensigten, det har jeg arbejdet en del med. Kunne man bruge en eller anden form for valideringsregl for det aktuelle felt og ikke globalt for formularen?? det driller meget. Til slut et lille praktisk eks.
Brugeren opretter en ny post. I feltet Nr1 indtastet værdien 456, denne værdi findes ikke i feltet Nr1 i nogen anden post, men findes feks i felt Nr2 i en anden post, derfor ingen meddelse til brugeren da dette er tilladt o.s.v.
Som sagt det skal helst fungere på formularniveu for det aktuelle felt, forstået på den måde at selvom der ikke er defineret nogen form for Indexregler på tabelniveu feks ingen dubletter skal det helst køre aligevel.Puha sikken en smøre håber nogen der kan hjælpe.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du kan bruge DAO-Modellen til den gennemløbe din table. Her har jeg lavet en funktion der liger ldt, menlig hvis den samme post bliver indtastet 3 ganger kommer der en box frem. Det er i DAO ligegyldigt om det du vil teste er i forskellige feltet. Jeg kan give et bud, men jeg sidder ikke hjemme, hvor jeg har mine funktoner, så derfor kan der være fejl i.
Dim R as Recordset. Set R = CurrentDB.Openrecordset(\"Tabelnavn\" Dim flag as Byte
R.Movefirst Do until R.EOF
If me.NR1 = R(X) og me.NR1 = r(Y) Then flag = 1 r.Movenext Loop
If flag = 1 Then Msgbox \"Denne post findes iforvejen\" End if
R(X) og R(Y) er felter i tabellen. Du skal alså tælle felterne i tabelen startende fra 0
Hvis du ikke kan få det til at virke, så skrive. Jeg er hjemme i eftermiddag, hvor jeg har mine databaser. Så bliver det lettere at hjælpe
Det tror jeg også den gør, men kan koden også fungere selv om den kun skal chekke felt Nr1, i tabellen. felt Nr2, og Nr3 er nedlagt. et kodeeks på dette ville bare være dejligt
Ja det kan og jeg kan også lave et kodeeksempel. Men hvis jeg har forstået det rigtigt, har du nu kun et felt tilbage. Hvis der er rigtig, kan du indeksere dette men ingen Ja - ingen dubletter. Det vil have den samme virkning.
rigtigt, men senere vil der komme flere felter på formularen som skal opfylde de samme kriterier som på felt Nr1, ideen er at hvis koden virker på felt Nr1,vil jeg senere bruge koden på evt. nye felter
Her er koden Private Sub Navn_Exit(Cancel As Integer) Dim RC As Recordset Dim flag As Byte Dim svar As Byte Set RC = CurrentDb.OpenRecordset(\"Kunde\") RC.MoveFirst Do Until RC.EOF If Me.Navn = RC(1) Then flag = 1 RC.MoveNext Loop
If flag = 1 Then svar = MsgBox(\"Dette er indtasted\", vbOKOnly, \"VB\") End If
End Sub
Kan kan udbygger, så den sletter det indtastet efter man har klikke på OK.
Hvis du ender en e-mail til access@EDB.dk, skal jeg sende den database jeg har lavet til dig. Den er lavet version 97.
Tusind tak for hjælpen, nu har jeg noget atarbejde vidre med
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.