Helpmij.nl
Helpmij.nl
Helpmij.nl

Quote

Pagina 1 van 2 1 2 LaatsteLaatste
Weergeven resultaten 1 tot 20 van 25

Onderwerp: fotodatabase met filter en tumbnail

  1. #1
    Vraag is opgelost

    fotodatabase met filter en tumbnail

    Ik probeer een soort fotodatabase te maken. Zie bijgesloten voorbeeld met fantasienamen.
    Ben geen programeur, probeer alleen een database te maken en beheren voor een archief.

    Heb tabel met gegevens.
    Bij foto_frm komt de lijst met foto (met gegegevens) met erachter een klein voorbeeld van de foto's
    Nu wilde ik op de foto's kunnen filteren, maar ... foutmelding
    Ook wil ik graag op de kleine foto kunnen klikken en deze dan of in een apart formulier in groot formaat kunnen bekijken of apart openen in bv mspaint wat wel op elke windows computer staat.
    Wie kan me verder helpen?
    Bijgevoegde bestanden Bijgevoegde bestanden
    Laatst aangepast door Theo65 : 25 mei 2023 om 22:29

  2. #2
    Tera Honourable Senior Member
    Verenigingslid
    OctaFish's avatar
    Geregistreerd
    6 februari 2009
    Locatie
    Rotterdam
    Ik heb je code even teruggebracht tot het noodzakelijke, dan zijn in ieder geval alle fouten er uit. Dan krijg je dit:
    Code:
    Private Sub Tumbnail_Click()
        Paint_OpenImage Me.Tumbnail.Picture
    End Sub

    Code:
    Function Paint_OpenImage(Optional sImg As String, Optional lWindowStyle As VbAppWinStyle = vbNormalFocus)
        Shell "MsPaint.exe """ & IIf(sImg = "(Geen)", "", sImg) & """", lWindowStyle
    End Function
    Omdat er geen plaatjes in je db zitten (terecht natuurlijk, afbeeldingen sla je niet op in de database maar in een map erbuiten) kunnen we verder niet veel testen.
    Dat filter probleem moet je even verder toelichten, want zo kan ik er niet veel mee.
    Gebruik de QUOTE knop alleen als je iets wit citeren.
    Op deze pagina kun je zien hoe je met TAGS werkt.

  3. #3
    Tera Honourable Senior Member
    Verenigingslid
    OctaFish's avatar
    Geregistreerd
    6 februari 2009
    Locatie
    Rotterdam
    Wél geconstateerd dat je filter niet correct is opgebouwd, want je baseert hem nu op je zoekvelden, niet op je databasevelden. En dan werkt het natuurlijk niet. Sowieso hou ik niet van dit soort filters, maar zo heb je geen foutmeldingen meer.
    Code:
    Private Sub Knop_Zoek_Foto_Click()
    Dim sFilter As String
        If Me.TxtEigenNr <> "" Then
            sFilter = "EigenNr = " & Me.TxtEigenNr
        Else
            sFilter = "[Omschrijving] Like ""*" & Me.TxtOmschrijving & "*""" & _
            " AND [Soort] Like ""*" & Me.TxtSoort & "*""" & _
            " AND [Tags] Like ""*" & Me.TxtTags & "*""" & _
            " AND [EigenFilter] Like ""*" & Me.TxtEigenFilter & "*""" & _
            " AND [Origineel] Like ""*" & Me.TxtOrigineel & "*""" & _
            " AND [Bron] Like ""*" & Me.TxtBron & "*"""
        End If
    
        If sFilter <> "" Then
            Me.Filter = sFilter
            Me.FilterOn = True
        Else
            Me.Filter = ""
            Me.FilterOn = False
        End If
    End Sub
    Gebruik de QUOTE knop alleen als je iets wit citeren.
    Op deze pagina kun je zien hoe je met TAGS werkt.

  4. #4
    Bedankt OctaFishmm bedankt voor de verbeteringen.
    Echter....
    1. Als ik Filter op bijvoorbeeld omschrijving (bv Slager of Hoekstra), dan lijkt het net of de eerste 5 records niet in de filter zitten.
    Een deel wordt dan wel getoond in de filter mode, maar een aantal regels missen.

    2. De afbeelding opent wel in paint, maar de afbeelding is leeg.
    als ik msgbox sImg doe, dan geeft dat (Geen), dus afbeelding wordt niet doorgegeven aan de function?
    De afbeeldingen staan inderdaad op de schijf. de naam is het EigenNr.jpg dus 1.jpg 2.jpg etc.
    In tabel FotoLoc staat het pad. Ik weet het , het verdiend niet de schoonheidsprijs, maar het werkt en wist geen betere oplossing.
    Je zou het met 10 willekeurige afbeeldingen kunnen testen, als je wilt natuurlijk

  5. #5
    Senior Member
    Geregistreerd
    15 mei 2006
    Theo65,

    Prober deze filter maar eens:

    Code:
    Dim sFilter As String
    
        If Me.TxtEigenNr <> "" Then
            sFilter = "[EigenNR] Like ""*" & Me.TxtEigenNr & "*"" and"
        End If
        If Me.TxtOmschrijving <> "" Then
            sFilter = sFilter & "[Omschrijving] Like ""*" & Me.TxtOmschrijving & "*"" and"
        End If
        If Me.TxtSoort <> "" Then
            sFilter = sFilter & "[Soort] Like ""*" & Me.TxtSoort & "*"" and"
        End If
        If Me.TxtTags <> "" Then
            sFilter = sFilter & "[Tags] Like ""*" & Me.TxtTags & "*"" and"
        End If
        If Me.TxtEigenFilter <> "" Then
            sFilter = sFilter & "[EigenFilter] Like ""*" & Me.TxtEigenFilter & "*"" and"
        End If
        If Me.TxtOrigineel <> "" Then
            sFilter = sFilter & "[Origineel] Like ""*" & Me.TxtOrigineel & "*"" and"
        End If
        If Me.TxtBron <> "" Then
            sFilter = sFilter & "[Bron] Like ""*" & Me.TxtBron & "*"""
        End If
           
    sFilter = Left(sFilter, Len(sFilter) - 4)
        If sFilter <> "" Then
            Me.Filter = sFilter
            Me.FilterOn = True
        Else
            Me.Filter = ""
            Me.FilterOn = False
        End If
    Groetjes,

  6. #6
    De filter werkt prima, dank !

    De foto openen in paint (of evt standaard fotobewerkingsprogramma) werkt helaas niet.
    MSpaint opent wel, maar met leeg scherm.
    Als ik een msgbox Me.Tumbnail.Picture doe, dan zie (geen)

    Ik heb de code beetje aangepast via een variabele en een msgbox toegevoegd om te zien of de waarde daar nog wel goed is.
    Ook dan krijg ik natuurlijk ook weer (geen)

    Code:
    Private Sub Tumbnail_Click()
    Dim OpenImg As String
    OpenImg = Me.Tumbnail.Picture
    MsgBox OpenImg
    
    
        Paint_OpenImage OpenImg
    End Sub
    
    
    Function Paint_OpenImage(Optional sImg As String, Optional lWindowStyle As VbAppWinStyle = vbNormalFocus)
        Shell "MsPaint.exe """ & IIf(sImg = "(Geen)", "", sImg) & """", lWindowStyle
    
    
    End Function
    Ik vermoed dus dat het aan Me.Tumbnail.Picture ligt, maar wat zou ik dan moeten doen?

  7. #7
    Iets verder, met een knop achter de tumbnail lukt het wel met de volgende code.

    Code:
    Private Sub Knop_Paint_Click()
        Dim OpenImg As String
        OpenImg = Forms!Fotos_Frm.PhotoPath
    
    
        Paint_OpenImage OpenImg
        
    End Sub
    
    Function Paint_OpenImage(Optional sImg As String, Optional lWindowStyle As VbAppWinStyle = vbNormalFocus)
    
    
        Shell "MsPaint.exe """ & IIf(sImg = "(Geen)", "", sImg) & """", lWindowStyle
    
    
    End Function
    Gebruik ik Me.Tumbnail.Picture dan krijg ik (geen). Gebruik ik dezelfde code van de knop bij de tumbnail. dan werkt het niet, dan werkt het bij de 1e foto, maar daarna niet meer

  8. #8
    Tera Honourable Senior Member
    Verenigingslid
    OctaFish's avatar
    Geregistreerd
    6 februari 2009
    Locatie
    Rotterdam
    Ik snap niet waarom mensen code maken die fout is, zodat de code in dezelfde procedure moet worden aangepast. Doe het gelijk goed .

    Code:
    Dim sFltr As String
    
    
        If Me.TxtEigenNr <> "" Then sFltr = "[EigenNR] Like ""*" & Me.TxtEigenNr & "*"""
        If Me.TxtOmschrijving <> "" Then
            sFltr = sFltr & IIf(sFltr <> "", " And ", "") & "[Omschrijving] Like ""*" & Me.TxtOmschrijving & "*"""
        End If
        If Me.TxtSoort <> "" Then
            sFltr = sFltr & IIf(sFltr <> "", " And ", "") & "[Soort] Like ""*" & Me.TxtSoort & "*"""
        End If
        If Me.TxtTags <> "" Then
            sFltr = sFltr & IIf(sFltr <> "", " And ", "") & "[Tags] Like ""*" & Me.TxtTags & "*"""
        End If
        If Me.TxtEigenFilter <> "" Then
            sFltr = sFltr & IIf(sFltr <> "", " And ", "") & "[EigenFilter] Like ""*" & Me.TxtEigenFilter & "*"""
        End If
        If Me.TxtOrigineel <> "" Then
            sFltr = sFltr & IIf(sFltr <> "", " And ", "") & "[Origineel] Like ""*" & Me.TxtOrigineel & "*"""
        End If
        If Me.TxtBron <> "" Then
            sFltr = sFltr & IIf(sFltr <> "", " And ", "") & "[Bron] Like ""*" & Me.TxtBron & "*"""
        End If
           
        If sFltr <> "" Then
            Me.Filter = sFltr
            Me.FilterOn = True
        Else
            Me.Filter = ""
            Me.FilterOn = False
        End If

    Je werkwijze kan echt korter:


    Code:
    Private Sub Tumbnail_Click()
        Paint_OpenImage Me.PhotoPath.Value
    End Sub
    
    
    Private Sub Knop_Paint_Click()
        Paint_OpenImage Me.PhotoPath.Value
    End Sub
    
    
    Function Paint_OpenImage(Optional sImg As String, Optional lWindowStyle As VbAppWinStyle = vbNormalFocus)
        Shell "MsPaint.exe """ & IIf(sImg = "(Geen)", "", sImg) & """", lWindowStyle
    End Function
    Als thumbnail (ja, er hoort een 'h; in ) en de knop Paint op het formulier Fotos_Frm staan, kun je beter Me. gebruiken. Sowieso is de punt beter als het uitroepteken, omdat je dan IntelliSense hebt. En waarom zou je jezelf die luxe ontzetten?
    Gebruik de QUOTE knop alleen als je iets wit citeren.
    Op deze pagina kun je zien hoe je met TAGS werkt.

  9. #9
    Heb de h in thumbnail toegevoegd.


    Maar ook bij
    Paint_OpenImage Me.PhotoPath.Value wordt niet de geselecteerde foto weergegeven in paint, maar of de 1e of de laatste geopende via de knop
    Maar het gebruikt het pad niet.

    Zal de laatste versie van het bestand bijvoegen.


    Bijgevoegde bestanden Bijgevoegde bestanden
    Laatst aangepast door Theo65 : 27 mei 2023 om 15:16

  10. #10
    Tera Honourable Senior Member
    Verenigingslid
    OctaFish's avatar
    Geregistreerd
    6 februari 2009
    Locatie
    Rotterdam
    Zal er vanavond naar kijken. Ik hoop dat er plaatjes bij zitten deze keer, ik sta niet te popelen om eerst alles zelf in elkaar te moeten knutselen .
    Gebruik de QUOTE knop alleen als je iets wit citeren.
    Op deze pagina kun je zien hoe je met TAGS werkt.

  11. #11
    Nee zitten geen afbeeldingen bij. Maar je kunt 10 willekeurige afbeeldingen hernoemen naar 1.jpg 2.jpg .. etc.
    In tabel FotoLoc staat het pad.

    Maar als het teveel werk is laat dan maar. Ik red me wel met aparte knop, dat werkt ook.
    Ik kan me er wel mee redden.
    Als het niet kan zoals het moet, dan moet het maar zoals het kan.
    In ieder geval bedankt en fijn weekend.

  12. #12
    Tera Honourable Senior Member
    Verenigingslid
    OctaFish's avatar
    Geregistreerd
    6 februari 2009
    Locatie
    Rotterdam
    Quote Origineel gepost door Theo65 Bekijk Bericht
    Nee zitten geen afbeeldingen bij. Maar je kunt 10 willekeurige afbeeldingen hernoemen naar 1.jpg 2.jpg .. etc.
    Kijk, en dát hoort nou dus bij de forum etiquette: je wilt toch niet (althans: je zou dat niet moeten willen) dat helpers eerst allerlei andere zaken moeten regelen (dat kost hún namelijk extra tijd) voordat de zaak goed werkt? Als helper wil ik mijn tijd steken in het vinden van een antwoord, niet in het op orde maken van de database. Dat je daar enigszins negatief op reageert, is dus jammer in mijn ogen. Al wil ik dat voor één keer best doen. Maar zorg de volgende keer dus gewoon voor een omgeving waarin we gelijk aan de slag kunnen. Dat is, vind ik, wel zo netjes.
    Gebruik de QUOTE knop alleen als je iets wit citeren.
    Op deze pagina kun je zien hoe je met TAGS werkt.

  13. #13
    Je hebt gelijk. Je helpt me en zou het jou zo gemakkelijk mogelijk moeten maken.
    Bijgesloten het access bestand met 10 afbeeldingen. Ik heb het als zip in de C:\ directory. Als het ergens anders uitgepact wordt moet het pad waar afbeeldingen staan even aangepast in tabel FotoLoc
    Bijgevoegde bestanden Bijgevoegde bestanden

  14. #14
    Tera Honourable Senior Member
    Verenigingslid
    OctaFish's avatar
    Geregistreerd
    6 februari 2009
    Locatie
    Rotterdam
    Zal er snel naar kijken. Vandaag nog niet aan toegekomen, want soms wachten er andere klussen .
    Gebruik de QUOTE knop alleen als je iets wit citeren.
    Op deze pagina kun je zien hoe je met TAGS werkt.

  15. #15
    Tera Honourable Senior Member
    Verenigingslid
    OctaFish's avatar
    Geregistreerd
    6 februari 2009
    Locatie
    Rotterdam
    Ik heb wat aanpassingen aan je db gedaan, zodat je kunt zien hoe je het werkend kan krijgen. Zo is het queryveld [PhotoPath] uit het formulier verwijderd, en vervangen door een niet-afhnakelijk tekstveld. Dat krijgt een waarde op basis van een formule die wordt bepaald bij de gebeurtenis <Bij Aanwijzen>.
    Code:
        Me.Thumbnail.Picture = CurrentProject.Path & "\Fotodatabase\" & Me.EigenNr & "." & Me.Extensie
    Hiermee ben je niet (meer) afhankelijk van waar de database staat, en werkt het formulier dus overal. Ik zou zelf voor de naam van de foto één veld hebben gebruikt, dus niet een veld [EigenNr] met de waarde 1, maar de waarde " 1.jpg" Dan heb je maar een veld nodig voor de naam van de foto. Ik zie eerlijk gezegd geen enkel voordeel van het loskoppelen van de extensie. Jij misschien wel .

    De Thumbnail werkt dan zo (2 varianten):
    Code:
    Private Sub Thumbnail_Click()
        ''Paint_OpenImage CurrentProject.Path & "\Fotodatabase\" & Me.EigenNr & "." & Me.Extensie
        Paint_OpenImage Me.PhotoPath.Value
    End Sub
    Bijgevoegde bestanden Bijgevoegde bestanden
    Gebruik de QUOTE knop alleen als je iets wit citeren.
    Op deze pagina kun je zien hoe je met TAGS werkt.

  16. #16
    Zo is het queryveld [PhotoPath] uit het formulier verwijderd, en vervangen door een niet-afhnakelijk tekstveld. Dat krijgt een waarde op basis van een formule die wordt bepaald bij de gebeurtenis <Bij Aanwijzen>.
    Ik ben erg nieuwsgiering naar jou oplossing, want dat queryveld is inderdaad niet fraai. (ik kon echter geen betere oplossing bedenken).
    Dus ben erg geinteresseerd, want ik zou dit dan ook in een andere database willen toepassen en wil dit graag leren.

    Alleen als ik heb bestand van jou download dan krijg ik mijn eigen oude database zonder jou aanpassing? Klopt dat of doe ik iets fout?
    Laatst aangepast door Theo65 : 29 mei 2023 om 10:08

  17. #17
    Tera Honourable Senior Member
    Verenigingslid
    OctaFish's avatar
    Geregistreerd
    6 februari 2009
    Locatie
    Rotterdam
    Wellicht de verkeerde database gepost, maar ik heb het aangepast in jouw database en formulier. Dus je zou het moeten kunnen zien. Ik post hem nog wel een keer, zónder typefout .
    Gebruik de QUOTE knop alleen als je iets wit citeren.
    Op deze pagina kun je zien hoe je met TAGS werkt.

  18. #18
    Tera Honourable Senior Member
    Verenigingslid
    OctaFish's avatar
    Geregistreerd
    6 februari 2009
    Locatie
    Rotterdam
    Hierbij de nieuwe versie, met een extra aanpassing. Er zit nu een functie in (Fotopad) die dynamisch het pad ophaalt van de foto's, gebaseerd dus op de locatie van de database. Als je de map met de database verplaatst, blijft alles dus werken. Beide foto formulieren (thumbnail en groot) werken nu met de foto's. De grote wat beter, omdat dat een enkelvoudig formulier is. Maar dat zie je gauw genoeg .
    Bijgevoegde bestanden Bijgevoegde bestanden
    Gebruik de QUOTE knop alleen als je iets wit citeren.
    Op deze pagina kun je zien hoe je met TAGS werkt.

  19. #19
    Ik zie de aanpassing. Leerzaam en intessant.
    Maar als ik in het formulier, dus alle foto's onder elkaar hebt zie je de afbeeldingen niet meer. Nou ja, je ziet 1 afbeelding, op alle regels staat dezelfde afbeelding.
    De bedoeling was juist een thumbnail van de foto met een omschrijving om een foto te selecteren. Dan wil je liefst een regel met de thumbnail afbeelding van de regel er achter.
    kan ik dat dynamisch adres dan ook in query gebruiken om de foto er weer bij te krijgen?

  20. #20
    Tera Honourable Senior Member
    Verenigingslid
    OctaFish's avatar
    Geregistreerd
    6 februari 2009
    Locatie
    Rotterdam
    Dat laatste is een beetje lastig omdat je het hier hebt over een doorlopend formulier. Als je in het ontwerp van dat formulier kijkt, zie je maar één object staan, geen 10 (dat is het aantal records dat je hebt). Ergo: als er maar één object is, kan dat object maar één afbeelding laten zien. Is logisch, niet? En welk object dat is, is dus afhankelijk van het actieve record. Ook dat lijkt mij logisch. Vandaar dat ik schreef dat het formulier FotoGroot_Frm beter werkt, omdat dat een Enkelvoudig formulier is. Daarmee heb je in beginsel hetzelfde probleem (één object, dus alle records laten hetzelfde plaatje zien) maar hier zie je het niet, omdat je altijd maar één record bekijkt. Zodra je naar het volgende record schakelt, wordt het plaatje ververst. Wat dus óók gebeurt bij een doorlopend formulier.
    Gebruik de QUOTE knop alleen als je iets wit citeren.
    Op deze pagina kun je zien hoe je met TAGS werkt.

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl en business

Partners
Sponsoren