foto invoegen/ veranderen in formulier

djutoch

Gebruiker
Lid geworden
30 mei 2023
Berichten
324
Ik probeer via een knop een foto in te voegen/veranderen in een Access formulier.
Ik krijg volgende foutmelding
foutmelding.jpg

Waar ga ik de mist in. iedere suggestie meer dan welkom, heb weinig ervaring met access.
 
Welke foutmelding krijg je?
Ik ben geen held in Access, maar iets zegt mij dat die apostrof de oorzaak is.
 
Wijzig *jpg eens in *.jpg
 
Heb je de opmerking van Aar ook getest?
 
  • Leuk
Waarderingen: Aar
Misschien is het handig om je code (nu en voortaan) even netjes hier in tekst te plaatsen in een code-blok.
Dat debugt wat makkelijker dan dat we alles (met mogelijke fouten tot gevolg) alles over staan te typen alsof het 1985 is.
 
Probeer onderstaande code eens van ChatGPT.
De opmerking van ChatGPT is:

Oorzaak
De fout komt doordat je msoFileDialogFolderPicker gebruikt bij het aanmaken van de FileDialog. Dit type dialoogvenster is alleen bedoeld om mappen te selecteren, niet bestanden zoals foto's. Daarom is .Filters.Add hier niet geldig en krijg je de fout.

Oplossing
Gebruik in plaats daarvan msoFileDialogFilePicker, omdat je een afbeelding (bestand) wilt selecteren, niet een map.

Code:
Private Sub Cmb_00_Click()
    Dim img_of As Office.FileDialog
    Dim img_var As Variant
    Set img_of = Application.FileDialog(msoFileDialogFilePicker)
    
    img_of.Title = "Kies een foto!"
    img_of.Filters.Clear
    img_of.Filters.Add "foto's", "*.jpg"
    
    If img_of.Show = True Then
        For Each img_var In img_of.SelectedItems
            Foto.Picture = img_var
        Next
    Else
        Foto.Picture = (nopic)
        MsgBox "Kies een foto", vbInformation, "Geen foto gekozen"
    End If
End Sub
 
Tuurlijk.
Die namen staan in img_var.
 
Beste Edmoor, dit had ik al toegepast maar dan krijg ik de volledige link, ik had gehoopt om verder te komen met de fotonaam alleen.
 
Dat kan simpel met dit:
Code:
Naam = Split(img_var, "\")
TextBox1.Text = Naam(UBound(Naam))
Eventueel kan je de .jpg er ook nog vanaf halen.
 
Value en Text doen precies hetzelfde bij een TextBox.
 
Dan zal dat in Acces anders zijn dan in Excel.
 
Value en Text doen precies hetzelfde bij een TextBox.
Niet dus in Access. De werking is anders. Ga ik hier uiteraard niet uitleggen, want TS is al dolgelukkig.

En uiteraard kan je het met één regel zonder variabele oplossen:
Code:
TextBox1.Value = Split(img_var, "\")(UBound(Split(img_var, "\")))
 
Terug
Bovenaan Onderaan