21. august 2003 - 11:56Der er
19 kommentarer og 1 løsning
error handling til rapport
Hej Jeg har det her kode Den åbner en rapport TEST og viser data udfra det man har tastet ind. Men hvis sagen ikke findes vises rapporten stadigvæk, dog bare med tomme felter. Kan man ikke lave en msgbox der retunere, at denne sag ikke findes.? eller endnu mere smart, hvis man kunne vælge sager fra en kombinationsbox.? så ville man aldig have fejl.? (sager findes i en tabelen sager)
Dim find As String find = InputBox(Prompt:="Skriv navnet på dn sag, der skal udskrives !", Title:="Udskriv sag.", Default:="Indtast sagsnr her.") DoCmd.OpenReport "test", acViewPreview, , "sagsnr = '" & find & "'"
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.
Jo det vil vaere en god ide med en listbox hvor du vaelger sagsnummer. Hvis du opretter en ny formualr uden data-tilknytning, indsaetter en listbox hvor rowsource saa er sat til listen over sager fra din tabel (eller en query hvis der er dubletter - hvor du kan gruppere dem) Derefter kan du indsaette din kode paa en knap i formularen og erstatte "find" med me.listbox.value Alternativt kan du lave et check paa on open for rapporten if isNull (sagnr) then msgbox "Dette sagsnr findes ikke", vbokonly docmd.close acReport, "test", acSaveNo end if
Du kan bruge hændelsen VedInganData i din rapport:
MsgBox "der er ingen data, der svarer til det indtastede sagsnr." DoCmd.CancelEvent
Du skal så også have en cancelevent i din formular, idet cancelevent i rapporten kun opfanger den fejl, at der ikke er data. Når du i formularen har beordret en åbning af rapporten, og denne ikke sker, skal denne også annulleres.
når du ønsker en kombinationsboks for at vælge et sagsnr, kan du på formularen lave en combo, og sætte et kriterie på din DoCmd.OpenReport som du også selv er inde på:
rækkekilde i min kombinationsbos er SELECT [sager].[sagsnr] FROM sager; og hændelse på knap er Private Sub find_knap_Click() Dim find find = Me.ListBox.Value DoCmd.OpenReport "test", acViewPreview, , "sagsnr = '" & find & '" End Sub
men der er en compiler error method or data member not found..?
mugs Jeg får samme fejl på .combo (og combobox) Men når jeg her i min ver 2k skriver me. så er hverken listbox eller combo med på listen over klasser? så jeg tror ikke at det er en option.?
Jeg ved det ikke med sikkerhed. Men hvad gør .Value i dit kriterie. For mig at se, er det ikke nødvendigt, idet du jo har sat værdien i sagsnr til = værdien i combo. Som du akriver det er comboen her et alfanumerisk felt, se min tidligere kommentar, hvis comboen er numerisk:
Hvad er der nu galt i at holde mugs til ilden..GG når det han laver har syntax fejl ?..(eller opfører anderledes end forventet) hvordan skal man så som mig der IKKE er expert i access kunne gennemskue om det der er leveret er ok, når det ikke opfører sig som forventet. der er sq en fandes til forskel på et preview og et direkte print. DoCmd.OpenReport "test", acViewPreview, , "sagsnr = '" & Me.Kombinationsboks0 & "'" er det der virker. (og laver et preview)
Men ved nærmere eftertanke har jeg lidt dårlig samvittighed, da det var overchord(21/08-2003 12:06:10) , der gav mig løsningen på en formular med en liste/combo til, at udvælge sagsnr.Men han løste det aldig færdig. han burde han haft lidt points.
UC
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.