Reletieve pad opnemen in Access

Status
Niet open voor verdere reacties.

Plotinus

Gebruiker
Lid geworden
25 mrt 2007
Berichten
659
Ik heb een database met inmiddels redelijk wat formulieren en rapporten. Daarin zitten afbeeldingen die ik buiten de database hou in een aparte directory en met een relatief pad (ik weet niet of dat de goede term is trouwens) in VBA en met de namen van de afbeeldingen in de betreffende tabel, ophaal. Nu zou ik dat ook graag doen met mijn logo in de de Formulierkoptekst. Het lukt wel een afbeelding te koppelen, maar klaarblijkelijk enkel absoluut, bijvoorbeeld: C:\Mijn documenten\Access\naam database\Afbeeldingen\logo.jpg. Ik zou echter liever zoiets willen hebben als : ..\naam database\Afbeeldingen\logo.jpg. Het zou me eens stuk flexibeler maken.
Iemand een idee hoe dit aan te pakken?
 
Door de afbeelding niet Ingesloten te maken bij <Afbeeldingstype> maar Gekoppeld. Je term Relatief is overigens correct; de tegenhanger hier is absoluut. En dat is dus wat je nu met je logo hebt gedaan.
 
Ik heb de afbeelding/logo inderdaad gekoppeld, maar moet bij 'Afbeelding' een absoluut pad opgeven C:\Mijn documenten\Access\naam database\Afbeeldingen\logo.jpg). En dat is nu juist wat ik wil vermijden. Ik heb o. a. geprobeerd: ..\Afbeeldingen\logo.jpg, zoals o.a. in websites gangbaar, waarbij de verschillende onderdelen een vaste plaats ten opzichte van elkaar hebben. Voor mijn afbeeldingen/pasfoto's in het formulier heb ik het volgende gecomponeerd, wat prima werkt:
Code:
Private Sub Form_Current()
    If k_Pasfoto <> " " Then
        AfbeeldingPasfoto.Picture = CurrentProject.Path & "\Pasfoto\" & k_Pasfoto
    Else
        AfbeeldingPasfoto.Picture = CurrentProject.Path & "\Pasfoto\GeenAfbeelding.png"
    End If
End Sub
Maar voor mijn Formulierkoptekst heb ik geen tabel waaruit ik kan vissen.
 
Ik snap je probleem niet helemaal; als je een afbeelding op een formulier zet dan krijg je inderdaad in eerste instantie een ingesloten object, maar als je daarna het Afbeeldingstype instelt op Gekoppeld, dan verdwijnt de afbeelding. En dan kun je de afbeelding laden met VBA. Zoals je nu ook doet. Al is de naam van het logo neem ik aan een vaste naam, dus dat is alleen maar makkelijker.
 
Ja dat was me inmiddels ook beginnen te dagen, maar het lukt nog niet, maar gaat wel lukken.
 
Misschien moet je een ander object gebruiken voor de afbeelding; er zijn verschillende opties namelijk. Ik zou het doen met de knop <Afbeelding>.
 
Ik heb de bovenstaande code als volg gewijzigd:
Code:
Private Sub Form_Current()
    If Logo.Picture = " " Then Logo.Picture = CurrentProject.Path & "\Logo\LOGO.png"
    If k_Pasfoto <> " " Then
        AfbeeldingPasfoto.Picture = CurrentProject.Path & "\Pasfoto\" & k_Pasfoto
    Else
        AfbeeldingPasfoto.Picture = CurrentProject.Path & "\Pasfoto\GeenAfbeelding.png"
        Logo.Picture = CurrentProject.Path & "\Logo\LOGO.png"
    End If
End Sub
De omvang van de database loopt nu enorm op. Het lijkt erop dat bij het bladeren in de databse het logo steeds opnieuw wordt opgehaald (zie bijlage), ook als ie het niet mag doen (de eerste If..then-constructie) en bij het opslaan mee wordt opgeslagen. Ook enkel bij het openen wordt het logo opgehaald en weer opgeslagen. Een idee hoe dit is op te lossen?
 

Bijlagen

  • voobeeldje.jpg
    voobeeldje.jpg
    93,3 KB · Weergaven: 52
Je zet een spatie in de code. Dat is sowieso fout.
 
Dit werkt perfect:

Code:
Private Sub Form_Current()
    If Logo.Picture = "(Geen)" Then Logo.Picture = CurrentProject.Path & "\Logo\LOGO.png"
    If k_Pasfoto <> " " Then
        AfbeeldingPasfoto.Picture = CurrentProject.Path & "\Pasfoto\" & k_Pasfoto
    Else
        AfbeeldingPasfoto.Picture = CurrentProject.Path & "\Pasfoto\GeenAfbeelding.png"
    End If
End Sub

Ik weet niet welke spaties je bedoelt? Misschien gaat het nu toevallig goed; ik hoor graag wat ik beter/veiliger kan doen.
 
Code:
If k_Pasfoto <> " " Then
Daar zit toch echt een spatie in...
En je had er ook een in
Code:
If Logo.Picture = " " Then
maar die heb je weggehaald.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan