22. maj 2001 - 23:56Der er
5 kommentarer og 1 løsning
Vil fange datagrid error ...
Jeg har en form med diverse knapper, teksfelter og en datagrid. Datagrid\'en er via en ado forbundet til en access 97 database.
Brugeren tilføjer data til databasen ved at udfylde tekstfelter og trykke på \"Tilføj\".
Det er tilladt at rette tilføjet data direkte i datagrid\'en, og jeg har derfor en datagrid_error procedurer der fanger eventuelle fejl inden databasen opdateres.
Min datagrid_error procedurer reagerer imidlertid kun hvis brugeren klikker et andet sted i datagrid\'en efter at have rettet et felt. Hvis brugeren retter et felt og derefter flytter focus til et andet sted på formen, reagerer datagrid_error ikke (i hvert fald ikke før der trykkes på knappen \"tilføj\", og så lukker programmet).
Der bliver investeret massivt i AI. Teknologien er mere tilgængelig end nogensinde, og ambitionerne er høje. Alligevel oplever mange virksomheder, at resultaterne udebliver.
Det lyder som om du mangler at få kaldt datagrid_error når datagrid\'en mister focus, kan det tænkes, at den også skal registreres som \'onblur\' event el. lign?
Jeg har forsøgt at lave en lostfocus ... men når jeg kalder Datagrid1_Error fra en anden procedurer vil den have parametre, bl.a. fejlnummeret, og jeg ved ikke hvordan jeg får fat i det fejlnummmer. Jeg vedlægger lige min datagrid_error procedurer:
Private Sub Datagrid1_Error(ByVal dataerror As Integer, response As Integer) Dim besked As Integer response = 0
If dataerror = 6153 Then MsgBox \"Dette felt må ikke være blankt. Handlingen annulleres\", , \"Manglende værdi\" Screen.MousePointer = vbHourglass Adodc1.Recordset.CancelUpdate Screen.MousePointer = vbArrow End If
If dataerror = 7007 Then MsgBox \"Du har forsøgt at indtaste en forkert værdi i dette felt. Prøv igen\", , \"Forkert værdi\" Screen.MousePointer = vbHourglass Adodc1.Recordset.CancelUpdate Screen.MousePointer = vbArrow End If
Ved nærlæsning af DataGrid Error Event beskrivelsen får man den tanke, at eventet kun kommer, hvis en data access resulterer i en fejl. Antagelig medfører tab af focus ikke i sig selv at den aktuelle record bliver skrevet tilbage, men hvad med at lade LostFocus kalde Update på det underliggende recordset og dermed gennemtvinge en databaseskrivning?
Jeg har også prøvet at kalde update i lostfocus-proceduren. Men når jeg gør det, viser den ikke de fejlmeddelelser jeg har angivet i datagrid1_error. Istedet vises én eller anden standard fejlmeddelelse med et langt fejlnummer... og det vil jeg jo naturligvis gerne undgå...
Det var jo lige det jeg skulle bruge ... jeg takker :-)
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.