Klantafhankelijke foto op het uitleenformulier zetten

Status
Niet open voor verdere reacties.

JacobCats

Gebruiker
Lid geworden
13 jun 2014
Berichten
130
Beste forumleden

Wie kan mij op weg helpen met het verder opzetten van een uitleenregister in Access?

Algemeen:
Mij is gevraagd om de kunstuitleen van het DAC te documenteren en hiervoor een uitleenregister op te zetten.

De kunstwerken, voornamelijk schilderijen worden gemaakt door de cliënten van het DAC.
De vergoeding wordt gebruikt voor de aanschaf van nieuw materiaal zoals doek, verf, kwasten en dergelijke.

De administratie werd bijgehouden d.m.v. kaarten in een kaartenbakje en losse papiertjes maar is door de vele personeelswisselingen in het slob geraakt.
Het programma wat ik hiervoor wil gebruiken is Access 2010, dit is beschikbaar.

Einddoel
Wat ik wil bereiken is het volgende:
1) volledig ingevuld klantenbestand.
2) volledig ingevuld bestand van de kunstcollectie met foto.
3) werkend uitleenregister.

Om nu niet direct met de 175 klanten en ruim 300 schilderijen in een database aan de slag te gaan
heb ik een testdatabase aangemaakt om mij het programma eigen te maken. Zie testdatabase

Sub1) Klantenbestand:
Het klantenbestand zal mettertijd nog worden uitgebreid met telefoonnummer en e-mailadres.

Sub2) Kunstcollectie:
Het knelpunt hier is het veld “Foto”.
Het is niet de bedoeling dat hier de foto als bijlage wordt ingevoegd ( i.v.m. toename grootte database - gelezen op het forum-) maar een koppeling wordt aangebracht .
In de testbase veld “Foto” wel als OLE-object ingevoerd.

Vraag: hoe doe ik dat het beste?
Verwijs ik naar het bestand op mijn computer door het pad in te vullen
Bijv. F:\DAC\Afbeeldingen|1.jpg? Wat raden jullie mij aan?

Sub 3) Uitleenregister
In het uitleenregister is vastgelegd.
- Id Klant (pasnummer)
- Id Schilderijnummer
- datum uitleen
- datum retour ( vier tot acht weken later)
- datum inname

Er is (nog) geen facturatie noodzakelijk omdat de uitleen tegen contante betaling gebeurt.

De wens is:
- als ik in het klantenbestand kijk, dat ik kan zien welk schilderij en/of schilderijen bij
welke klant zijn, wanneer zij uitgeleend zijn, wat de geplande retour datum is en leen
geschiedenis.

- als ik in de kunstcollectie kijk, dat ik kan zien welk schilderij en/of schilderijen
uitgeleend zijn en aan wie, wanneer zij uitgeleend zijn, wat de geplande retour
datum is en leengeschiedenis.

- als ik in het uitleenregister kijk kan zien

- nummer van het schilderij
- naam van het schilderij
- naam van de klant (lener)
- datum uitleen
- datum retour ( vier tot acht weken later)
- datum inname

Ik heb mij al ingelezen op internet o.a. dit forum hoe e.e.a aan te pakken maar loop met name aan tegen enkele knelpunten aan.

Wat ik o.a. ook graag zou willen is dat:
- op het uitleenformulier een foto naar voren komt zodra ik het schilderij nummer intyp. Ik heb gelezen op het forum dat hiervoor een image-control aangemaakt moet worden en deze gekoppeld moet worden. Maar hoe?
- Dat als in het uitleenregister wordt vastgelegd dat een schilderij - UIT- is, dat hij niet nog een keer op het zelfde moment kan worden uitgeleend
- Dat als hij wordt ingeleverd weer beschikbaar komt

Ik heb al getracht d.m.v. voorbeeld databases op het form een oplossing te vinden maar helaas niet gelukt. Ook gebruik gemaakt van de handleiding op het forum.
Ik heb al gekeken bij en in de databases Noordenwind, bedrijfsbeurzen, uitleengeschiedenis, uitleen op het forum.

Ik begrijp dat het een lap tekst is geworden met heel veel vragen en wellicht komen er wel meer maar hoop dat iemand mij verder op weg kan helpen.
 

Bijlagen

  • Test voor forum.zip
    80,6 KB · Weergaven: 60
Ik hou er wel van als een TS zijn eigen vragen (goed) beantwoord :)
Vraag: hoe doe ik dat het beste?
Verwijs ik naar het bestand op mijn computer door het pad in te vullen
Bijv. F:\DAC\Afbeeldingen|1.jpg? Wat raden jullie mij aan?

Wat betreft sub 3: waarom een retourdatum? Je kunt veel beter met een retourtermijn werken want dat is een vast gegeven op basis waarvan je altijd de retourdatum kunt berekenen. Uiteindelijk is dat ook wat je nodig hebt om eventueel te controleren of een kunstwerk op tijd terug is of niet. Ik weet niet of je de retourdatum afhankelijk hebt van het kunstwerk zelf, maar in dat geval kun je dat als extra veld opnemen in de tabel [Kunstcollectie] zodat je de retourtermijn per kunstwerk vast kunt leggen. Is die facultatief kiesbaar, dan hou je daar natuurlijk een keuzelijst voor in de tabel [Kunstcollectie]. Voordeel van een termijn is dat je automatisch de datum al weet als je er een kiest, en je kunt natuurlijk een standaardwaarde gebruiken, wat met een datum nooit gaat.
De wens is:
- als ik in het klantenbestand kijk, dat ik kan zien welk schilderij en/of schilderijen bij
welke klant zijn, wanneer zij uitgeleend zijn, wat de geplande retour datum is en leen
geschiedenis.
- als ik in de kunstcollectie kijk, dat ik kan zien welk schilderij en/of schilderijen
uitgeleend zijn en aan wie, wanneer zij uitgeleend zijn, wat de geplande retour
datum is en leengeschiedenis.
Simpel op te lossen met queries waarin je de gegevens uit de tabellen combineert. Nog simpeler: als je formulieren maakt op basis van Kunstwerk krijg je er vermoedelijk al gelijk een subformulier bij op basis van Uitleen, zodat je per kunstwerk kunt zien wat zijn uitleengeschiedenis. Doe je dat op basis van Klanten, gebeurt hetzelfde en zie je dus welke klant welke kunstwerken heeft geleend.
Wat ik o.a. ook graag zou willen is dat:
- op het uitleenformulier een foto naar voren komt zodra ik het schilderij nummer intyp. Ik heb gelezen op het forum dat hiervoor een image-control aangemaakt moet worden en deze gekoppeld moet worden. Maar hoe?
Staat gewoon als knop in het Formulier ontwerp scherm. Op het forum zijn talloze voorbeelden te vinden met een praktijk uitwerking. Maar ik maak er wel een in je db :)
- Dat als in het uitleenregister wordt vastgelegd dat een schilderij - UIT- is, dat hij niet nog een keer op het zelfde moment kan worden uitgeleend
- Dat als hij wordt ingeleverd weer beschikbaar komt
Simpelste oplossing: een Ja/Nee veld [Uitgeleend] in je tabel [Kunstcollectie] zodat je in het Uitleen formulier kunt filteren op aanwezige kunstwerken. Het kan ook op basis van datumvelden. (Uitgeleend ingevuld, en Retour leeg is bijvoorbeeld een uitgeleend object)

Je kunt dus zelf al een hoop dingen nog bouwen, zoals de formulieren met subformulieren en queries :).
 
Laatst bewerkt:
OctaFisch,

Bedankt voor jouw snelle reactie.
Ik ga verder bouwen.
Klopt het dat jij de knop in de database nog zal aanmaken?
Ik zie hem nl nog niet

Jacob
 
Ik ben momenteel op vakantie, dus steek wat minder tijd in HelpMij nu :). Maar ik kijk er nog wel naar.
 
Inmiddels, na veel proberen en uitproberen, werkt het.
Krijg de gewenste foto.
Echter bij een volgend record, waar nog geen foto van is, verschijnt de foto van het laats gebruikte record. Dit is niet de bedoeling, zou graag een blanco veld willen zien.
Zal wel aan de code liggen die ik gebruik hebt.
Als iemand weet hoe dit op te lossen, hoor ik dat graag.
Ik denk zelf een andere code maar ja welke?
Blijf zelf ook proberen.

De code die ik heb gebruikt is:

Private Sub Form_Current()
On Error Resume Next
Me![ImageFrame].Picture = Me![Foto]
End Sub

Groet van
Jacob
 
Behalve dat je code niet is opgemaakt met de CODE knop (simpel aan te passen natuurlijk) is hij inderdaad niet volledig, want je moet natuurlijk dan een check inbouwen op het veld Foto. Dus iets als:
Code:
Private Sub Form_Current()
    On Error Resume Next
    If Not Me.Foto & ""="" Then 
        Me.ImageFrame.Picture = Me.Foto
    Else
        Me.ImageFrame.Picture = CurrentProject.Path & "\" & NoPic.jpg
    End If
End Sub
Hierbij is het plaatje NoPic.jpg bijvoorbeeld een plaatje met de tekst "Geen afbeelding", of een plaatje van 1 x 1 pixel dat je in Paint maakt.
 
Hallo,

OctaFisch, wat bedoel je met de CODE knop? Dit zeg mij nog niets. Waar kan ik deze vinden?

Jacob
 
De CODE knop krijg je als je op de knop <Ga geavanceerd> klikt. Of, doe zoals ik (en anderen) en typ [ code] vóór de code en [ /code] ná de code. Zonder spaties, die staan er nu omdat de code anders niet leesbaar is.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan