Crediteur nummer koppelen aan Naam Crediteur

Status
Niet open voor verdere reacties.
Je doet niks met die query, want dat is de Rijbron van de keuzelijst. De keuzelijst gebruik je om een Crediteur uit te zoeken. Meestal maak ik mijn keuzelijst zo dat ik maar één veld hoef te gebruiken, namelijk de keuzelijst. De keuzelijst stel ik dan zo in dat ik netjes de Namen zie, en selecteer, maar dat het CrediteurID wordt opgeslagen. In dat geval zet je bij <Kolombreedten> neer: 0;3cm, en bij <Lijstbreedte>: 3,6cm. Heb je veel crediteuren, dan kun je de lijst standaard meer rijen laten zien dan 8 (access 2003) of 16 (access 2007) door bijvoorbeeld het getal 30 in de regel <Aantal rijen> te typen.

Als je de eerste kolom verbergt (breedte 0) dan zie je de Crediteurnummers niet meer, maar wel de Klantnamen. Die verschijnen dus op het scherm. In de tabel sla je echter het CrediteurID op, want dat is het veld dat je bij <Afhankelijke kolom> op de waarde 1 hebt staan.
In je tekstveld zie je nu ook de naam van de crediteur, wat uiteraard een beetje dubbel op is. Je kunt het Besturingselementbron van dat veld dus veranderen naar: =[cboCrediteur].[Column](0)

Nu is het resultaat: het tekstveld laat het CrediteurID zien, en de keuzelijst laat de Crediteur naam zien. Alleen nog even de labeltjes verwisselen, en je bent er volgens mij!
 
Ik had al een voorbeeldje klaargemaakt. Deze zou goed moeten zijn.
 

Bijlagen

er is nog 1 ding in het facturen overzicht worden de namen niet weer gegeven.
er staat hier #Naam?
 
Laatst bewerkt:
Als jouw formulier hetzelfde is als het formulier in het vorige voorbeeld, dan zal dat prima kloppen; je formulier is dan namelijk gebaseerd op de tabel Facturen. Ik zou daar een aparte selectiequery voor maken, die je baseert op de tabellen Facturen, (straks misschien ook factuurregels?) en Crediteuren. In die query neem je alle velden op die je in je formulier terug wilt zien, en kun je ook alvast berekeningen maken. Op het formulier hoef je dan eigenlijk niks te doen, behalve de velden op de juiste plek zetten. Bovendien heb je dan een query die je ook kunt gebruiken voor het Factuurrapport, dat je dan vanuit je formulier kunt genereren, afdrukken en mailen etc.
 
nu heb ik nog 2 velden Betalingstermijn en Percentage BTW
zou het veel extra werk zijn om deze ook te automatiseren?
ze zijn beide eigenlijk het zelfde idee als Crediteur nummer.
 
Dan weet je het antwoord ;) In beginsel is het niet zoveel werk, als je het gestructureerd uitvoert. Dus eerst de keuzelijst maken met de juiste velden, dan de verwijzing op het tekstveld. Ik maak het zelf in pak 'm beet drie minuten. En oefening baart kunst :D
 
en hoe kan ik nou een query die gebaseerd is op facturen maken terwijl daar de Crediteur niet in staat?
 
Facturen en Suppliers zijn toch aan elkaar gekoppeld op basis van SupplierID?
 
Nieuwe versie, met een paar stevige aanpassingen in formulier en tabelstructuur, dus bekijk het maar eens rustig...
 

Bijlagen

erg bedankt ik heb het meeste over genomen in mijn database om het een beetje beter te begrijpen. ik krijg alleen het veld crediteur nummer niet in numeriek verandert. misschien maakt dit niet uit want voor zover ik heb gezien werken de berekeningen wel.
ik kan verval datum en te betalen op velden nu toch uit mijn invoer formulier halen? Of zal ik die later nog nodig hebben?
Ook ben ik er achter gekomen dat Debiteur nr en btw % per klant het zelfde zijn ik ga proberen deze ook aan te passen.
 
Laatst bewerkt:
Ik zou het veld wel aanpassen, als je tenminste besluit om alleen getallen te gebruiken. Bij sorteren werkt het veld dan namelijk beter. Een tekstveld vind 12 kleiner dan 2 bijvoorbeeld. De reden dat je het veld niet kunt omzetten komt doordat je de koppeling nog hebt liggen tussen de tabellen. Je kunt een veld dat gebruikt wordt in een relatie niet wijzigen zonder dat je eerst de relatie verwijdert.
In je invoerformulier heb je inderdaad geen velden [Vervaldatum] en [te betalen op] meer nodig; die worden berekend. Je kunt overigens overwegen om ze wel in de tabel te gebruiken, en ze te vullen met de berekende waarden uit het formulier. Dat is een afweging die je zelf moet maken.

Een voorbeeldje waarom je dat zou doen:
Stel dat je een prijsberekening hebt, waarbij je de prijs uit de tabel Artikelen haalt. Een klant bestelt 12 stuks van artikel A, dat op dat moment een prijs heeft van € 12,50. De te betalen prijs is dan € 150,- . Tot zover niks aan de hand. Nu ga je de prijzen echter herwaarderen i.v.m. gestegen kosten. Artikel A kost dan € 14,75. In je factuurformulier en factuurrapport zou de klant nu ineens € 177,- moeten betalen: niet meer 12 * € 12,50, maar 12 * € 14,75. En dat klopt uiteraard niet.
Voor dit probleem zijn grofweg twee oplossingen: de eerste is het makkelijkst: sla de artikelprijs op in de tabel bestellingen, zodat de te berekenen factuurprijs niet uit Artikelen wordt gehaald, maar uit Bestellingen. Dit veld wordt dan gevuld op het moment dat een bestelling wordt geplaatst, en de artikelprijs dus actueel is. De tweede oplossing is wat ingewikkelder; daarbij sla je elke nieuwe prijsaanpassing op in een tabel, en zoek je de juiste prijs op in die tabel op basis van de besteldatum. De tweede oplossing is databasetechnisch beter, zoals gezegd: de eerste is makkelijker.

De reden om het in jouw situatie te doen zou bijvoorbeeld kunnen zijn dat je de Betaaltermijn wilt kunnen wisselen. Iemand die bijvoorbeeld 15 dagen heeft, en op een bepaald moment naar 30 dagen gaat, krijgt op alle facturen aan andere vervaldatum. Of dat vervelend is of niet, mag je zelf uitmaken! Maar is dat een bezwaar, dan sla je de vervaldatum dus op met de betaaltermijn die op dat moment geldig is. Zoals in het eerdere voorbeeld.
 
het probleem wat je noemde is niet van toepassing voor de database.
is het mogelijk om in het invoerformulier de vakjes: betalingstermijn en verval datum , het betalingstermijn en verval datum weer te geven?
 
als ik Debiteur nummer ook wil koppelen kom ik bij het volgende: in vakje Crediteur staat de bron Crediteur nr
en in het vakje Crediteur nummer staat code.

hoe kan ik Debiteur nummer dan het beste koppelen? ik heb al een query gemaakt met Deb nr en Naam crediteur er in,
ook heb ik in relaties Deb nr aan Debiteur nr gekoppeld.
 
Je denkt te moeilijk: het [Deb nr] ligt vast in de tabel Crediteuren, dus als je de keuzelijst aanpast naar:
Code:
SELECT [Cred nr], [Naam crediteur], [Deb nr] FROM Crediteuren;
en de keuzelijst [Debiteur nr] wijzigt in een tekstveld, kun je het deb nr uit de keuzelijst cboCrediteur halen met: =[cboCrediteur].[Column](2)
 
welke keuzelijst moet ik dan aanpassen en hoe?
ik heb in het veld Debiteur nr uit het invoer formulier =[cboCrediteur].[Column](2) geplaatst
ik weet niet precies waar ik die keuzelijst ook al weer moest aanpassen
 
De clou ligt in de tweede regel... cboCrediteur
Code:
SELECT Crediteuren.[Cred nr], Crediteuren.[Naam crediteur], Crediteuren.[Deb nr] FROM Crediteuren;
 
het werkte gisteren voor ik de database afsloot allemaal prima, maar nu ik hem weer opstart komen er foutmeldingen.
ik heb gemerkt dat als ik bij debiteur nr het tekstvak wijzig in een ander vak (van keuzevak naar tekstvak helpt ook) de meldingen weg gaan en alles normaal werkt.
als ik de database afsluit en opnieuw opstart komen de meldingen weer.
de meldingen zien er alle twee zo uit:

melding1.png



Jesse
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan