Foto's in doorlopend formulier

Status
Niet open voor verdere reacties.

Peetbeest

Gebruiker
Lid geworden
1 mei 2013
Berichten
44
Ik ben een database aan het maken waar nogal wat foto's in moeten. Daarom heb ik er voor gekozen de foto's te koppelen.
Het is me gelukt dit te realiseren in een enkelvoudig formulier, maar wanneer ik een doorlopend formulier maak krijg ik in elke record dezelfde foto. Kan iemand me helpen om in een doorlopend formulier in elke record de juiste foto te krijgen.

Alvast hartelijk bedankt,
Dirk.

Code:
Private Sub Form_Current()
    If Not Me.Cover & "" = "" Then
        Me.imgCover.Picture = CurrentProject.Path & "\Foto's\" & Me.Cover
    Else
        Me.imgCover.Picture = ""
    End If
End Sub
 
Form_current kijkt alleen naar het actieve record dat je selecteert. Een object op een formulier is per definitie ook maar één object, dat op een doorlopend formulier alleen maar herhaald wordt. Dus zo gek is het niet dat je altijd dezelfde afbeelding te zien krijgt, want die afbeelding staat in één object dat hooguit verschillende keren herhaald wordt. Er is dus maar 1 oplossing te bedenken (behalve de beste: niet doen!) en dat is meerdere foto-objecten op je formulier te zetten, en die te vullen met verschillende foto's. Uiteraard in een enkelvoudig formulier, want wat schiet je er mee op om die te herhalen?
 
Beste Michel,

Het gaat om subformulieren. Met een bijlage gaat het perfect. Ik krijg een foto van elke acteur die in een bepaalde film meespeelt, en andersom, de verschillende films waarin een bepaalde acteur meespeelt. Alleen wordt de database op deze manier ontzettend groot en traag.
Kan ik geen andere opdracht geven dan Form_current? De andere gegevens van de verschillende acteurs worden perfect geladen; Naam, gespeelde Rol, enz. Alleen zien de acteurs er momenteel allemaal hetzelfde uit. Kan ik geen opdracht geven zodat de foto van elke subreccord appart wordt geladen?
Als het echt niet mogelijk is kan ik met een bijlage blijven werken of de foto's in de subformulieren weglaten. Meerdere foto-objecten op een enkelvoudig formulier lijkt me in mijn toepassing niet echt interessant, of ik begrijp niet goed wat je bedoelt.

Alvast bedankt voor je reactie Michel,
Dirk.
 
Met een bijlage gaat het perfect. ... Alleen wordt de database op deze manier ontzettend groot en traag.
Dat is een andere werkwijze, die vergelijkbaar is met gewone (tekst)velden. Dan zie je dus in het formulierobject wél bij elk record terug wat er in de tabel is opgeslagen. Met als groot nadeel dat de db enorm snel volloopt. En daarom raden we dat dus af op deze manier.
Zodra je een niet-afhankelijk object op je (doorlopend) formulier zet, wordt dat object maar met één waarde gevuld. En dat doe je nu dus. In een enkelvoudig formulier is dat prima, want je maakt één object en je ziet dat object maar 1 keer. Op een doorlopend formulier waarin je bijvoorbeeld 12 records ziet, wordt het object 12 keer 'gekopieerd', en zie je 12 keer hetzelfde. Er is dan ook geen enkele code of procedureplek te vinden die dat probleem oplost. Hoeft ook niet, want als je zo nodig de foto's wilt zien, dan kun je een rapport maken waarin je dit probleem wél kunt oplossen. In een rapport gebeurt hetzelfde (herhaling van objecten) maar een rapport kan in de Details sectie met de gebeurtenis Private Sub Details_Format(Cancel As Integer, FormatCount As Integer). Hier zou je dezelfde code kunnen zetten, en dan zul je zien dat je wél de juiste foto's te zien krijgt.
Een tussenoplossing zou kunnen zijn om kleine thumbnails te maken van de echte foto's en die dan wél op te slaan in een bijlageveld. En met (dubbel)klik op die thumbnail open je dan een apart formulier waarin je de complete foto laat zien. Dat is dan weer een enkelvoudig formulier, dus dat werkt dan weer perfect. Zelf gebruik ik die constructie ook wel eens.
 
Kan iemand me helpen om in een doorlopend formulier in elke record de juiste foto te krijgen

Als je Access 2007 of hoger gebruikt gaat dat heel gemakkelijk met een image-control. Bekijk maar eens goed de eigenschappen!
 
Harry46,
Ik gebruik Access 2010 en maak gebruik van een image-control. Ik heb verschillende instellingen geprobeerd, zonder resultaat. Met welke specifieke eigenschap kan ik volgens jou het gewenste resultaat krijgen??
Alvast bedankt voor je antwoord,
Dirk.
 
Dirk,
Bij de eigenschappen van het image-object vind je onder het tabblad Gegevens (Data), de besturingselementbron (Control source)
Zet hier het veld dat het volledige pad en naam bevat van de afbeelding. Bevat het veld alleen maar de naam dan moet je nog iets toevoegen.
Bij de besturingselementbron vul je dan in (op basis van gegevens uit jouw startvraag) =[Path] & "\Foto's\" & [Cover]
Hoewel het in dit geval geen problemen zal opleveren zou ik ervoor kiezen om geen aanhalingstekens te gebruiken in een map naam, dus beter bv Fotos i.p.v. Foto's.
 
Mag in 2007 dan wel werken, in 2013 niet meer :). Een Image control blijft namelijk echt wel één los object. Afbeeldingen laten zien werkt volgens alleen maar als je ze opslaat als object in de db. Niet met een padverwijzing. Ik zou zeggen: boter bij de vis en een werkend voorbeeld :).
 
Ik heb gevonden wat ik zocht. Harry46 heeft me in de goede richting geduwd, ook al werkte zijn wijze bij mij in Access 2010 niet volledig. Bij de besturingselementbron kon ik de padverwijzing niet opbouwen.
Ik heb dan de Query een extra veld "Koppeling" laten maken waarin het volledige pad werd opgebouwd zodat ik niet zelf alle namen van de foto's moest wijzigen in de verschillende padverwijzingen: "Koppeling: "D:\Films_Database\Fotos\" & [Foto] & ".JPG"". Bij de besturingselementbron heb ik dan verwezen naar het veld Koppeling (= Koppeling). Dit werkt perfect.
Hartelijk bedankt Harry46 en Michel, jullie hebben me hier serieus mee geholpen. M'n db is gekrompen van een 200MB naar 1,8MB (zonder comprimeren). De vraag is natuurlijk of dit in een latere versie van Access zal blijven werken, voorlopig blijf ik nog bij 2010.
Bedankt.
 
Zou ik zeker doen, want in 2013 is het echt niet werkend te krijgen :) Maak eens een voorbeeldje, want dan wil ik wel eens zien wat hij bij mij doet.
 
Laatst bewerkt:
Dirk,
Het image object is sinds versie 2007 dus een gebonden object, vandaar dat het werkt in doorlopende formulieren maar ook in rapporten. Dat is dus een verandering t.o.v. eerdere versies.
Het werkt dus ook in versie 2013!
 
Ik weet dat het een gebonden object kan zijn, maar als je dat koppelt aan een tekstveld met een padverwijzing, dan zie ik toch echt niks. In 2010 trouwens ook niet. Dus dan wil ik wel eens een werkend voorbeeld van iemand zien! Ik beschouw mezelf namelijk als handig genoeg om iets werkend te krijgen als het met de standaard mogelijkheden te doen is :). En dit lukt mij toch echt niet... En ik wil dus ook graag technieken bijleren!
 
Michel,
Ik heb 4 films in de tabellen laten zitten en de belangrijkste meespelende acteurs. Op deze manier kan je zien wat ik gefabriceerd heb.
 

Bijlagen

Ik trek alles terug wat ik in bericht #13 heb gezet, want bij mij deed-ie het eigenlijk ook al prima. Vette typfout :o
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan