Avatar billede norske-mike Nybegynder
13. november 2000 - 15:53 Der er 9 kommentarer

Hvorfor gi\'r \"Me.Imageframe = [student]![Imagepath]\" feil?

Kan en venlig sjæl fortelle mig VB-nybegynder hva der skal stå?

Jeg ønsker at Access skal hente et billede (hvis sti og navn står i
feltet Imagepath i tabellen Student) og plassere billedet i
billedboksen der hedder Imageframe i headersektionen i den aktuelle
Rapport. Jeg får fejl når jeg skriver således i sidehoved ON Format
Hændelse:

Private Sub Sidehoved_Format(Cancel As Integer, FormatCount As
Integer)
  Me.Imageframe = [student]![Imagepath]
End Sub
Avatar billede moses Praktikant
14. november 2000 - 08:46 #1
Det smarteste og mest automatiske er:

Gå til tabellerne.
Opret en link til en tabel
Find frem til den fil du har.
Vælg den.
Og vælg til sidst den tabel, hvor det ligger i.
Herefter kan du faktisk henvise direkte til tabellen derovre blot ved at benytte navnet på link\'et.

Du kan se, at det er et link, ved at der er en lille pil forand tabellens navn !!

Avatar billede norske-mike Nybegynder
27. november 2000 - 13:47 #2
Hi moses,
Jeg forstår ikke riktig hva du mener:
De relationer jeg har etableret mellem de forskellige tabeller er sat op i vinduet \'Relationer\' og vises jo ved linier og piler der viser de forskellige \'jointyper\'.

Kan du prøve at forklare det en gang mere?

Michael
Avatar billede moses Praktikant
28. november 2000 - 14:33 #3
For det første, så kan du ikke trække noget direkte fra en fil.
Du skal først sammenkoble Access med filen. I dit tilfælde er det nemmest ved at gå til tabellerne, højreklikke på den hvide baggrund og vælge \"opret link\" til den fil og deri den fil, som du vil bruge.
Derefter har du en link til tabellen (indikeret med den lille sorte pil ved tabellen). Du kan for selve link\'et godt have et andet navn end filens eller de der i liggende tabellens navne.
NU kan du så henvise til:
[Link\'ets navn]![feltets navn]

Du skal bare lige huske, at der skal være nogle kriterier, der udvælger, hvilken record i denne tabel der egentlig skal bruges !!!!!!
Avatar billede norske-mike Nybegynder
29. november 2000 - 12:52 #4
Takk, Moses. Jeg har stadigt problem med denne sag. Det er meget venligt af dig at prøve at hjelpe mig, men jeg er ikke god til VB.

For det første: i min version af Access er det ingen mulighet der heddder \"opret link\" når jeg højreklikker på den hvide baggrund på fanebladet Tabeller. Der findes en der hedder \"sammenkæd tabeller\" og denne giver mulighed for at gå til en anden database eller et regneark eller... men ikke til et directory/bibliotek? Sagen er jo den at billederne ligger som JPGfiler i en alminnelig mappe. Hvert billede har et eget navn og oplysningen om hvordan billeder og personer hænger sammen er angivet i billedtabellen:

EKSEMPEL:
navnetabel          billedtabel
Navne_key  0001    Billed_ID_key     0017
Billed_ID  0017    Navn        0001
navn        JENS    imagepath        BB\\.jpg

I relationer er angivet en-til-en sammenhæng fra navnetabellens  til billedtabellens Billed_ID til billedtabellens Billed_ID_key.

I rapporten går det galt:
Når jeg prøver at indsætte Billede vil systemet at jeg skal pege på et bestemt billede. Det skal jeg jo ikke, vel?
Når jeg prøver ay indsætte Bundet objektramme og under Kontrolelementkilde skriver Imagepath som er det feltnavn som de undeliggende data indeholder, kommer der intet billede frem når rapporten køres.
Når jeg vælger Ubundet objektramme, får jeg også tilsyneladende kun mulighed for at vælge et bestemt billede! Her har jeg også prøvet at indsætte et tilfældigt billede og så i OnFormat
indsætte flg hændelsesprocedure:

Private Sub Sidehoved_Format()
    Me.Imageframe = [Imagepath]
End Sub

Jeg får da denne fejl:

\"Udtrykket VedFormatering, du indtastede som indstilling af
hændelsesegenskaben, gav en fejl:
Erklæringen til hændelsesproceduren passer ikke til
beskrivelsen af den hændelse, der har samme navn.
*Udtrykket resulterer måske ikke i navnet på en makro, i navnet på en
brugerdefineret funktion eller en [hændelsesprocedure].
* Der opstod måske en fejl under evalueringen af funktionen,
hændelsen eller makroen.\"

Dette siger mig ikke rigtigt noget - kan du forklare dette?

Hilsen Michael
Avatar billede moses Praktikant
30. november 2000 - 09:01 #5
NÅÅÅÅÅÅÅHHH

Nu faldt tiøren:

BoundObjectFrameName er, hvad navnet siger et bound object frame på din form.
På en knap ved siden af, kan du lave denne kode, så kan du se, hvordan det virker.


    Me![BoundObjectFrameName].OLETypeAllowed = acOLEEmbedded  \'Evt acOLELinked
    Me![BoundObjectFrameName].SourceDoc = \"P:\\My Documents\\Diverse\\rose.gif\"
    Me![BoundObjectFrameName].Action = acOLECreateEmbed  \'evt  acOLECreateLink
Avatar billede moses Praktikant
30. november 2000 - 09:02 #6
Stien, som her er en tekst, erstatter du bare med [student]![Imagepath].
Avatar billede norske-mike Nybegynder
30. november 2000 - 16:54 #7
Hi Moses,
Du sagde jeg skulle \"lave denne kode på en knap ved siden af\" ? Hvad mener dU? Hvilken knap? Ved siden af hvad?

Jeg har nu prøvet flg beregning i
min rapport - sektion sidehoved - Ved formatering - hændelsesprocedure:

Private Sub Sidehoved_Format()
    Me![Imagebox].OLETypeAllowed = acOLELinked
    Me![Imagebox].SourceDoc = [student]![Imagepath]
    Me![Imagebox].Action = acOLECreateLink
End Sub

eller

Private Sub Sidehoved_Format()
    Me![Imagebox].OLETypeAllowed = acOLEEmbedded
    Me![Imagebox].SourceDoc = [student]![Imagepath]
    Me![Imagebox].Action = acOLECreateEmbed
End Sub

- hvor imagebox er navnet på den bundne objektramme
- og begge disse varianter gir samme fejl som før:


\"Udtrykket VedFormatering, du indtastede som indstilling af
hændelsesegenskaben, gav en fejl:
Erklæringen til hændelsesproceduren passer ikke til
beskrivelsen af den hændelse, der har samme navn.
*Udtrykket resulterer måske ikke i navnet på en makro, i navnet på en
brugerdefineret funktion eller en [hændelsesprocedure].
* Der opstod måske en fejl under evalueringen af funktionen,
hændelsen eller makroen.\"

Kan du forstå dette? Jeg må indrømme at jeg ikke kender udtrykkene i din sætning og at det måske er årsagen til misèren?

mvh Michael
Avatar billede moses Praktikant
01. december 2000 - 08:49 #8
Du laver en form med en bundet object frame og en knap (som du selv sætter på formen).
Formen skal selvfølgelig have en recordsource (en tabel), hvor den kan lægge sine data. Der skal der være et felt, som er et objekt, som din object frame skal linkes til.

Dernæst definerer du min formel til knappens klik hændelse.

Når du åbner formen, er der jo ingen data i og der vises derfor heller ikke noget.
Hvis du så trykker på knappen, henter den filen og klistrer den ind i object frame\'en.

Der giver ikke nogen mening at klistre en fil på object frame\'en hver gang du kommer til en record. Det ville jo svare til at fylde alle felter ud i en record, hver gang du flyttede til en record. Data\'ene ligger jo netop i recorden.
Det er kun, hvis du vil oprette en ny record eller vil ændre i en eksisterende, at du lægger data ind.
Avatar billede norske-mike Nybegynder
02. december 2000 - 14:43 #9
Hi Moses,
Jeg fant løsningen, hos Ekspert.dk, emn ikke fra deg - dessverre - men her:

http://www.eksperten.dk/spm/30509

Dette var presis hva jeg trengte. Jeg har sakset den og det virker \"som smurt\"!

Ha det og takk for din gode vilje og alle den tid du har brukt på meg.
Slutt fra Michael
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