Avatar billede uc Nybegynder
21. august 2003 - 11:56 Der 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 & "'"

uc
Avatar billede overchord Nybegynder
21. august 2003 - 12:06 #1
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
Avatar billede mugs Novice
21. august 2003 - 12:45 #2
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.
Avatar billede mugs Novice
21. august 2003 - 12:48 #3
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å:

DoCmd.OpenReport "RAPPORTNAVN", acWiewPreview,, "sagsnr = '" & Me.combo'"
Avatar billede uc Nybegynder
21. august 2003 - 13:48 #4
Hej
Nu prøvede jeg dette

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..?

UC
Avatar billede mugs Novice
21. august 2003 - 16:18 #5
Har du prøvet mit forslag?
Avatar billede uc Nybegynder
21. august 2003 - 19:10 #6
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.?

UC.
Avatar billede mugs Novice
21. august 2003 - 19:12 #7
Det har du ret i.
Avatar billede mugs Novice
21. august 2003 - 19:15 #8
Sludder - Combo er ihvertfald med.
Men du skal ikke skrive combo, men navnet på din combo. F.eks Me.Kombinationsboks1.

Navnet finder du i designvisning > højreklik på kontrollen > fanen Andre under linien navn.
Avatar billede uc Nybegynder
21. august 2003 - 19:35 #9
Mugs

Det virker..(næsten) bortset fra  lidt syntaxfejl.
hvis jeg skriver

DoCmd.OpenReport "test", acWiewPreview, , "sagsnr = ' & Me.Kombinationsboks0.Value  '"

Så starter den med at printe..?? hvad blev der af preview.?GG

men skriver jeg
find = Forms!find!Kombinationsboks0.Value
DoCmd.OpenReport "test", acViewPreview, , "sagsnr = '" & find & "'"

virker det ( kommer i preview)

UC
Avatar billede mugs Novice
21. august 2003 - 19:41 #10
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:

DoCmd.OpenReport "test", acViewPreview, , "sagsnr = '" & Me.Kombinationsboks0 & '"
Avatar billede uc Nybegynder
21. august 2003 - 20:37 #11
Mugs
Tjaa...det ser også ud til, at virke....men den starter stadigvæk et print
og ikke preview.
sagsnr er en text værdi F.eks. DK1206

UC
Avatar billede mugs Novice
21. august 2003 - 20:41 #12
Nu må jeg sgu be' om mine himmelblå:

DoCmd.OpenReport "test", acViewPreview, , "sagsnr = '" & Me.Kombinationsboks0 & '", acNormal
Avatar billede mugs Novice
21. august 2003 - 20:42 #13
Øhh - undskyld udtrykket
Avatar billede hekla Nybegynder
21. august 2003 - 20:47 #14
DoCmd.OpenReport "test", acPreview, , "sagsnr = ' & Me.Kombinationsboks0 '"
Avatar billede mugs Novice
21. august 2003 - 20:51 #15
hekla > Dit forslag er afprøvet, og det skriver til skærm. Ligeledes gør denne, og den jeg skrev kl 20:41:41:

DoCmd.OpenReport "test", acViewPreview, , "sagsnr = '" & Me.Kombinationsboks0 & "'", acNormal
Avatar billede hekla Nybegynder
21. august 2003 - 20:56 #16
mugs> Sorry, jeg havde ikke set din 20:41:41. Nu må uc have fået det, som han/hun kom efter :o)

uc> Jeg skal ikke have point!

/hekla
Avatar billede mugs Novice
21. august 2003 - 20:59 #17
hekla > Jeg synes nu også vi er nået et stykke væk fra det oprindelige spørgsmål. Monstro spørgeren fik det til at fungere :o)
Avatar billede uc Nybegynder
21. august 2003 - 22:27 #18
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)

point til mugs

uc
Avatar billede mugs Novice
21. august 2003 - 22:30 #19
Rolig nu - Hvad blev løsningen egentlig, jeg er lidt rundforvirret :o)
Avatar billede uc Nybegynder
22. august 2003 - 10:03 #20
Mugs
Jeg har brugt det og det virker perfekt.

DoCmd.OpenReport "test", acViewPreview, , "sagsnr = '" & Me.Kombinationsboks0 & "'"



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
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester