Avatar billede hinca Nybegynder
03. november 2002 - 08:05 Der er 8 kommentarer og
1 løsning

save/update form

Hej alle
Jeg har en form hvor jeg indtaster stien til nogle billeder, men billederne bliver først loadet når jeg gemmer stien i tabellen. Så jeg ser først billedet når jeg går tilbage til den record jeg lige havde oprettet. Det jeg gerne vil, er at se billedet når stien er indtastet, men inden hele formen er udfyldt
(save_record)(update_form)  Er det muligt ??
Avatar billede mugs Novice
03. november 2002 - 09:18 #1
Du kan lagre en formular med kommandoen:

DoCmd.RunCommand acCmdSaveRecord

Du må have en kode, der henter billedet når formularen åbner. I det eksempel, jeg har brugt, ligger flg. kode i formularens UpDate event. D.v.s. at billedet først vises, som du beskriver i dit spørgsmål. Denne kodeskal du blot flytte til det felt, hvori du indtaster stien. Jeg bruger 2 felter til stien, og begge skal så være udfyldt. Jeg har derefter indsat flg. kode i både formularens OnCurrent og i det sidste felt i Exit event hvori jeg har indtastet koden.

If Not IsNull(Me!FigurPath) Then
Me!Billede.Picture = Me!FigurPath & Me!FigurFil
Else
Me!Billede.Picture = ""
End If
End Sub

Koden er afprøvet og fungerer i Access97.
Avatar billede hinca Nybegynder
03. november 2002 - 09:52 #2
Tak for et hurtigt svar...
DoCmd.RunCommand acCmdSaveRecord virker fint
formularen bliver nu gemt når jeg har indtastet stien til billedet.
Men billedet bliver ikke loadet ind i formularen, heller ikke med refresh.
Først når jeg opretter en ny record, og så går tilbage. Så kommer billedet fint ind.
Men jeg vil have billedet loadet inden jeg er færdig med recorden
Jeg bruger access 2002, hvis det har nogle betydning.
Avatar billede mugs Novice
03. november 2002 - 09:55 #3
Korrekt. Men hvor har du indtastet koden der henter billedet? Jeg har indtastet koden i feltet i Exit Event. Og det er det som afgør, hvornår db henter billedet. Da jeg afprøvede koden brugte jeg ikke DoCmd.Save .... Det betyder ikke noget om du bruger 2002.
Avatar billede hinca Nybegynder
03. november 2002 - 09:56 #4
mugs>>
min kode ser således ud:

Private Sub PicturePath_GotFocus()
Me.PicturePath = "\\xxxx\G\mp3\" & [Kunstner] & " - " & [Tittel] & "\front.jpg"
Me.PicturePath2 = "\\xxxx\G\mp3\" & [Kunstner] & " - " & [Tittel] & "\back.jpg"
Me.PicturePath3 = "\\xxxx\G\mp3\" & [Kunstner] & " - " & [Tittel] & "\cd.jpg"
DoCmd.RunCommand acCmdSaveRecord
End Sub
Private Sub Form_Current()
  ' Sikre at applikationen kan håndtere
  ' hvis filen ikke findes
  On Error Resume Next
  Dim strTempPath As String
  Dim intCharAt As Integer
  Dim strPath As String
 
  ' Find navnet på database (inklusiv stien)
  strTempPath = Application.CurrentDb.Name
  ' Udtag stien til database
  intCharAt = InStrRev(strTempPath, "\")
  ' Find stien til databasen
  strPath = Left(strTempPath, intCharAt)
  ' Findes der en reference til stien
  If Not IsNull(Me!PicturePath) Then
    ' Indsæt billedet
    Billede5.picture = Me!PicturePath
  Else
    Billede5.picture = " "
  End If
  ' Find navnet på database (inklusiv stien)
  strTempPath = Application.CurrentDb.Name
  ' Udtag stien til database
  intCharAt = InStrRev(strTempPath, "\")
  ' Find stien til databasen
  strPath = Left(strTempPath, intCharAt)
  ' Findes der en reference til stien
  If Not IsNull(Me!PicturePath2) Then
    ' Indsæt billedet
    Billede6.picture = Me!PicturePath2
  Else
    Billede6.picture = " "
  End If
  ' Find navnet på database (inklusiv stien)
  strTempPath = Application.CurrentDb.Name
  ' Udtag stien til database
  intCharAt = InStrRev(strTempPath, "\")
  ' Find stien til databasen
  strPath = Left(strTempPath, intCharAt)
  ' Findes der en reference til stien
  If Not IsNull(Me!PicturePath3) Then
    ' Indsæt billedet
    Billede7.picture = Me!PicturePath3
  Else
    Billede7.picture = " "
  End If
End Sub
Avatar billede mugs Novice
03. november 2002 - 10:02 #5
Procedüren der finder billedet hatr du indsat her i Private Sub Form_Current(), og det fungerer jo hver gang formularen opnår status som Current. D.v.s. når formen åbnes / du skifter post.

Indsæt koden I. f.eks Me.PicturePath3 i feltets Exit event. Det får Access til at eksekvere koden hver gang du forlader feltet, og finder derved billedet.
Avatar billede hinca Nybegynder
03. november 2002 - 10:17 #6
YEEEHAAA Det virker...
kan jeg fjerne koden i Private Sub Form_Current() eller skal den stå begge steder ?? hvis jeg fjerner den, så loader den vel ikke billedet når jeg bladrer i mine record ?? eller tager jeg fejl
Avatar billede mugs Novice
03. november 2002 - 10:22 #7
Begge steder. Ellers henter den ikke billedet når du bladrer, som du selv skriver.

Når du indsætter en kode, skal du hele tiden tænke på:

Hvor og hvornår.

I venstre side af kodemodulet vælger du "hvor", i hvilket felt / form. I højre side vælger du "hvornår". Når du forlader et felt (Exit), inden tabellen opdateres (Beforeupdate) o.s.v.
Avatar billede hinca Nybegynder
03. november 2002 - 10:25 #8
Okay.. tak for hjælpen
Avatar billede mugs Novice
03. november 2002 - 10:27 #9
Velbekomme.
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