Wachtwoord vergeten?

Wachtwoord vergeten
Vul hier uw email adres in. U ontvangt dan een nieuw wachtwoord.

Afbeeldingen uit een map weergeven op een formulier of in een rapport van Access 2000

Gepost op 12-10-2006 - Microsoft Office - 0 reacties


De informatie in dit artikel is van toepassing op:

  • Microsoft Access 2000 Standard Edition

Klik op 148463 voor een Microsoft Access 97-versie (en eerder) van dit artikel.

Zie 285820 voor een Microsoft Access 2002- en Office Access 2003-versie van dit artikel.
Geavanceerd: vereist goede vaardigheden op het gebied van codering, interoperabiliteit en werken met meerdere gebruikers.

Dit artikel heeft betrekking op een Microsoft Access-database (.MDB) en een Microsoft Access-project (.ADP).

Samenvatting

Soms is het niet praktisch uitvoerbaar afbeeldingen op te slaan in een Microsoft Access-tabel. Als u een groot aantal afbeeldingen hebt, of als de afzonderlijke afbeeldingsbestanden groot zijn, kan de grootte van het Microsoft Access-databasebestand snel toenemen.

In dit artikel wordt uitgelegd hoe u afbeeldingen kunt weergeven op een formulier of in een rapport door alleen het pad en de bestandsnaam op te geven. De bestandsnaam wordt opgeslagen in een tabel. Het pad naar het bestand kan ook in de tabel worden opgeslagen, maar het pad kan ook een relatief pad zijn. Dit is afhankelijk van de locatie van de database.

Meer informatie

Microsoft verstrekt deze code zonder enige expliciete of impliciete garantie, daaronder mede begrepen, maar niet beperkt tot impliciete garanties met betrekking tot de verkoopbaarheid en/of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend bent met de programmeertaal VBScript, alsmede met de hulpprogramma's waarmee procedures worden gemaakt en waarmee fouten in procedures worden opgespoord. U kunt desgewenst contact opnemen met Microsoft Product Support Services voor uitleg over de functie van een bepaalde procedure. Microsoft Product Support Services is echter niet bereid de voorbeelden aan te passen om extra functies toe te voegen of om procedures te maken die aan uw specifieke eisen voldoen. Het volgende voorbeeld laat zien hoe u Windows-bitmaps kunt weergeven op een Access-formulier of in een Access-rapport zonder de afbeeldingen zelf in een Access-tabel op te slaan. Hoewel in dit voorbeeld bitmapafbeeldingen (BMP) worden gebruikt, kunt u ook andere afbeeldingstypen gebruiken, zoals JPG, PCX en GIF.

De tabel voor het opslaan van de afbeeldingspaden maken

  1. Open de voorbeelddatabase van Access, Noordenwind.mdb, of het voorbeeldproject van Access, NoordenwindCS.adp.
  2. Maak de volgende tabel Noordenwind.mdb of NoordenwindCS.adp. In Noordenwind.mdb:
    Tabel: tblImage ---------------------------- Veldnaam: ImageID Type: AutoNummering Index: Ja (geen dubbele)
    Veldnaam: txtImageName Type: Tekst
    Tabeleigenschappen: tblImage -------------------------- PrimaryKey: ImageID

    In NoordenwindCS.adp:
    Tabel: tblImage ----------------------- Kolomnaam: ImageID Gegevenstype: Int Null-waarden toestaan: Niet ingeschakeld Identity: Ingeschakeld
    Kolomnaam: txtImageName Gegevenstype: varchar
    Tabeleigenschappen: ImageTable ------------------------------- Beperking primaire sleutel: ImageID

  3. In Noordenwind.mdb: Maak een standaardafbeelding die moet worden weergegeven wanneer de afbeelding niet is gevonden in de tabel of wanneer er geen afbeelding bestaat voor een record.

    Gebruik voor dit voorbeeld een kleine afbeelding met de naam 'Geenafbeelding.BMP'. U kunt hiervoor een bestaande afbeelding gebruiken, bijvoorbeeld een bedrijfslogo. U kunt echter ook een nieuwe afbeelding maken met Paint. Sla het bestand op de volgende locatie op:


    C:\Windows\Geenafbeelding.bmp
  4. In Noordenwind.mdb: Open de tabel tblImage in de gegevensbladweergave en voeg vervolgens aan elke record het pad en de naam van een bitmapbestand toe. Hier ziet u enkele voorbeelden van records waarbij dit is gebeurd:
    C:\Windows\Circles.bmp C:\Windows\Waves.bmp C:\Windows\Tiles.bmp C:\Windows\Bubbles.bmp

De afbeeldingen weergeven op een formulier

  1. Maak het volgende nieuwe formulier op basis van de tabel tblImage:
    Formulier: frmImage ---------------------- Bijschrift (Caption): Afbeelding op formulier Recordbron (RecordSource): tblImage
    Besturingselement voor afbeelding (Image Control) --------------------------------- Naam: ImageFrame Afbeelding (Picture): "C:\Windows\Circles.bmp"
    Tekstvak ---------------------- Naam: txtImageID ControlSource: ImageID
    Tekstvak --------------------------- Naam: txtImageName ControlSource: txtImageName

    Opmerking De eigenschap Afbeelding (Picture) van het besturingselement voor de afbeelding is ingesteld op de padnaam voor de eerste afbeelding. Het besturingselement moet een geldige eigenschap Afbeelding (Picture) hebben in de ontwerpweergave. Als u het pad niet wilt weergeven op het formulier, kunt u de eigenschap Zichtbaar (Visible) van het besturingselement txtImageName instellen op Onwaar (False).

  2. : Kies Code in het menu Beeld en plak of typ de volgende code:
    Function setImagePath() Dim strImagePath As String On Error Goto PictureNotAvailable strImagePath = Me.txtImageName Me.ImageFrame.Picture = strImagePathExit Function PictureNotAvailable: strImagePath = "C:\Windows\Geenafbeelding.BMP" Me.ImageFrame.Picture = strImagePathEnd Function
  3. : Stel de gebeurtenissen OnCurrent en AfterUpdate in op =setImagePath().
  4. : Open het formulier Imageform in de formulierweergave. In het formulier wordt voor alle records de bijbehorende bitmap weergegeven.

De afbeeldingen weergeven in een rapport

  1. Maak in de ontwerpweergave een nieuw rapport dat is gebaseerd op tblImage.
  2. Voeg in de sectie [Details] van het rapport bestand de volgende besturingselementen toe:
    Besturingselement voor afbeelding (Image Control) --------------------------------- Naam: ImageFrame Afbeelding: "C:\Windows\Circles.bmp"
    Tekstvak ---------------------- Naam: txtImageID ControlSource: ImageID
    Tekstvak --------------------------- Naam: txtImageName ControlSource: txtImageName

  3. Kies Code in het menu Beeld en plak of typ de volgende code:
    Function setImagePath() Dim strImagePath As String On Error Goto PictureNotAvailable strImagePath = Me.txtImageName Me.ImageFrame.Picture = strImagePath Exit Function
    PictureNotAvailable: strImagePath = "C:\Windows\Geenafbeelding.BMP" Me.ImageFrame.Picture = strImagePath
    End Function

  4. Stel de gebeurtenis OnFormat in de sectie [Details] van het rapport in op =setImagePath() en sla het rapport op als RptImage.
  5. Open het rapport RptImage in de afdrukweergave. In het rapport wordt voor alle records de bijbehorende bitmap weergegeven.

De afbeelding opslaan in een relatief pad

In het vorige voorbeeld moet het volledige pad van het bestand in het veld txtImageName staan. U kunt echter ook alleen de naam van de afbeelding in de tabel opnemen en met behulp van de code het pad bepalen aan de hand van de map waarin de huidige database zich bevindt. De afbeeldingen bevinden zich in dit geval allemaal in de map met het databasebestand. Deze techniek van een relatief pad is vooral handig bij gedistribueerde toepassingen, wanneer u niet zeker weet in welk pad de gebruiker de database gaat installeren. In de volgende code wordt het pad naar de huidige database bepaald met behulp van de eigenschap VolledigeNaam (FullName). Het pad wordt vervolgens samengevoegd met de naam van de afbeelding.

U kunt dit controleren door de volgende wijzigingen aan te brengen in het eerdere voorbeeld:
  1. Verwijder de paden uit de tabel tblImage en laat alleen de namen van de bitmapbestanden staan.
  2. Sla de bitmapbestanden op in de map met de database. Dit geldt ook voor de standaardafbeelding die wordt weergegeven als er geen afbeelding is gevonden voor een bepaalde record.
  3. Vervang de functie in het vorige voorbeeld door de volgende functie:

    Opmerking CurrentProject.FullName, een verwijzing naar het volledige pad van het huidige project, werkt voor zowel databases als projecten van Access.
    Function setImagePath() Dim strImagePath As String Dim strMDBPath As String Dim intSlashLoc As String
    On Error Goto PictureNotAvailable 'Het volledige pad van de huidige database of het huidige project van Access bepalen strMDBPath = CurrentProject.FullName
    'De locatie van de laatste backslash zoeken intSlashLoc = InStrRev(strMDBPath, "\", Len(strMDBPath))
    'De naam van de database verwijderen, zodat het pad overblijft 'en de naam van het afbeeldingsbestand toevoegen strImagePath = Left(strMDBPath, intSlashLoc) & _ Me.txtImageName
    'ImageFrame instellen op het pad van het afbeeldingsbestand Me.ImageFrame.Picture = strImagePath Exit FunctionPictureNotAvailable: strImagePath = "Geenafbeelding.BMP" Me.ImageFrame.Picture = strImagePath
    End Function

Referenties

Als u meer informatie wilt over het instellen van gebeurteniseigenschappen, klikt u op Microsoft Access Help in het menu Help, typt u gebeurtenis in de Office-assistent of de Antwoordwizard en klikt u vervolgens op Zoeken om het onderwerp 'Events: Making your database objects work together' weer te geven.

Als u meer informatie wilt over de eigenschap ToegestaanOLEType (OleTypeAllowed), klikt u op Microsoft Access Help in het menu Help, typt u toegestaanoletype in de Office-assistent of de Antwoordwizard en klikt u vervolgens op Zoeken om het bijbehorende onderwerp weer te geven.

Als u meer informatie wilt over de eigenschap Brondocument (SourceDoc), klikt u op Microsoft Access Help in het menu Help, typt u brondocument in de Office-assistent of de Antwoordwizard en klikt u vervolgens op Zoeken om het bijbehorende onderwerp weer te geven.

PrintPrint RSS reactiesRSS reacties BookmarkBookmark

Gekoppelde tags

Access, Access 2000, Access 2002, Access 2003, Access 97, Afbeelding, Database, Fix, Office, Procedure, Project, Record, Tabel, Update

Reacties
Nog geen reacties geplaatst.

Winkelmandje

Het winkelmandje is leeg

Inloggen
Als u hierboven op de knop 'bestellen' klikt krijgt u een overzicht van de door uw gewenste producten. Indien het overzicht compleet en correct is kunt via de wizard de verdere gegevens invullen en uw bestelling afronden. In het bestelproces kunt u altijd op 'vorige' drukken om terug te gaan in het proces. Bij Perrit staan vertrouwen, privacy en veiligheid op de eerste plaats, wij zullen uw gegevens dan ook met uiterste zorgvuldigheid behandelen en nooit doorgeven aan derden.

Perrit.nl Sherwood Rangers 29 Hengelo

Perrit.nl telefoon: +31 74 750 12 20

Kenniscentrum - Afbeeldingen uit een map weergeven op een formulier of in een rapport van Access 2000
Perrit Kenniscentrum - Afbeeldingen uit een map weergeven op een formulier of in een rapport van Access 2000