22. juli 2002 - 18:54Der er
52 kommentarer og 1 løsning
Rapport
Hejsa
Er det muligt at få en rapport i access til at kun vise et felt hvis der er angivet noget i feltet i tabellen? Jeg tænker lidt på ligesom man gør med asp:
<% if Session("fornavn1") <> "" then %> <% response.write Session("fornavn1") %> <% response.write Session("efternavn1") %><br> <% end if %>
Det jeg skal bruge det til er at jeg har en tabel der hedder forespørgsler og den har følgende kolonner: Information Processor Bundkort Ram Harddisk Grafikkort Printer Scanner
I min rapport skal den altså kun skrive: Printer: Epson 890 Hvis der er en printer i feltet ... ellers skal den helt undlade at skrive Printer:
Jeg håber at det kan forstås og at der er hjæpe at hente!
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.
Indsæt flg. kode i rapportens detaljesektion ved Print Event
Private Sub Detaljesektion_Print(Cancel As Integer, PrintCount As Integer) If IsNull(Me.printer) Then Me.printer.Visible = False Else: Me.printer.Visible = True End If End Sub
Hi again terry > Not yet. I'm too tired to think on theese If Then .... I got this solution from my "lager" of VBA-functions (a litttle private help-file). Soo I had just made a copy and pasted it.
tblaster > Jeg tror iøvrigt, at du trykker på den forkerte tryllestav. Du skal bruge tryllestaven på din øverste vandrette menulinie. Tryllestaven i din værktøjskasse slår dine kontrolelementguider fra og til, så der vil du ikke se nogen forskel, før du forsøger at bruge guiderne.
Databasen er modtaget, rettet og returneret. Fejlen var, at brugeren havde slettet de oprindelige etiketter, laver nogle nye. De nye etiketter "hænger" ikke sammen med de etiketter, der følger med ned i rapporten, når felterne trækkes ned fra feltlisten.
Jeg har slettet feltet "Printer", og trukket det ned igen fra feltlisten, og indsat min koden fra svaret Kl 19:02. Så fungerer det.
Jeg har åbnet min rettede db, og der er ingen fejl. Hvor kommer fejlen?. Du får sikkert tilbud om at debugge. Prøv det og se hvor fejlen ligger.
Alternativt kan du afslutte alt, evt. lukke db og åbne den igen. Derefter åbner du rapporten i designvisning. Åbn kodevinduet > Fejlfinding > Kompiler alle moduler. db vil herefter vise hvor fejlden ligger.
En anden mulighed er, at du igen åbner dit kodevindue. Vælg Funktioner > Referencer > Hvis der er nogle referencer ud for hvilke der står "MISSING", skal du "unclicke" dem.
Jeg har kopiert noget af det du har lavet og smidt det ind i min db ... Private Sub Detaljesektion_Print(Cancel As Integer, PrintCount As Integer) If IsNull(Me.Printer_label) Then Me.Printer_label.Visible = False Else: Me.Printer_label.Visible = True End If End Sub
Nu får jeg ingen fejl ... men når der ikke står noget i Printer så viser den stadig Printer_label ... altså
Der er ingen tvivl om, at min kode fungerer. Slet feltet Printer og etiketten Printer_label. Åbn feltlisten og træk feltet Printer ned i din rapport. Fejlen ligger ca. 20 cm. bagved tastaturet. :o)
Det var ikke meningen at være sjov. Undskyld hvis jeg lyder lidt utålmodig - jeg har faktisk været på arbejde fra SØN morgen til ca 17:00 i eftermiddag, så der er ved at være udsolgt. Imorgen skal jeg på den igen, og er først hjemme ONS eftermiddag. Så det er lidt af en tørn.
Jeg er sikker på, at min kode virker. Lad skidtet ligge til imorgen, og se på det med friske øjne. ONS eftermiddag er jeg her igen, og har du ikke fået det til at fungere, så mailer jeg mit tlfnr., og så SKAL DET VIRKE!!
Ja jer ser det - men kan ikke se nogen fejl i koden. Jeg har igen åbnet din tilsendte db, indsat min kode og det fungerer perfekt. det eneste råd jeg har her på falderebet er, at du skal kontrollere dine feltnavne / etiketnavne. de skal hedde Printer. i din først tilsendte db, havde du slettet de oprindelige etiketter, og lasvet nogle nye. derfor hænger datafeltet ikke længere sammen med etiketterne, og så går det galt. Har du prøvet at slette feltet og etiketten helt, og derefter trukket datafeltet ned i rapporten igen. Du skal ikke gøre andet end trække feltet ned, så følger etiketten automatisk med.
Ja men får du en fejlmelding? Eller virker det bare ikke. Den db jeg modtog fra dig, havde en fejl idet du havde udskiftet den etiket, der hører med til datafeltet med en anden. Denne nye etiket havde db automatisk døbt f.eks Tekst14. Derfor nytter det ikke noget, at du programmerer Me.Printer.Visible = False.
Prøv at sende mig db en gang til, lad os starte forfra med friske øjne. Det eneste jeg er sikker på er:
Jeg har fundet min testdb frem (db5), og den fungerer perfekt i Access97. detr bør kun være en simpel kode, og det er får dårligt, at vi enddnu ikke har fåset det til at fungere. Det er fuldstændig ligegyldigt om det er 97, 200o eller xp. DET SKAL FUNGERE SOM JEG HAR BESKREVET TIDLIGERE.
Dette er min kode på raporten: Forespørgsler_Print
Private Sub Detaljesektion_Print(Cancel As Integer, PrintCount As Integer) If IsNull(Me.Printer) Then Me.Printer.Visible = False Else: Me.Printer.Visible = True End If End Sub
Hvis jeg køre rapporten så melder den følgende fejl:
Compile error:
Method or data member not found
Og den har markeret følgende med blåt (sammentidig med beskeden vises)
.Visible = (Det er den første den har markerte der hvor den er lig False.
Når jeg trykker på ok så markere den første linje med gult.
Jeg vil igen bede dig kontrollere, at feltet / etiketten virkelig hedder "Printer":
Åbn rapporten i Designvisning, tryk på feltet og vælg egenskaber. derefter fanen "Andre". Her skal du se navnet på feltet. Det samme med etiketten. husk at der er skrevet i feltet / etiketten ikke behøver at være navnet. I den testdb du sendte mig, var fejlen netop, at der ikke var nogen etiket med navnet "Printer". Dert hed så vidt jeg husker "Tekst14".
Det er fejlen. Når du trækker feltet ned i rapporten fra feltlisten, vil etiket og datafelt "høre sammen". Men på et tidspunkt har du slettet etiketten og lavet en anden, som databasen (eller dig selv)så har døbt "Etikette43". Omdøg etiketten til "Printer", eller bedre træk feltet ned fra feltlisten, så kan du se forsklellen.
Datafeltet fungererer, på den måde, at egenskaben Visible = False, hvorimod der ikke er nogen tilhørende etiket ved navn "Printer".
Slet feltet og tilhørende etiket. træk derefter feltet Printer ned fra feltlisten. Så hører de sammen, og etiketten følger datafeltet, der er usynlig, når datafeltet's egenskab er Visible = false
Hvordan har du afprøvet den db jeg sendte dig? Den fungerer perfekt i Access97, men det betyder ikke noget, detr skal også fungere i 2000, xp og hvad du nu har at gøre godt med.
jeg har access 2002 (xp) ... mugs har du icq eller noget så vi kan chatte for at fikse det? Jeg tror at jeg lige skal prøve at sende dig denne database igen og så kan du se om der er noget galt ... så kan du jo skrive hvad der er galt og hvad der skal rettes!
Vi fik aldrig løst mit problem men du får pointne for din hjælp!
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.