Selectie van gegevens invullen in bepaalde velden van een andere tabel

Status
Niet open voor verdere reacties.

rolfohtar

Gebruiker
Lid geworden
23 aug 2008
Berichten
136
Hallo,

Ik loop tegen een probleem aan met access, waar ik niet uit kom.

De opzet is als volgt:
  1. Een formulier genaamd frmInkomsten, die zijn gegevens haalt uit qryInkomsten.
  2. Een formulier genaamd frmInkomsten_factuur die zijn gegevens haalt uit qryFacturen. Met de velden:
    • Combobox, genaamd cbZoekFactuur, waarin ik een factuur kan selecteren.
    • Field, Factuurnummer
    • Field, Klantnummer
    • Field, Bedrijfsnaam
    • Field, Factuurbedrag

Met formulier 2, frmInkomsten_factuur, kan ik de factuur opzoeken die ik wil invoeren als nieuwe record of in de huidige record in frmInkomsten. De velden die bij frmInkomsten_factuur staan, worden al ingevuld door de combobox.

Nu wil ik dus graag, met behulp van een knop (cmdInvoeren) de gegevens in de velden van frmInkomsten_factuur kopieëren/invullen naar de gelijknamige velden in een nieuwe of huidige record van frmInkomsten.

Gelijktijdig wil ik dan de factuur afvinken alszijnde betaald. Dat laatste heb ik met onderstaande code al gedaan.

Code:
Private Sub cmdInvoeren_Click()
        Me.Betaald.Value = -1
    If (Me.Form.Dirty) Then
        DoCmd.RunCommand acCmdSaveRecord
    End If
        DoCmd.Close acForm, "Inkomsten_factuur"
End Sub

Hoe krijg ik dit voor elkaar?
 
Ik zit er nu een tijdje naar te kijken, en ik snap er nog steeds niks van... Wat heeft je formulier Inkomsten met je formulier Facturen te maken? En wat wil je van Facturen precies kopieëren naar Inkomsten? Het opzoeken van een factuur, en dus de daarbij behorende Factuurnummer, kun je net zo goed via een keuzelijst op frmInkomsten zetten; je kunt daar dezelfde query onder hangen die je nu op het formulier frmInkomsten_Facturen voor gebruikt. En dan heb je alle factuurgegevens in de keuzelijst staan, en kun je ze dus gelijk in je formulier opnemen. Dus wat is dan de meerwaarde van een extra formulier? De factuur afboeken die je selecteert kun je namelijk ook vanuit die keuzelijst triggeren met een bijwerkquery.
 
Als eerste bedankt voor je reactie. Ik zal het nogmaals proberen uit te leggen. Ik wil een aantal gegevensvelden van de geselecteerde factuur invoeren in het formulier Inkomsten. Dus bepaalde gegevens kopiëren naar een aantal velden in een andere tabel. De reden dat ik een extra form gebruik (als popup) is omdat ik dan een preview heb van de factuur en het staat beter (anders wordt de Inkomsten form te vol). Daarnaast moeten de gegevens die op Inkomsten worden ingevuld statisch zijn, dus als ik iets in Facturen per ongeluk verander moet dit niet terug komen in Inkomsten.
Hoop dat je het zo beter begrijpt.

[edit]
Ik denk dat als ik de query van Inkomsten en Facuur aan elkaar koppel (zoals jij zegt), dat ik dan de factuur kan selecteren op die methode. Maar dan weet ik niet hoe ik een veld naar een ander veld gekopieerd krijg met een knop. Bijvoorbeeld van [Factuurnummer] naar [inkFactuurnummer], [Bedrijfsnaam] naar [inkBedrijfsnaam], etc...
 
Laatst bewerkt:
Ik vraag me af of je factuur records wel mag veranderen; heb je eenmaal een factuur verstuurd dan lijkt mij dat toch redelijk definitief... In ieder geval voor de klant! En dus zouden je inkomsten, die je blijkbaar berekent a.d.h.v. de facturen, dat ook moeten zijn. Dus ik zou zelf zo'n koppeling wel aandurven. Bovendien kun je een facturenformulier natuurlijk beveiligen tegen ongewenste mutaties. Op dezelfde manier dat je factuurgegevens kunt veranderen, kan dat uiteraard ook in de tabel Inkomsten, dus mij lijkt jouw oplossing een vorm van schijnbeveiliging. Maar gelukkig is dat jouw beslissing :)
Wil je toch gegevens kopiëren vanuit je factuur, en je hebt die keuzelijst gemaakt zoals ik voorstel, dan kun je de velden vanuit de factuur keuzelijst in je tekstvakken op je inkomsten formulier zetten. Via een gebeurtenis <Bij Klikken> (of <Na bijwerken>van de keuzelijst bijvoorbeeld. Je koppelt de over te halen tekstvelden aan je tabel Inkomsten, en vult met de gebeurtenis de tekstvakken.

Code:
Me.Factuurnummer = Me.cboFactuur.Column(0)
Me.Klantnummer = Me.cboFactuur.Column(1)
Me.Factuurbedrag = Me.cboFactuur.Column(3)

Om maar eens wat te noemen. De truc is dat je elke waarde uit een keuzelijst kolom toewijst aan een tekstveld. Op deze manier hou je de Besturingselementbron vrij om te koppelen aan de tabel Inkomsten
 
Het heeft even wat gepuzzel gekost en ik heb jouw oplossing aan de praat gekregen. Bedankt voor je hulp en info!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan