Foto's plaatsen in een rapport (catalogus)

Status
Niet open voor verdere reacties.

jlebbink

Gebruiker
Lid geworden
15 feb 2010
Berichten
106
Ik heb onderstaande code in mijn rapport.
Dit rapport moet een Artikelen catalogus worden met indien aanwezig foto's.
De Foto's staan inclusief bestandsnaam in: /Fotoos/Artikelen/xxxx.jpg
Bij het opmaken van het "Afdrukvoorbeeld" blijf ik de foutmelding "Kan methode of Gegevenslid niet vinden. Dit bij .Picture
Ik heb al het forum afgestruind, maar deze fout (nog) niet gevonden.

Verder heb ik geen idee wat strPic doet, of wat daar in staat.

Code:
Private Sub Details_Format(Cancel As Integer, FormatCount As Integer)
On Error GoTo Foutafhandeling
Dim strFotos As String
Dim tmp As String

    strFotos = Application.CurrentProject.Path
    tmp = Dir(strFotos & Me.txtFoto) 'txtFoto bevat de lokatie van de foto met bestandsnaam _
                                                     bv \Fotoos\Artikelen\TL.jpg
    If tmp & "" <> "" Then
        With Me.imgFoto
            .Visible = True
            .Picture = strPic
            .Width = 500
            .Height = 500
        End With
    Else
        Me.imgFoto.Visible = False
    End If
    Exit Sub

Foutafhandeling:
    MsgBox Err.Number & "  " & Err.Description
End Sub
 
Als je de inhoud van je variabelen had gecheckt had je gezien dat strFotos weliswaar een pad heeft, maar geen backslash op het eind. En daar kun je dus niet zomaar een bestandsnaam achter plakken, want dan maak je een nieuwe mapnaam. Dus of zo:
Code:
    strFotos = Application.CurrentProject.Path & "\"
Of zo:
Code:
        tmp = Dir(strFotos & "\" & Me.txtFoto)
 
Oh ja, die strPic? Geen idee, maar je gebruikt hem nergens, hij wordt niet gedeclareerd en hij wordt niet gevuld. Dus dat moet je vervangen door:
Code:
     .Picture = tmp
 
Bovenstaande begrijp ik, maar ik blijf met de foutmelding zitten.

Fout.jpg
 
Geen idee waarom het niet werkt, net een test gedaan met een willekeurige foto en een willekeurige afbeelding, en het werkt gewoon. Check de eigenschappen dus eens van je Image control. Wellicht heb je de verkeerde gepakt.
 
Ik weet niet, waar ik de image control moet zoeken. Bij de Visual Basic Verwijzingen zie ik niet iets dergelijks.

Als ik achter imgFoto. zoek zit picture niet in de control lijst. Vandaar de foutmelding, maar hoe krijg ik die er in.

Ik werk met Office 2010. Heb het ook met Office 2013 geprobeerd. Zelfde resultaat.
 
Ik werk ook met 2010, dus daar ligt het niet aan. Zoals ik al zei: volgens mij heb je het verkeerde object gebruikt voor je afbeelding.
 
Er begint wat licht in het verhaal te komen.

Ik krijg nu alleen nog de melding:

"Het bestand xxxxx.jpg kan niet door Microsoft Access worden geopend."
 
De melding zou een volledig pad moeten laten zien. Dan zou ik het zo doen:
Code:
     .Picture = strFotos & "\" & Me.txtFoto
 
Voorgaande heb ik toegepast en dat werkt, in zoverre, zolang ik een rapport voor één artikel maak. Het is de bedoeling, dat dit een catalogus wordt met honderden artikelen, met en zonder foto.
 
Zou toch moeten werken; ik gebruik deze techniek ook voor rapporten. Kortom: tijd voor een voorbeeldje?
 
Inmiddels heb ik de afbeeldingen in het rapport. Met bovenstaande hulp ben ik dus al aardig opgeschoten.
Allereerst zat er in de directory met afbeeldingen één afbeelding waar het geheel op stuk liep. Na verwijdering hiervan lukte het een rapport uit te draaien.
Echter is er nog een probleem.

Wanneer er een artikel is zonder foto zou naar mijn idee de afstand tussen de regels moet kunnen worden verkleind. Om dit mogelijk te maken had ik een kleine afbeelding gecreëerd en deze opgenomen in de vba code. Is chkFotoaanwezig onwaar dan moet het stukje code hiervoor worden afgewerkt en de grootte van de afbeelding zeer klein worden zodat de afstand tussen de artikelen kleiner worden. Dit werkt echter niet, de afstand blijft groot.

Alleen de imgFoto invissible maken werkt niet, vandaar de vervangende afbeelding. Overigens wel invisible gemaakt.

Ik heb onderstaande code gebruikt.

Code:
Private Sub Details_Format(Cancel As Integer, FormatCount As Integer)
Dim strFotos As String
Dim tmp As String
Dim Temp As String

    strFotos = Application.CurrentProject.Path
    If chkFotoaanwezig = False Then
    tmp = strFotos & "\Fotoos\Artikelen\Leeg.jpg"
            With Me.imgFoto
                .Visible = False
                .Picture = tmp
                .Width = 10
                .Height = 10
            End With
            
            
    Else

        tmp = strFotos & Me.txtFoto
            With Me.imgFoto
                .Visible = True
                .Picture = tmp
                .Width = 3000
                .Height = 3000
            End With

    End If
    Exit Sub
    
Foutafhandeling:
    MsgBox Err.Number & "  " & Err.Description
End Sub
 
De detailsectie kun je automatisch vergroten of verkleinen; dat zou al genoeg moeten zijn.
 
Het lukt me niet, in het "Afdrukvoorbeeld", de lege ruimte tussen de artikelen te verkleinen.

Een kleine versie van het geheel bijgevoegd

Ik ben er inmiddels achter gekomen, dat wanneer ik in de voettekst "pagina van pagina's"heb, alle items met veel tussenruimte worden weergegeven.
Neem enkel een paginanummer, dan is het begin goed, en wordt er na het eerste item met afbeelding bij de daarop volgende items weer meer ruimte afgedrukt.
Geen paginanummering geeft hetzelfde effect als enkel een paginanummer.

Hoe ga ik dit oplossen?
 

Bijlagen

Laatst bewerkt:
Het voorgaand probleem is nog niet opgelost.
Hopelijk is er iemand die me hierbij kan helpen.
 
Er zit nog steeds geen rapport in je voorbeeldje. Wellicht dat dat helpt :)
 
Hier heb ik dus iets goed fout gedaan. Verkeerd bestand. Ik ga een nieuw voorbeeld maken.
 
Excuus dat ik het niet eerder gemeld had, want ik had 'm uiteraard al bekeken. En de eerste keer stond hij er ook niet ik :)
 
Ik probeer het opnieuw.

Het lukt me niet, in het "Afdrukvoorbeeld", de lege ruimte tussen de artikelen te verkleinen.

Een kleine versie van het geheel bijgevoegd

Ik ben er inmiddels achter gekomen, dat wanneer ik in de voettekst "pagina van pagina's"heb, alle items met veel tussenruimte worden weergegeven.
Neem enkel een paginanummer, dan is het begin goed, en wordt er na het eerste item met afbeelding bij de daarop volgende items weer meer ruimte afgedrukt.
Geen paginanummering geeft hetzelfde effect als enkel een paginanummer.

Hoe ga ik dit oplossen?
 

Bijlagen

Nieuw voorbeeld 15 feb. Gepost. Geen reacties gehad.
Vraag is dus nog niet afgehandeld.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan