Printscreen knop maken in Access

  • Onderwerp starter Onderwerp starter Risk
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Risk

Gebruiker
Lid geworden
5 jul 2010
Berichten
275
Forum,

Ik zou graag een porintscreenknop maken in een van mijn (kleine) formulieren om die eenvoudig in een andere applicatie te kunnen plakken.

Ik heb gezocht op internet,maar helaas niets past.

Heeft iemand een stukje code?

Heb wel wat code maar die is zo complex dat ik die niet kan strippen.

Dank,

Risk
 
Waarom niet gewoon ALT+PrtScrn gebruiken?

Of probeer dit eens. Het voert de bovenstaande toetscombinatie uit:

Code:
Sub ActiveWindowToClipboard()
    Application.SendKeys "(%{1068})"
End Sub

Of het in Access ook met Application.Sendkeys werkt weet ik niet maar als je zelf Acces kent weet je vast ook de tegenhanger in Acces ervan. Dat is denk ik hetzelfde maar dan zonder Application.
 
Laatst bewerkt:
Edmoor,

Helaas, deze oplossing werkt niet.

Ik ben van de knopjes, dus lijkt deze opdracht achter een knopje wel zo netjes voor een gebruiker.

Risk
 
Dat zet je die code toch achter een knopje?
 
Edmoor,

Deze code heb ik achter de knop staan:

Code:
Private Sub btnPrintscr_Click()
Sub ActiveWindowToClipboard()
    Application.SendKeys "(%{1068})"
 
End Sub

Helaas, geen beweging in te krijgen.

Risk
 
Dat is in ieder geval fout. Het zou dan dit moeten zijn:

Code:
Private Sub btnPrintscr_Click()
    Application.SendKeys "(%{1068})"
End Sub

En volgens mij moet je voor Access dan het woord Application. weg laten zodat het er zo uit ziet:

Code:
Private Sub btnPrintscr_Click()
    SendKeys "(%{1068})"
End Sub
Maar daar ben ik niet zeker van.

Je zult niets zien gebeuren omdat het alleen de Print Screen opdracht betreft. Die maakt dus een schermkopie naar het Klembord zodat je deze ergens anders kunt plakken met SHIFT+Insert of CTRL-V
 
Laatst bewerkt:
Laten we eens terugkeren naar de basis:
Ik zou graag een porintscreenknop maken in een van mijn (kleine) formulieren om die eenvoudig in een andere applicatie te kunnen plakken.

De eerste tegenvraag had wat mij betreft moeten luiden: waarom? En dan op 2 specifieke aspecten: waarom een (afdruk)weergave van een formulier, en waarom een afbeelding?
Nog een: waarom niet gewoon een rapport gemaakt, opslaan als PDF en toevoegen aan je externe applicatie?
 
Octofish,

De reden van een Printscreen. Men kan de grafiek of anders in een Powerpoint presentatie laten zien. Plakken en bijsnijden.
Er is maar een waarde uit een query en diverse zelf ingevulde (niet aan een tabel gekoppelde) velden die inhet formulier rekenen. Die laten zich niet in een rapport vangen.

Edmoor,

Ik snap het ook niet waarom het niet werkt.

Risk
 
Er is maar een waarde uit een query en diverse zelf ingevulde (niet aan een tabel gekoppelde) velden die inhet formulier rekenen. Die laten zich niet in een rapport vangen.
Waarom niet? Als je het rapport baseert op het formulier (dat dan wel open is) is er geen probleem.
Wil je de grafiek in Powerpoint? Dan kun je hem toch vanuit PowerPoint aanmaken en koppelen? Ziet nog steeds de noodzaak niet van printscreens.... Microsoft ook niet, want anders hadden ze wel iets gebouwd ;) Nu vinden ze dat je dit soort zaken best met de ingebouwde functionaliteiten kunt doen.
 
Michel,

Als je het rapport baseert op het formulier (dat dan wel open is) is er geen probleem

Dat is voor wel een probleem. Ik krijg dat overzetten naar een rapport dus niet goed voor elkaar. Vanuit een formulier gebaseerd op een query, dat is mij gelukt (met hulp van dit forum). Een formulier vol variabelen, helaas niet.

Risk
 
Simpel voorbeeldje waarin ik op een formulier 5 tekstvakken heb gezet met standaardnamen, en een rapport met 5 standaard tekstvakken.

Code:
Private Sub Knop10_Click()
Dim stDocName As String, sVelden As String
Dim i As Integer
    
    stDocName = "Rapport1"
    For i = 0 To 8 Step 2
        If i > 0 Then sVelden = sVelden & "|"
        sVelden = sVelden & Me("Tekst" & i)
    Next i
    DoCmd.OpenReport stDocName, acPreview, OpenArgs:=sVelden

End Sub
Standaard nummert Access tekstvakken oplopend met een factor 2, dus ik heb de vakken Tekst0, Tekst2 etc. Die zet ik in een string, en geef ik mee bij het openen van het rapport.

Code:
Private Sub Details_Format(Cancel As Integer, FormatCount As Integer)
Dim sTmp As Variant
    If Me.OpenArgs <> "" Then
        sTmp = Split(Me.OpenArgs, "|")
        For i = LBound(sTmp) To UBound(sTmp)
            Me("Tekst" & i * 2) = sTmp(i)
        Next i
    End If
End Sub
Op het rapport wordt de string weer uit elkaar getrokken, en worden de tekstvakken Tekst0 ... Tekst8 gevuld vanuit de string.
Werkt prima!
 
Michel,

Ik ga studeren. Zou super zijn als dit werkt.

Je hoort.

Risk
 
Michel,

Ik heb even een eenvoudig formulier (niet gekoppeld aan een tabel zoals reeds eerder opgemerkt) en een rapport gemaakt.

Alles Tekst0 tot Tekst 6 in formulier als rapport.

Er opent zich een rapport, maar helaas de in het formulier opgenomen data worden niet meegenomen. Alle velden hebben een gelijke opmaak. Standaard en een Euro.

Wederom een leermoment.

Risk
 
Ik heb vanmiddag een voorbeeldje gemaakt (waar deze code uit komt) en dat werkte prima. Ik zou zeggen: post jouw poging er eens bij, dan kunnen we kijken waar het fout gaat.
 
Ben denk ik niet helemaal duidelijk geweest; de eerste code is voor het formulier, de tweede voor het rapport. Het heeft geen zin om alle code op het formulier te zetten, want dan gebeurt er op het rapport niks.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan