VBA: Skrive ut en enkelt oppføring fra skjema

Submitted by lroedal on Mon, 12/11/2017 - 00:42

Om du noen gang har satt opp et skjema for å vise innhold i en tabell, har du kanskje også ønsket å skrive ut denne informasjonen? Access har en innebygd makro for å kjøre utskrifter, men den skriver desverre ut alle oppføringer i tabellen. Om du har en tabell med 100+ oppføringer, kan dette være problematisk. Løsningen da kan være så enkel som å opprette en "hjelperapport", som du setter opp så lik som mulig til skjemaet ditt.

Det er en forutsetning at du har et unikt felt på skjemaet, som f.eks en auto-ID (den trenger ikke være synlig for brukeren, du kan sette .Visible til False). Deretter lager du deg en knapp på skjemaet, Access har innebygde bilder som kan brukes for å illustrere utskrifter, disse kan settes under Picture Property Sheet for knappen. Følgende kodesnutt sjekker at en gyldig oppføring er valgt, før den skriver ut rapporten direkte.

Gi tilbakemelding i kommentarfeltet om du evt. har problemer, så kan jeg evt. oppdatere artikkelen med illustrerende skjermbilder.

  1. Private Sub btnPrint_Click()
  2. 'Printer den gjeldende oppføringen
  3. If IsNull(Me.txtID.Value) Then 'sjekker om en oppføring er valgt (da vil det være en gyldig ID i tekstboksen knyttet til autoID'en)
  4. MsgBox "Velg en gyldig oppføring"
  5. Exit Sub 'avslutter kjøringen av koden om det ikke er tilfelle
  6. End If
  7.  
  8. 'Rapporten "åpnes", acViewNormal tilsvarer at den skal skrives ut uten å åpnes på skjerm
  9. 'ID er navnet på det auto-inkrementerte ID-feltet i tabellen
  10. 'Dette må tilsvarere tallet som finnes i tekstboksen txtID på skjemaet
  11. 'Siden det er snakk om et autonr., vil det aldri skrives ut mer enn en oppføring (den som er valgt i øyeblikket)
  12. DoCmd.OpenReport "rptPrint", acViewNormal, , "ID = " & Me!txtID
  13. End Sub