Foto database probleem

Status
Niet open voor verdere reacties.

Ewergreen

Gebruiker
Lid geworden
15 mrt 2008
Berichten
273
Goedemorgen iedereen. Er zijn op het internet een aantal relatief leuke programma's te vinden die doen wat ik wil, maar geen enkele is fatsoenlijk aan te passen, of doet ECHT wat ik er van verwacht. Daarom nog maar eens voor de moeilijkste weg gekozen. Bovendien ben ik overtuigd dat het een nuttige oefening kan zijn voor meer mensen.

Uiteraard stoot je dan met beperkte VBA kennis meteen op problemen. Kortom:
ik krijg mijn foto's niet geladen.

De bedoeling is dat ik alle foto's op mijn HD, momenteel een 1000-tal (1036 om precies te zijn) eens mooi kan ordenen. Ik heb nog veel meer foto's, die ik allemaal zou willen toevoegen, maar pas nadat ik deze op orde heb.

Eerst wil ik de foto's allemaal toevoegen, dan wil ik de "eigenschappen" toevoegen en dan wil ik via query's eindelijk een overzicht scheppen.
 

Bijlagen

De 1e fout krijg je bij het openen van het formulier. Dat komt omdat er wordt gezocht naar een label met de naam "ErrorMsg". Deze ontbreekt nog op je formulier. Voeg deze nog toe. Dit label wordt aangeroepen in het rode gedeelte van onderstaande code:

Code:
Private Sub Form_Current()
    ' De foto voor de huidige record weergeven als de
    ' foto aanwezig is. Als de bestandsnaam niet meer bestaat of
    ' als er geen bestandsnaam was ingevuld, stelt u het bijschrift
    ' voor de label errormsg in op het juiste bericht.
    Dim res As Boolean
    Dim fName As String
    
    path = CurrentProject.path
    On Error Resume Next
        [COLOR="red"]ErrorMsg[/COLOR].Visible = False
        If Not IsNull(Me![Foto]) Then
            res = IsRelative(Me![Foto])
            fName = Me![ImagePath]
            If (res = True) Then
                fName = path & "\" & fName
            End If
            
            Me![ImageFrame].Picture = fName
            showImageFrame
            Me.PaintPalette = Me![ImageFrame].ObjectPalette
            If (Me![ImageFrame].Picture <> fName) Then
                hideImageFrame
                [COLOR="red"]ErrorMsg[/COLOR].Caption = "Foto niet gevonden"
                [COLOR="red"]ErrorMsg[/COLOR].Visible = True
            End If
        Else
            hideImageFrame
            [COLOR="Red"]ErrorMsg[/COLOR].Caption = "Geen foto aanwezig"
            [COLOR="red"]ErrorMsg[/COLOR].Visible = True
        End If

End Sub

Verder ontbreekt er nog een verwijzing in de VBE (Visual Basic Editor). Open deze met "Alt+F11". Ga naar menu "Extra" ---> "Verwijzingen". Scroll naar "Microsoft Office 12.0 Object Library" en vink deze aan.

mvg
Charles
 
Soms is het echt zo makkelijk als het groot is :)

Bedankt voor de opmerkingen, ik ben al iets verder!

EDIT:

Oh! Hij geeft toch nog een probleem als ik effectief een foto wens toe te voegen.

Runtime error 2465: MsOffice can't find the 'ImagePath' referred to bla bla. Iemand?

Nieuwe mdb in bijlage.
 

Bijlagen

Laatst bewerkt:
Runtime error 2465: MsOffice can't find the 'ImagePath' referred to bla bla

Wat ongeveer wil zeggen: "MS Office kan het veld 'ImagePath' niet vinden (Ik kan dat veld dus ook niet vinden in je formulier). En wel in de navolgende code rode tekst: Volgens mij mis je nog de blauwe tekst in je code!

Code:
Sub getFileName()
    ' Geeft het Office-dialoogvenster Bestand openen weer van
    ' waaruit een fotobestand voor de huidige medewerkersrecord
    ' kan worden gekozen. Het geselecteerde bestand wordt in het
    ' besturingselement voor afbeeldingen weergegeven.
    Dim fileName As String
    Dim result As Integer
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Foto selecteren"
        .Filters.Add "Alle bestanden", "*.*"
        .Filters.Add "JPEGs", "*.jpg"
        .Filters.Add "Bitmaps", "*.bmp"
        .FilterIndex = 3
        .AllowMultiSelect = False
        .InitialFileName = CurrentProject.path
        result = .Show
        If (result <> 0) Then
            fileName = Trim(.SelectedItems.Item(1))
            [COLOR="Red"]Me![ImagePath][/COLOR].Visible = True
            [COLOR="red"]Me![ImagePath][/COLOR].SetFocus
            [COLOR="red"]Me![ImagePath][/COLOR].Text = fileName
            Me.Codenummer.SetFocus
        [COLOR="Blue"]Else[/COLOR]   
            [COLOR="red"]Me![ImagePath][/COLOR].Visible = False
        End If
    End With
End Sub

mvg
Charles
 
Charles, weer bedankt voor je uitleg. Helaas volg ik deze keer minder goed. Ik heb links en rechts een aanpassing gedaan, maar zonder al teveel succes. Althans, zonder op nieuwe foutmeldingen te stoten.

Deze keer werd het: "object doesn't support this object or method". Je mag gerust een werkend voorbeeldje uploaden :p
 
Als ik zo naar de code kijk, dan heb je dit al uit een voorbeeldje overgenomen.

Als je dit probleem hebt opgelost, dan dient de volgende zich aan. In je code wordt ook nog verwezen naar een veld met de naam foto. Ook dit veld komt in je formulier niet voor.

Welke problemen er daarna nog komen, weet ik niet. Het is niet de bedoeling dat ik het voor jou ga maken. Je zult het echt zelf moeten doen. Probeer dus nog eens goed naar je voorbeeld te kijken, alvorens je het gaat nabouwen.

Succes

Charles
 
Klopt volledig. Ik ben ondertussen weer iets verder. Maar ik blijf links en recht probleempjes ondervinden. Niets dat niet opgelost kan worden, soms is het gewoon makkelijk om een helpende hand te hebben die er meer van weet. Ik knutsel verder en we zien wel wat er komt :)

EDIT: Zoals gezegd kom ik er zelf ook wel, alleen véél trager en vaak met de nodige frustratie. Het is vaak makkelijker om terug te vallen op iemand met iets meer ervaring dan zelf het wiel voor de 100ste keer uit te vinden. In ieder geval, mijn foto's worden mooi geladen en alles begint er uit te zien zoals ik het wens. Ben nu aan het proberen om de foto's zichtbaar te krijgen in het veld. Nu komen ze er op ware grote in, maar dan zie ik enkel de linkerbovenhoek :)...

Toch hartelijk bedankt voor de eerste hulp Bakk4318, zeker bij het VBA gedeelte moet ik vaak prutsen. Als dan iemand er eens naar kan kijken en zeggen: "daar moet ELSE" tussen, dan is het plezant dat je wat tijd bespaart met zoiets stoms :).
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan