Avatar billede jensen363 Forsker
26. september 2006 - 19:52 Der er 14 kommentarer og
1 løsning

Find billedfil i bibliotek - klik og vis

I et bibliotek har jeg en række foto liggende. Jeg har behov for at se filnavne i en form for listbox, give brugeren mulighed for at klikke på filnavnet og få det pågældend foto vist i en imagebox ... kan det lade sig gøre ?
Avatar billede mugs Novice
26. september 2006 - 19:57 #1
Jeg har et eksempel hvor du åbner stifinderen og vælger et billede - erefter åbnes billedet og stien lagres i Access. E-mail?
Avatar billede mugs Novice
26. september 2006 - 20:08 #2
Prøv om du kan få ud af dette. Indlæs filnavne i tabel:

http://makeiteasy.dk/Home.asp?ContentID=30&MenuItemID=25
Avatar billede -anders- Juniormester
26. september 2006 - 20:15 #3
Hej jensen, blot til inspiration:

Jeg bruger nedenstående til at fylde en listboks med alle filer i en foruddefineret sti:

Private Sub FillFilesInCombo(CtlNavn As String, Mappe As String, FilType As String)
  Dim FilNavn As String
 
  With Me.Controls(CtlNavn)
    .Value = ""
    .RowSourceType = "Value List"
    .RowSource = ""
   
    FilNavn = Dir(Mappe & FilType, vbNormal)
    Do Until FilNavn = ""
      If .RowSource <> "" Then .RowSource = .RowSource & ";"
      .RowSource = .RowSource & FilNavn
      FilNavn = Dir
    Loop
    .Requery
  End With
End Sub

Private Sub Form_Open(Cancel As Integer)
  Call FillFilesInCombo("Combo1", "E:\Ad\", "*.rtf")
End Sub

Måske man så kunne indsætte et imagebox på formen og skrive ved dobbeltklik på listboksen:

Me!Imagebox.Picture = NavnPåListBoks
Avatar billede -anders- Juniormester
26. september 2006 - 20:34 #4
Nedenstående er testet og virker, dog vises ikke stien til filen, men kun filnavnet:

1. Opret en formular indsæt en listboks, navngiv listen lstfiles

2. Indsæt et billed på samme form, og fjern derefter stien til det indsatte billed.

3. Navngiv den den tomme billedramme ImageBox.

4. Indsæt nedenstående kode på formen.

Private Sub FillFilesInCombo(CtlNavn As String, Mappe As String, FilType As String)
  Dim FilNavn As String
 
  With Me.Controls(CtlNavn)
    .Value = ""
    .RowSourceType = "Value List"
    .RowSource = ""
   
    FilNavn = Dir(Mappe & FilType, vbNormal)
    Do Until FilNavn = ""
      If .RowSource <> "" Then .RowSource = .RowSource & ";"
      .RowSource = .RowSource & FilNavn
      FilNavn = Dir
    Loop
    .Requery
  End With
End Sub

Ved formens OnOpen event indsættes nedenstående kode:

Private Sub Form_Open(Cancel As Integer)
  Call FillFilesInCombo("lstfiles", "C:\Billeder\", "*.jpg")
End Sub

'Du skal naturligvis angive din egen sti.'

På listboksen lstfiles indsættes nedenstående kode på OnClick eventen på lstfiles:

Private Sub lstfiles_Click()
Me!ImageBox.Picture = Me!lstfiles
End Sub
Avatar billede jensen363 Forsker
26. september 2006 - 21:00 #5
Jeg tester i morgen ... er lidt træt i dag ... møgarbejdsdag
Avatar billede -anders- Juniormester
26. september 2006 - 21:13 #6
Kender det godt :o), men når du nu skal teste har der desværre indsneget sig en fejl i min kode, for at filen kan vises i billedrammen er det nødvendigt at kende hele stien til filen i selve listboksen lstfiles. nedenstående kode virker:

Dim Filnavn As String
 
  With Me.Controls(CtlNavn)
    .Value = ""
    .RowSourceType = "Value List"
    .RowSource = ""
   
    Filnavn = Dir(Mappe & FilType, vbNormal)
    Do Until Filnavn = ""
      If .RowSource <> "" Then .RowSource = .RowSource & ";"
      .RowSource = .RowSource & Mappe & Filnavn
      Filnavn = Dir
    Loop
    .Requery
  End With

go aften, og held og lykke med fodbolden :o)
Avatar billede jensen363 Forsker
27. september 2006 - 12:57 #7
Overbevisende god løsning :o)
Avatar billede jensen363 Forsker
27. september 2006 - 12:57 #8
Og det var ikke fodbolden som trak, men sengens glæder :o)
Avatar billede -anders- Juniormester
27. september 2006 - 13:34 #9
Tak for point, og forsat god arbejdslyst med projeket :o)
Avatar billede jensen363 Forsker
28. september 2006 - 21:27 #10
Anders > nu har jeg haft lejighed til at teste dit forslag igennem ... det virker men kan jeg på nogen måde undgå, at sti ( mappe ) også vises i listfiles ... altså således at kun filnavnet vises ... jeg kan godt se i dit første forslag, at du forsøgte ... og opgav ???
Avatar billede -anders- Juniormester
28. september 2006 - 22:23 #11
Hej jensen

Det kan lade sig gøre, har lige testet nedenstående forslag. Det er ikke så pænt, men det virker, prøv evt nedenstående:

1. Opret en ubunden tekstboks på din form navngiv den txt1.

Indsæt nedenstående kode, bemærk at her loades kun filnavn som i det oprindlige forslag i listfiles.

Private Sub FillFilesInCombo(CtlNavn As String, Mappe As String, FilType As String)
  Dim Filnavn As String
 
  With Me.Controls(CtlNavn)
    .Value = ""
    .RowSourceType = "Value List"
    .RowSource = ""
   
    Filnavn = Dir(Mappe & FilType, vbNormal)
    Do Until Filnavn = ""
      If .RowSource <> "" Then .RowSource = .RowSource & ";"
      .RowSource = .RowSource & Filnavn
     
      Filnavn = Dir
    Loop
    .Requery
  End With

End Sub

Indsæt nedenstående kode på listen lstfiles ved klik eventen, koden skriver som det første den foruddefineret sti i tekstboksen txt1, derefter "fanges" det filnavn der klikkes på i listen lstfiles og skrives efter den foruddefineret sti i txt1.

Private Sub lstfiles_Click()
Me.txt1 = ("C:\Billeder\") & Me.lstfiles
Me!Billedboks.Picture = Me.txt1
End Sub

Nu loades billed i din billedramme på baggrund af den sammensatte værdi i txt1, og ikke filnavnet i lstfiles. Jeg har testet det, og det virker. Indrømmet det ikke så pænt, men det virker. Man kan evt. skjule tekstboksn hvis man ønsker det.
Avatar billede -anders- Juniormester
28. september 2006 - 22:44 #12
Ups, Billedboks i ovenstående er naturligvis ImageBox :o)
Avatar billede jensen363 Forsker
29. september 2006 - 13:27 #13
Fandt en gangbar løsning hvor jeg kun ser filnavn i lstfiles

    .RowSource = .RowSource & Filnavn

og så har stien i en tabel

Sub lstfiles_Click()
Dim Folder As String
Folder = DLookup("[ImportFil]", "tblFilplacering", "[JobID] = 1")
    Me!Imagebox.Picture = Folder & Me!lstfiles
End Sub
Avatar billede -anders- Juniormester
29. september 2006 - 14:51 #14
Glimrende løsning :o), noget pænere end mit sidste forslag. Din løsning indeholder så vidt jeg kan vurdere en tabel, jeg troede ikke at det var en option her, så havede jeg nok kommet på noget andet :o)

God weekend
Avatar billede jensen363 Forsker
29. september 2006 - 15:24 #15
ilm :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester