png per record opslaan en weergeven in rapport

Status
Niet open voor verdere reacties.

manueld

Gebruiker
Lid geworden
12 feb 2012
Berichten
216
ik heb een tabel met een primary key en enkele aanvullende velden die er nu niet toe doen. daarnaast heb ik een folder met png files die overeen komen met de 12000 records met de primarykey waarde als bestandsnaam.

ik wil op de een of andere manier de png files tonen op een rapport waarbij bij elk record de correspoderende png getoond word. als ik echter een image in het rapport toon en via vba de bestandslokatie wijzig wijzigt hij ze van alle records dus dat werkt niet. wil ik het echter met ole doen dan kan hij geen png tonen maar enkel bmp. een bmp is vee te groot en dan moet ik alle png bestanden gaan converteren.

hoe kan ik zorgen dat ik ze toch kan tonen in het raport
 
1:
Code:
ActiveSheet.Shapes.AddPicture "E:\Users\user name\Pictures\test.png", True, True, 100, 100, 70, 70

2:
Code:
Set pic = ActiveSheet.Pictures.Insert("E:\Users\user name\Pictures\test.png")

3:
download loadpicturegdi.zip van http://www.oaltd.co.uk/excel/
en zet de code uit "modLoadPictureGDI.bas" in een module

Code:
Set ActiveSheet.Image1.Picture = LoadPictureGDI("E:\Users\user name\Pictures\test.png")

p.s. ActiveSheet is iets van excel zal je misschien moeten vervangen door iets van access
 
Er zijn tig voorbeelden in Access beschikbaar op het Access forum, dus het is niet nodig om met Excel code aan te komen, lijkt mij :). Omdat je wel degelijk op de goede weg bent, hier een voorbeeldje waarmee je het af kan maken:

Code:
Private Sub Details_Format(Cancel As Integer, FormatCount As Integer)
Dim Bestand As String
Dim strImagePath As String
    ' Als foutmelding
    On Error GoTo NoFoto
    ' Maak fotonaam
    strImagePath = CurrentProject.Path & "\Afbeeldingen\" & Me.txtImageName
    Me.ImageFrame.Picture = strImagePath
    ' Ken foto toe aan rapport
    Exit Sub

NoFoto:
    Me.Picture = CurrentProject.Path & "\Afbeeldingen\" & "geenfoto.jpg"

End Sub
 
tot zover kom ik ook echter als je dit doet in een raport met meerdere records dan geeft hij alle records hetzelfde plaatje. hij ziet dus geen verschil tussen de records.
 
Da's vreemd, daar heb ik geen last van. Het zou, kortom, moeten werken. Wellicht een voorbeeldje?
 
toch zit ik te denken het gaat om bestandjes van 1 kb per stuk. eigenlijk wil ik die gewoon in de database hebben want dan kan ik zel altijd tonen. hoe kan ik dat het beste doen met png bestanden die ik wil tonen in een rapport of formulier
 
Access converteert volgens mij nog steeds afbeeldingen naar bmp, ongeacht de oorsprong. Dus of je daar veel mee opschiet? Het probleem zit 'm er ook niet in dat de techniek niet werkt, maar dat jij de techniek niet aan de praat krijgt :).
 
ik heb een sql server als background dus eigenlijk wil ik het in de sql opslaan en in access weergeven. het voordeel van opslaan in de server is dat het altijd beschikbaar is voor iedereen en anders moet ik weer mappen gaan delen etc. ik weet dat files opslaan in een db niet altijd de beste optie is maar het gaat nu om filse van max 1 kb dus dat valt nog mee.
 
Om nog even zout in de wond te strooien: ik heb de code net in een nieuw rapport geplakt, en hij werkte gelijk. Moest wel even de objectnamen aanpassen en een lege foto toevoegen, want ik had daar geen afbeelding GeenFoto.jpg, maar verder hoefde ik niks aan te passen. Loop er eens stapsgewijs doorheen, en controleer de veldinhoud, zou ik zeggen.
 
ik ben er inmiddels achter het zat hem in het event. ik had te snel gekeken en had hem in mijn eigen event geplakt en de "private sub...."weggehaald en dan loopt hij voor het hele rapport ipv alleen de huidge record

opgelost.

toch zou ik het uiteindelijk graag in de database willen hebben. zou je daar mee kunnen helpen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan