klant kiezen en weergeven op formulier

Status
Niet open voor verdere reacties.

leek01

Gebruiker
Lid geworden
3 okt 2017
Berichten
17
Dag Allen,

Ik ben bezig met een database voor facturen.
De bedoeling is dat een klant een factuur kan opstellen en verzenden. Mijn probleem is nu om een en dezelfde klant een factuur te sturen.

De opzet is:
Ik heb een formulier met daarin de velden voor de factuurgegevens die ingegeven kunnen worden. En dit formulier is gekoppeld aan een sub-formulier met daarin de order gegevens.
Het formulier (frm_boekingen) is gekoppeld aan tb_factuur en de sub-formulier aan tb_orders. Ik heb nog een tb_klanten met daarin de naw-gegevens van de klanten.
Nu wil ik op hetzelfde formulier (frm_boekingen) dat de gebruiker de klant kan kiezen en dat de klantgegevens zichtbaar worden op het formulier en dat de gegevens ook opgenomen worden in tb_factuur.

Principe is eigenlijk heel simpel maar de uitvoering blijkt nogal problematisch.

Ik heb veel zitten surfen op de web en noordenwind database geraadpleegd maar bieden geen oplossing.
Wie kan me hiermee helpen aub ?
 
En toch is het vrij simpel. Je kunt op je facturentabel een keuzelijst maken waarin je de klant kiest. De velden die je verder nodig hebt voor de factuur zitten dan in de query die onder het formulier hangt. Kies je een klant, dan worden automatisch de andere velden ingevuld.
 
Ik heb veel zaken overwogen en getest maar deze wist ik niet. Ik ga het vanavond even testen.
Ik hoop dat het zo simpel is.

Ik zal mijn ervaring morgen hier aangeven.
Bedankt voor de snelle reactie.
 
Nog even wat extra info dan :). Er zijn twee technieken:
1. Neem de klantvelden op in de query die je gebruikt voor het formulier
2. Neem de klantvelden op in de query die je gebruikt voor de keuzelijst

De werking van de twee is net een beetje anders, dus daar is wel wat te kiezen. Optie 1 heeft als voordeel dat je de query vermoedelijk ook kunt gebruiken voor het rapport dat je maakt van de factuur. Omdat de velden al in de query zitten, hoef je daar weinig extra voor te doen. Wel is het zo dat in beginsel de NAW velden te muteren zijn, en dat zal je niet altijd willen bij het opstellen van een factuur. Daar moet je dus rekening mee houden.
Optie 2 houdt de gegevensbron klein (geen extra velden nodig) maar daarbij moet je de gegevens via een formule uit de keuzelijst halen en koppelen aan een niet-gebonden tekstvak. Voordeel: de gegevens zijn nooit (per ongeluk) te wijzigen. Nadeel is, dat je voor een rapport dezelfde techniek moet gebruiken om de NAW gegevens op het rapport te zien. Al kun je voor het rapport natuurlijk ook een aangepaste query maken die dat probleem niet heeft.
 
Bedankt voor de aanvulling.

Voor het rapport is geen probleem daar verzin ik wel wat op. Waar het mij omgaat is dat de velden vrl, vgl, naam, adres, postcode en woonplaats op het formulier komen te staan. Zodat de gebruiker kan zien aan wie hij/zij de factuur gaat verzenden. Het gaat om visueel effect. Ik kan de gegevens binnenhalen middels een query.
Wat ik zover heb kunnen regelen is een meerkeuzevak op het formulier. De waarde die dan wordt opgehaald wordt opgeslagen in de tb_factuur. Vanuit een query koppel ik de gegevens (klant aan factuur) aan elkaar. Dit vormt geen probleem ook niet voor het rapport. Maar op het formulier is alleen de KlantID zichtbaar.

Het probleem is de gegevens zichtbaar krijgen op het formulier, de velden dus. Dat schijn ik maar niet voor elkaar te kunnen krijgen.
Maar ik kom hier morgen, als ik je voorstel heb uitgeprobeerd, hierop terug.

mvg
 
ter verduidelijking:

Ik heb hier een oude database die ik heb gemaakt maar hier is sprake van de klant zelf ingeven. Dus 1 klant is 1 factuur. Hier zijn 2 tabellen mee gemoeid en het werkt perfect. Maar is wel omslachtig.

Nieuwe opzet is dus een factuur opstellen zonder de klant gegevens telkens in te geven.
Het formulier bestaat uit 3 delen. Het blauwe gedeelte is de subformulier en deze heeft een tabel als bronbestand, tb_Orders. Het paarse gedeelte is het formulier met als bronbestand tb_Factuur.

Het rode is nu wat ik middels een keuze automatisch gevuld wil hebben. Voor het muteren van de gegevens maak ik me geen zorgen, deze kun je beveiligen.

Bekijk bijlage 308617
 
Laatst bewerkt:
Je bijlage werkt niet; een Access db kun je sowieso alleen uploaden als een zip file.
 
Het is niet de database maar een jpeg van het formulier.
Zou toch geen problemen mogen geven.

Ik zal deze als zip file opnemen dit keer.

formulier.jpg
 

Bijlagen

  • formulier.zip
    110,6 KB · Weergaven: 61
Plaatjes mogen altijd; wellicht is de extensie weggevallen of zoiets. Het is nu in ieder geval goed te bekijken. Inderdaad: dit formulier zou met een keuzelijst voor het KlantID alle overige klantgegevens zo moeten kunnen ophalen.
 
Klant meerdere keren gebruiken voor een factuur

Dag OctaFish,

Het is gelukt. Na wat gefriemel met relaties in de query heb ik gekozen voor optie 1. Het werkt nu perfect!
De velden zijn vergrendeld dus kunnen niet gewijzigd worden. Komt de klant niet voor dan zal deze via een link aangemaakt moeten worden anders kan de gebruiker niet verder.
De wijziging van deze gegevens kan alleen via een formulier dat gekoppeld is aan de tb_Klanten.

Hartelijk dank voor je hulp en wellicht tot binnenkort.


PS: Wat ik al jaren niet voor elkaar kan krijgen is het volgende.

De database komt op een schijf binnen een bepaalde map. Ik heb een aantal links die verwijzen naar een map met bestanden die af en toe aangeroepen moeten worden.
Ik gebruik daarvoor standaard de C-schijf. Maar als een gebruiker de database bv. op een D- of E-schijf wegzet dan werken deze links niet meer.

Is er een methode die ik voor de links kan gebruiken zodat de links altijd zullen werken ongeacht waar de database zich bevindt ?
Zo ja, hoe is dit voor elkaar te krijgen?
Zo nee, dan houdt het op.

:p

mvg
 
Komt de klant niet voor dan zal deze via een link aangemaakt moeten worden anders kan de gebruiker niet verder.
Dat hoeft niet zo: een keuzelijst heeft de gebeurtenis <Bij niet in lijst> en als een gebruiker een naam invoert die niet bestaat, wordt die gebeurtenis getriggerd. Ik gebruik hem om dan een formulier te openen waarin een nieuwe klant kan worden gekozen, en waarbij de ingetypte naam dan automatisch in het naamveld wordt ingevuld (met correctie op Hoofdlettergebruik). Dat is handig voor de gebruiker, want die hoeft nergens meer op te klikken en een deel van de informatie is al ingevuld. Ben je klaar met invoeren van de nieuwe klant, dan sla je hem op de normale manier op en kom je weer in het vertrekformulier terecht, waar de nieuwe klant dan al geselecteerd is. Want dat was tenslotte ook de bedoeling.

Maar als een gebruiker de database bv. op een D- of E-schijf wegzet dan werken deze links niet meer. Is er een methode die ik voor de links kan gebruiken zodat de links altijd zullen werken ongeacht waar de database zich bevindt ?
Als de mappen onder de map hangen waar de db in staat, kun je met CurrentProject.Path het pad uitlezen van de huidige database. Sowieso heb je dan de schijf waar de db staat, dus van daaruit kun je ook wel verder bouwen.
 
Dat is mooi, want dat mag/moet je helemaal zelf doen :). Bovenin de blauwe balk vind je daar een knop voor.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan