Opgelost Foto / logo op frm en rpt

Dit topic is als opgelost gemarkeerd

Jacobusje

Gebruiker
Lid geworden
15 apr 2021
Berichten
89
Goedenavond,

Nog even een vraag bij het sluiten van het jaar.
Antwoord hoeft niet meer dit jaar :)

Ik ben bezig een database te bouwen voor het beheer van molens (ouderwetse windmolens).
Omdat dit voor verschillende molens gebruikt kan worden heb ik een tabel gemaakt met algemene data, bijv. naam molen, de plaats waar de molen staat e.d.
In deze tabel kan maar 1 record worden gevuld, een record toevoegen is in het formulier geblokkeerd.
Met onderstaande code laat ik bepaalde gegevens terugkomen op formulieren en rapporten, dat gaat prima.

Code:
="Molen :   " & (DFirst("[NaamEigenMolen]";"[TBL_Data]")) & ", " & (DFirst("[Woonplaats]";"[TBL_Data]"))

Nu ben ik aan het stoeien om op dezelfde wijze een foto/logo op een formulier of rapport te krijgen in jpg-formaat.
Dit omdat verschillende gebruikers dan niet in de code hoeven te duiken.
Ik had in de tabel TBL_Data een veld toegevoegd met de eigenschappen OLE-object.
Daarmee lukt het me überhaupt niet om een foto in te voegen, laat staan die op een formulier op te roepen.

Hoe kan ik dit voor elkaar krijgen?
 
Ik had in de tabel TBL_Data een veld toegevoegd met de eigenschappen OLE-object. Daarmee lukt het me überhaupt niet om een foto in te voegen, laat staan die op een formulier op te roepen.
Héle slechte oplossing (maar dan ook écht een héél slechte, als je het mij vraagt). Ik gebruik nooit bijlage velden omdat ze de database veel te groot maken. Ik maak altijd een aparte map aan in de map waar de db staat, en zet daar de afbeeldingen. In d# tabel heb ik dan een tekstveld waarin ik de naam van de afbeelding op sla. Vervolgens maak ik op het formulier een Image control, dat ik koppel aan het tekstveld dat de naam van de afbeelding bevat.
Overigens snap ik niks van je opzet; waarom maar één record? Makes no sense whatsoever! Databases zijn júist bedoeld om gegevens van meerdere objecten (records dus, in jouw geval molens) op te slaan. En het formulier laat die gegevens zien als je door de tabel bladert.
 
Je kunt hiervoor een veld van het gegevenstype "Bijlage" gebruiken. Als je in de hele database maar één afbeelding opslaat is dat geen probleem en de makkelijkste oplossing. Worden er meer afbeeldingen opgeslagen, dan kan de database inderdaad "exploderen" en kan je beter de oplossing die OctaFish aandraagt toepassen.
 
Dag,

Bedankt voor jullie reactie.

Het ligt iets anders, de database wordt niet gebruikt om alle molens in bij te houden, daar hebben we https://www.molendatabase.nl/ al voor.
Als de database klaar is kan die worden verspreid en door de betreffende molenaar voor "zijn" molen worden gevuld.
Dus elke keer als een molenaar een database begin te vullen zet hij onder de knop "Algemene gegevens" de gegevens van zijn eigen molen.
Die komen dan vanzelf weer terug op de formulieren en rapporten, dus een logo zou dat nog meer verfraaien.

Bij de invoer algemene gegevens heb ik nu 2 velden bijgemaakt.
Die krijg echter niet goed gekoppeld.
Als ik bij de afbeelding onder gegevens / besturingselementbron de koppeling naar de algemene gegevens maak is de afbeelding verdwenen.

Bij de afbeelding die nu op het beginformulier staat heb ik wel een koppeling, te weten "D:\Molenaar\Logo\LogoMolen.png" dat is echter een koppeling direct naar de D-schijf. Dan zou iedere gebruiker dezelfde mapstructuur en bestandsnamen moeten gebruiken.
Als ik het goed heb begrepen is dat niet de bedoeling.

Omdat dit voor mij nieuw is zie ik waarschijnlijk wat over het hoofd.
Wat is de werkwijze om de koppeling juist te maken?

Bijgaan de uitgeklede database.
Let niet op hoe het er uit ziet, dat moet allemaal nog worden uitgelijnd.
 

Bijlagen

  • Molenaar_kopie.zip
    119,6 KB · Weergaven: 4
Zoiets dan (ik heb maar een van de twee gedaan)?
 

Bijlagen

  • Molenaar_ps.zip
    127,1 KB · Weergaven: 1
Dan zou iedere gebruiker dezelfde mapstructuur en bestandsnamen moeten gebruiken. Als ik het goed heb begrepen is dat niet de bedoeling.
Dat zie je verkeerd. Zorg ervoor dat de afbeelding in dezelfde map als de database staat, en je kunt de afbeelding met een standaard eigenschap inlezen. Dat is dan iets als:
Code:
Me.Logo.Picture = Me.CurrentProject.Path & “\LogoMolen.png”
Dit is nog niet getest in de db (zit op een iPad) maar dit is wel de aangewezen weg. Iedereen zeg dus de afbeelding in de map met de database, en je bent klaar.
 
Bij beiden lukt het me niet.

Peter,
Er staat op het startformulier wel een molenplaatje, maar dat plaatje heb ik niet in de map van de database staan.
Bij de algemene gegevens staat bij "Logo molen" een 1, deze kan ik niet aanpassen of verwijderen.
Bij de query die nu aan het formulier hangt zie ik wel LogoMolen.FileData, LogoMolen.FileName en LogoMolen.FileType. Hoe dit hier in is gekomen is mij een groot raadsel.
LogoMolen.FileData is gekozen bij het plaatje.
Hoe kan een gebruiker nu een ander plaatje/logo kiezen?

OctaFish,
Dit is nu bij mij de code:
Code:
Private Sub Form_Load()
Me.Afb2.Picture = Me.CurrentProject.Path & “ \ Molen.png”
End Sub

Die loopt vast bij "Me.CurrentProject" en krijg de melding: Kan de methode of het gegevenslid niet vinden.
 
Het plaatje hoeft niet in die map te staan omdat het in de database is opgeslagen.

Ik heb een recordbron aan het startformulier gehangen, zodat het molenlogo beschikbaar is om op het formulier te tonen; niks raadselachtigs aan.

Om de gebruiker het logo te laten wijzigen, voeg je het veld LogoMolen toe aan het formulier FRM_Data. Een rechterklik op hat veld geeft:
molen.jpg
Een kind kan verder de was doen.
 
Bij de query die nu aan het formulier hangt zie ik wel LogoMolen.FileData, LogoMolen.FileName en LogoMolen.FileType. Hoe dit hier in is gekomen is mij een groot raadsel.
Een bijlage veld is eigenlijk een verborgen (interne) tabel die van het opgeslagen object een aantal eigenschappen opslaat. Zoals .FileData, .FileName en .FileType. In een query kun je ervoor kiezen om die in een query te bekijken. Op een formulier gebruik je het ‘hogere’ niveau, het object zelf dus. Zoals Peter al laat zien.
Mijn code is alleen geschikt voor afbeeldingen die buiten de database worden opgeslagen. Wat, ondanks wat Peter zegt, de beste optie is.
 
Mooi, daar wordt het wat duidelijker van.
Maar, bij mij komt er niets tevoorschijn als ik op r.m.k. klik.

Wat zou ik moeten aanpassen in "Me.CurrentProject" om de foutmelding kwijt te raken?
 
Als je database een beetje klopt met de situatie (ik heb ‘m nog niet bekeken) dan zet ik de code er wel even in.
 
Laten we maar proberen de code goed te krijgen, dan kan het wellicht zonder "bijlagen"

De database klopt al aardig, wil nog wel een en ander uitbreiden, momenteel ben ik helpvensters aan het maken.
 
En (paar minuten later) e.e.a. is denk ik opgelost zoals ik het zou doen: een plaatje in dezelfde map als de database, en de (juiste) code om e.e.a. op het formulier te zetten. Ik had daar een klein foutje in gemaakt, zoals je ongetwijfeld gaat zien :).
 

Bijlagen

  • Molenaar.zip
    158,4 KB · Weergaven: 1
Dit vind ik wel een mooie oplossing, dan kan je bij de data een keuze maken welke foto naar voren moet komen.

Bedankt voor het meehelpen en meedenken, klasse.
 
Komt nog wat extra's bij, want ik was toch bezig: een routine waarmee je een foto kan inlezen in het tekstveld. Die afbeelding mag overal staan; hij wordt door de routine naar de juiste map gekopieerd. Je doet dat door op het formulier "Algemene gegevens" op het veld [Logo Molen] te klikken. Je krijgt dan een dialoogvenster waarmee je een afbeelding kan selecteren. En die verschijnt dan op het formulier en in de tabel.
 

Bijlagen

  • Molenaar.zip
    789 KB · Weergaven: 6
Goedemorgen,

Dat is een mooie uitbreiding.
Ik had toch meer veranderd in het origineel dan gedacht. :rolleyes:
Maar, na een uurtje heb ik alles weer goed staan.

Bedankt.
 
Terug
Bovenaan Onderaan