18. oktober 2000 - 18:40Der er
4 kommentarer og 4 løsninger
MsgBox til bruger hvis man indtaster et firecifret tal i et kontrolelement, og tallet allerede er brugt i en anden post
Jeg har en formular med tre felter. alle tre felter bruges til at registrer et unikt nummer for en enhed. Problemet er: Hvis brugeren feks indtaster et nummer i felt 1,feks 9888, og dette nummer allerede er brugt i feks felt nr 2 skal der poppe en MsgBox op til brugeren om at det indtastede nummer allerede er brugt i en anden post. På tabelniveu, kan man bruge de forskellige indexregler og det virker, også når man arbejder i formularvisning, men meddelsen til brugeren er noget kryptisk efter min mening.Meddelsen skal poppe op når brugeren forlader det aktuelle felt i formularen, Findes der en anden løsning. PS. brugeren arbejder kun i formularvisning. Mvh AndersJensen
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
Jeg mener at du kan programere dig ud af problemmmet med AOD metoden. Nu kender jeg ikke din database, men hvis du sætter du tabel lig med varianten R kan du løbe hele tabellen igennem for at se om det nummer du har indtasted er blevet brugt. Tror du ikke dette var en løsning?
Efter opdatering af et felt checker du: - Andre felter ved at spørge på felterns indhold fx. if Felt1.Value=Felt2.Value then... - I tabeller ved at anvende DCount() fx. if DCount(\"[FeltNavn]\", \"TabelNavn\", \"[FeltNavn]=\" + str(Felt1.Value)) then ...
MinFejlmelding: \'Her kan du checke på fejlen, som Access er kommet med og så skrive din egen fejlmelding ud fra det. \'Du kan jo starte med at udskrive den fejl, som Access kommer med, når den lander her MsgBox Err & \", \" & Error
\'Så kan du bygge en Select Case ud fra de fejlmeldinger, som du kan forvente på dette sted.
Dim D as database Dim R as Recordset Dim fl as byte
Set R = CurrentDb.OpenRecordset(\"tabelnavn\") R.MoveFirst Do Until R.EOF If R(1) = me.feltnavn1 or r(2) = me.feltnavn Fl 1= 1 End if R.movenext Loop If fl = 1 Then Dim svar as byte Svar = svar = MsgBox(\"Tallet er brugt\", vbOKOnly, \"DEMO\") End if Forklaring:
Førsrt løber man tabelen her tabelnavn igennem. Hvis er R1 eller R2 (dette er den 2 og 3 felt i tabellen da man starter med 0) for at se om det er lig med det tal man har indtastet. Er det det, bliver fl = 1. Når hele tabellen er gået igennem, går man ind og ser om fl er 1. Er den det, kommer der en dialogbox der fortæller at tallet er brugt.
Found=False if Dlookup(\"[Felt1]\",\"Tabelnavn\",\"[Felt1]=\" & Me.Felt1) then Found=True if Dlookup(\"[Felt1]\",\"Tabelnavn\",\"[Felt2]=\" & Me.Felt1) then Found=True if Dlookup(\"[Felt1]\",\"Tabelnavn\",\"[Felt3]=\" & Me.Felt1) then Found=True if Found then MsgBox ...
Jeg har nu fået noget af det til at virke, og arbejder videre med min database. i skal alle sammen have tusind tak for jeres fine svar det har hjulpet med videre med min viden omkring VBA kodning i access.
*SSSS* andersjensen
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.