foto's weergeven op formulier

Status
Niet open voor verdere reacties.

accesserik

Gebruiker
Lid geworden
16 mei 2007
Berichten
15
Ik heb een database gemaakt van een kaartverzameling die ik heb en heb de foto's van de kaarten als ole-object opgeslagen in een tabel waardoor ze op een formulier te zien zijn in het betreffende record. Nu is het echter zo dat de database gigantisch groot wordt. Ik ben dus op zoek naar een mogelijkheid om de foto's weer te geven in een formulier, eventueel door middel van bijvoorbeeld een link naar een bestand op mijn harde schijf. Is er misschien iemand die hiermee ervaring heeft en mij hiermee kan helpen?
 
Hallo accesserik,

onderwerp is vaker besproken, pas geleden zelfs nog.
Kwestie van even zoeken.

Groet,

Tardis
 
Ik heb op dit forum een link gevonden (http://support.microsoft.com/kb/285820/nl) voor mijn zoektocht maar nu rest mij een andere vraag, ik heb de mapnaam (waar de foto'instaat) en de fotonaam in twee verschillende tabellen staan. Hoe kan ik de module van de link aanpassen zodat automatisch de goede foto uit de goede map in de niet-afhankelijke afbeeldingslijst kan zetten. Ik wil namelijk in de module een link zetten naar de verzamelmap waar alle verschillende mappen met foto's staan en deze laten selecteren met behulp van de tabellen.

Heeft hier misschien iemand een antwoord op of weet waar ik kan zoeken en waarop???
 
Laatst bewerkt:
Code:
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    
    sFoto = CurrentProject.Path & "\Foto's" & Foto_in_Tabel & ".jpg"
    
    If objFSO.FileExists(sFoto) = True Then
        Me.Foto.Picture = sFoto
    Else
        Me.Foto.Picture = Empty
    End If

De variabele sFoto bevat het pad naar een .jpg bestand.

Stel dat je accessdatabase in D:\WerkMap staat, variabele sFoto wordt dan D:\WerkMap\Foto's\?????.jpg
Daar waar in de code Foto_in_Tabel staat moet dus een verwijzing komen naar de naam van het .jpg bestand, eventueel haal je dit op uit een tabel.

Succes,
Erik
 
Code:
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    
    sFoto = CurrentProject.Path & "\Foto's" & Foto_in_Tabel & ".jpg"
    
    If objFSO.FileExists(sFoto) = True Then
        Me.Foto.Picture = sFoto
    Else
        Me.Foto.Picture = Empty
    End If

De variabele sFoto bevat het pad naar een .jpg bestand.

Stel dat je accessdatabase in D:\WerkMap staat, variabele sFoto wordt dan D:\WerkMap\Foto's\?????.jpg
Daar waar in de code Foto_in_Tabel staat moet dus een verwijzing komen naar de naam van het .jpg bestand, eventueel haal je dit op uit een tabel.

Succes,
Erik

Bedankt voor je hulp alvast. Rest mij alleen nog de vraag waar ik de bovenstaande formule precies moet neerzetten, in een aparte module of misschien de programmacode (in het dropdownmenu Beeld)? En hoe moet ik de verwijzing vaar de tabel benoemen: gewoon met de naam van de tabel op de plek in de formule of heeft dit een aparte programeercode?
 
Laatst bewerkt:
Ik denk dat hiervoor een doorlopend formulier wel geschikt is.

Je kunt de tabel als bron aan je formulier hangen. Maak een 'hidden' veld waaraan je het veld met de naam koppelt, en een 'Afbeelding'-veld waar de foto in komt.

Code:
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    
    sFoto = CurrentProject.Path & "\Foto's" & Me.hiddenVeld & ".jpg"
    
    If objFSO.FileExists(sFoto) = True Then
        Me.Foto.Picture = sFoto
    Else
        Me.Foto.Picture = Empty
    End If
 
Laatst bewerkt:
Iedere keer als ik de bovenstaande code gebruik krijg ik of een verwijzing naar een niet bestaande macro of een messageboz met het bericht buiten procedure. Dus niet goed.
Iemand die weet hoe ik dit nog meer kan aanpakken???
 
Heb je de code letterlijk overgenomen ? Zo ja, is er een veld hiddenVeld.

sFoto = CurrentProject.Path & "\Foto's" & Me.hiddenVeld.Value & ".jpg"

Mogelijk dat hier nog een probleem mee is, zie rode tekst in code.
 
Ik blijf maar dit bericht krijgen: Compileerfout: ongeldig buiten procedure (met Set in de eerste regel blauw aangetekend) Iemand een idee...
 
Ik blijf maar dit bericht krijgen: Compileerfout: ongeldig buiten procedure (met Set in de eerste regel blauw aangetekend) Iemand een idee nog?

Even voor de duidelijkheid:

Ik heb een afbeeldingsvak genaamd "Imageframe" op mijn formulier.
Het fotobestand staat in: C:\Documents and Settings\Jacqueline\Mijn documenten\Erik\Microsoft Access\Star Trek CCG Library (Decipher)\Premiere set\naam fotobestand en in twee tabellen staat een gedeelte van het bestandspad vermeld dat iedere keer anders kan zijn namelijk:
een tabel met de naam van de set waartoe de foto hoort bijvoorbeeld "Premiere set"
een tabel met de naam van het fotobestand.

Het is dus de vraag hoe ik dit in de code moet vermelden, of dit de programmacode van het afbeeldingsvak moet zijn en of ik nog een speciale module hiervoor moet schrijven.
Hopelijk verduidelijkt de situatie zich zo
 
Laatst bewerkt:
Erik,

Je .mdb file staat dus niet ergens in de Mijn documenten map.

De variabele sFoto wordt dan :

Code:
sFoto = "C:\Documents and Settings\Jacqueline\Mijn documenten\Erik\Microsoft Access\Star Trek CCG Library (Decipher)\Premiere set\" & Me.hiddenVeld & ".jpg"

Groet,
Erik
 
Helaas nog geen succes, kan het zijn dat ik het afbeeldingveld in het formulier een andere naam moet geven i.p.v. ImageFrame? Tevens geeft de foutmelding nog steeds aan dat ik "Set" niet kan gebruiken omdat (volgens de help) de instructie moet verschijnen binnen een instructie Sub of Function, of binnen een eigenschapprocedure (Property Get, Property Let, Property Set). HELP!
 
In m'n code wordt het afbeeldingsveld aangegeven met Me.Foto, vervang dit eens door Me.ImageFrame .
 
Het woord Set in de code blijft blauw gekleurd en geeft de foutmelding Compileerfout: ongeldig buiten procedure
 
Hallo accesserik,

open je toepassing.
Toets de toetskombinatie ALT F11 in.
Dit opent het Miscroft Visual Basic editor scherm.
Kies in de menubalk voor Extra -> Verwijzingen.
Vink deze verwijzing aan:

Microsoft Scripting Runtime

en probeer het nog eens.

Groet,

Tardis
 
Bedankt voor de tip Tardis maar helaas geeft hij deze melding:
"De expressie Bij aangeven die u hebt opgegeven als instelling voor de gebeurteniseigenschap, heeft de volgende fout veroorzaakt:
* de expressie geeft niet de naam van een macro, de naam van een door de gebruiker gedefinieerde functie of een [gebeurteniseigenschap] als resultaat.
* er is een fout opgetreden bij het evalueren van een functie, gebeurtenis of macro."

Ik heb nu dus alleen maar de bovenstaande code in de programmacode van het formulier staan. Is er misschien nog iets wat ik op een andere plek (zoals een module of zo) moet vermelden.
 
Hallo accesserik,

je moet de code invullen in de VBA editor (Microsoft Viual Basic scherm), niet in de eigenschap zelf.
Kies je gebeurtenis, haal alles weg wat daar staat.
Kikik nu op het ikoontje met de dropdown list, kies Gebeurtenis.
Klik daarna op het ikoontje met de puntjes.
Nu wordt het Microsoft Visual Basic editor scherm geopend.
Zet daar je code neer bij de juiste gebeurtenis.

Groet,

Tardis
 
Hallo accesserik,

je moet de code invullen in de VBA editor (Microsoft Viual Basic scherm), niet in de eigenschap zelf.
Kies je gebeurtenis, haal alles weg wat daar staat.
Kikik nu op het ikoontje met de dropdown list, kies Gebeurtenis.
Klik daarna op het ikoontje met de puntjes.
Nu wordt het Microsoft Visual Basic editor scherm geopend.
Zet daar je code neer bij de juiste gebeurtenis.

Groet,

Tardis

Tardis, misschien kun je me stap voor stap er doorheen leiden want het lukt me niet.
Ik begin in de ontwerpweergave van het formulier, en dan?
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan