Avatar billede dla Praktikant
14. juni 2005 - 10:09 Der er 16 kommentarer og
1 løsning

Indsæt billede med relativ sti

I min billeddatabase skal man kunne indsætte billeder ved hjælp af browseren. Det fungerer også fint, men da hele skidtet skal kunne flyttes uden at alle stierne skal ændres, skal det kun være en relativ sti der skal stå i feltet Sti, så billedet hentes sådan:
Me.Billede.Picture = Me.Databasesti & Me.Sti
(Databasesti=Application.CurrentProject.Path)

Efter databasestien har vi forskellige undermapper til billederne.

Ingen problem hvis det var mig selv der skulle indsætte billederne, så ville jeg bare slette databasestien fra feltet Sti når jeg havde indsat stien, så der kun stod "\Undermappe\Filnavn.jpg" men det er en anden der skal gøre det, så der skal ikke tænkes for meget, der skal bare indsættes billeder.

Er der en måde at løse det på?
Avatar billede keysersoze Ekspert
14. juni 2005 - 10:20 #1
nu er jeg ikke 100% sikker på hvordan det skal virke eftersom du har stillet spm i access men også snakker om web - og derfor kan det være at jeg svarer forkert...

Normalt ville jeg aldrig nogen sinde gemme sti i databasen - kun filnavn. Stien ville jeg lægge i en variabel - på web fx i global.asa eller en inkluderingsfil hvor alle site-variabler gemmes.
Avatar billede dla Praktikant
14. juni 2005 - 10:32 #2
Jeg snakker da ikke om web!? Det var da meningen at jeg kun snakkede ren Access.

Databasestien har jeg jo også i en variabel, men hvordan gør jeg med resten af stien?
Avatar billede keysersoze Ekspert
14. juni 2005 - 10:51 #3
"min billeddatabase skal man kunne indsætte billeder ved hjælp af browseren"

browser = web
Avatar billede dla Praktikant
14. juni 2005 - 10:59 #4
Nåeh, jeg mente bare stifinderen :-)
Avatar billede mugs Novice
14. juni 2005 - 11:50 #5
dla > Der ligger et eksempel på åbning af stifinderen  på thomasjepsen's hjemmeside.

Jeg har et eksempel hjemme på, hvordan du bruger stifinderen til at indsætte stien til billedet. Blot læg din e-mail så sender jeg den i eftermidddag.
Avatar billede dla Praktikant
14. juni 2005 - 12:14 #6
Jamen jeg kan sagtens åbne stifinderen og indsætte stien til billedet (jeg har brugt Thomas' eksempel), problemet er at jeg kun vil indsætte den relative sti, og uden at skulle taste noget ind i felterne, det skal gøres ved hjælp af stifinderen.
Avatar billede mugs Novice
14. juni 2005 - 14:33 #7
Jeg må indrømme, at jeg ikke forstår hvad du vil. Hvad mener du med dette:

"så der kun stod "\Undermappe\Filnavn.jpg""

Hvad nytter det, når db ikke indeholder den fulde sti til billedet?
Avatar billede dla Praktikant
14. juni 2005 - 14:41 #8
Billedet vises med dette: Me.Billede.Picture = Me.Databasesti & Me.Sti
og derfor skal feltet Sti kun indeholde "\Undermappe\Filnavn.jpg"
Avatar billede dla Praktikant
14. juni 2005 - 15:41 #9
Er det helt uforståeligt? Stien til billedet skal bestå af 2 ting: stien til hvor databasen ligger (Databasesti) og stien derfra og til billedet (Sti), så man kan flytte databasen + undermapperne med billeder til en anden server uden at skulle ændre noget.
Avatar billede terry Ekspert
14. juni 2005 - 21:42 #10
so wht you are saying is you need to remove the part of the path+filename which is = the folder where the databases is located. Then save the remainder in the database?

example

Location of database

C:\MyDatabase

Location of filnavn.jpg

c:\MyDatabase\SubFolder\filnavn.jpg

remove
c:\MyDatabase\

save in database
subfolder\filnavn.jpg
Avatar billede terry Ekspert
14. juni 2005 - 21:43 #11
if you dont get a answer and I find a bit of time then if this is what you want I'll see if I can put something together.
Avatar billede dla Praktikant
15. juni 2005 - 08:57 #12
Ja, Terry, det er præcis hvad jeg gerne vil.

Jeg har et felt Databasesti= C:\MyDatabase
og jeg har et felt Filsti= C:\MyDatabase\SubFolder\filnavn.jpg

hvordan får jeg Access til selv at danne feltet Sti= \SubFolder\filnavn.jpg ?
Avatar billede terry Ekspert
15. juni 2005 - 12:14 #13
Function GetFileLocation(sti As String, dbSti As String) As String



GetFileLocation = Right(sti, Len(sti) - Len(dbSti))


End Function




sti = GetFileLocation("C:\MyDatabase\SubFolder\filnavn.jpg", "C:\MyDatabase")
Avatar billede dla Praktikant
15. juni 2005 - 13:38 #14
Undskyld min uvidenhed, men hvor og hvordan kalder jeg funktionen?

Jeg har prøvet med

=GetFileLocation

i et ubundet felt, men den returnerer bare
#Navn?

Hvad gør jeg forkert?
Avatar billede terry Ekspert
15. juni 2005 - 13:46 #15
make a new module and copy the code as it is into the module
Function GetFileLocation(sti As String, dbSti As String) As String



GetFileLocation = Right(sti, Len(sti) - Len(dbSti))


End Function

then to use this function you use for eaxmple

sti = GetFileLocation("C:\MyDatabase\SubFolder\filnavn.jpg", "C:\MyDatabase")
Avatar billede dla Praktikant
15. juni 2005 - 14:23 #16
Hej Terry, endelig fandt jeg ud af det, den ville jo bare have ";" i formularfeltet i stedet for ","

Tak for hjælpen.
Avatar billede terry Ekspert
15. juni 2005 - 14:32 #17
super, og mange tak

mvh
terry
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