Toon posts:

[Access] keuzelijst koppelen aan tekstvak

Pagina: 1
Acties:
  • 2.666 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Kan ieman mij helpen met het volgende probleem:

Ik ben bezig met een database om mijn kosten in te delen, telefoonkosten, autokosten, loonkosten, ziektenkosten, restaurantkosten etc. Deze kosten hebben verschillende BTW percentages. Ik het een tabel gemaakt met daarin deze kosten met daarachter de btw percentages. Op mijn formulier heb ik een keuzelijst gemaakt, hieruit kunnen de kosten worden gekozen. Wanneer iemand bijvoorbeeld telefoonkosten kiest, wil ik dat hij automatisch in een tekstvak 19% btw invult. Weet iemand of dat dit mogelijk?

alvast bedankt!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Ik verplaats je topic even. Verder kan wat jij wil waarschijnlijk wel; wat heb je zelf nu precies staan? :)

SA > OFF

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • bazs2000
  • Registratie: November 2000
  • Laatst online: 31-07 08:16

bazs2000

Pixels zo groot als een atoom

Het zal een AfterUpdate event moeten worden.
Je hebt een tabel met daarin alle kostenposten en BTW-percentages. In de tabel waar alle gegeves koemen te staan laat je het veld 'kostenpost' verwijzen naar de tabel (of nog beter, een query) 'kostenposten'.

Je kan dan met AfterUpdate ervoor zorgen dat het BTW-veld gevuld zal worden met de waarde.
Ik baal er alleen van dat ik even niet weet welke code je daarvoor nodig hebt, wel weet ik dat AfterUpdate hier vaak voor wordt gebruikt. Je kunt allicht in die richting kijken. :)

Krankzinnige muziek vind je hier.


Verwijderd

Topicstarter
alvast bedankt voor de hulp!

De keuzelijst van de kosten werkt in het formulier, de koppeling nog niet. Ik krijg het niet voor elkaar de de betreffende kosten te kiezen en dat daarna automatisch het btw percentage ingevuld wordt in een ander keuzelijst of tekstvak. De afterupdate functie moet ik waarschijnlijk gebruiken nadat ik mijn kosten keuze heb gemaakt.

  • bazs2000
  • Registratie: November 2000
  • Laatst online: 31-07 08:16

bazs2000

Pixels zo groot als een atoom

De AfterUpdate stel je in, in de combobox.
Wanneer je dan een waarde selecteert, dan zal de AfterUpdate iets doen. Je kan deze een query laten uitvoeren en de uitkomst daarvan (bijvoorbeeld BTW percentages) in een tekstveld laten schrijven. Ik ga even kijken of ik iets kan vinden. :)

Krankzinnige muziek vind je hier.


Verwijderd

Topicstarter
bedankt!, daar zou je me heel erg mee helpen!!

  • bazs2000
  • Registratie: November 2000
  • Laatst online: 31-07 08:16

bazs2000

Pixels zo groot als een atoom

Oké,

Speelgoed om van te leren, ik heb even moeten knoeien want het was alweer te lang geleden dat ik zoiets heb gedaan. :P

Maak een tabel (in een nieuwe Database).


Naam tabel: tblTypes
[Veldnaam] [Veldtype]
Veld1: ID - Autonummering
Veld2: Type - tekst
Veld3: BTW - tekst

Vul tblTypes met de waarden die je wilt gebruiken Telefoonkosten, autokosten en de daarbij behorende BTW waardes.
Maak nu nog een tabel.

Naam Tabel: tblData
[Veldnaam] [Veldtype]
Veld1: IDD - Autonummering
Veld2: Naam - Tekst
Veld3: Type - [Wizard opzoeken]
Veld4: BTW - tekst
Veld5: Kosten - tekst
Veld6: Totale kosten - tekst

Bij wizard opzoeken kies je tabel tblTypes en selecteer de kolommen "Type" en "BTW".
Doe voltooien en zorg ervoor dat de veldnaam "Type" heet (anders heet het veld "ID").

Nu heb je de tabellen en wordt het tijd om een formuliertje te maken.
Doe je gewoon met de wizard (even niet moeilijk doen :P ). Maak het formulier op basis van de tabel "tblData" en sla deze op als "frmData".

En dan komt nu het echte werk, ga naar de eigenschappen van combobox "Type" en klik bij "Na bijwerken" op de knop met de puntjes. Je gaat VB-code toevoegen dus kies voor Modulebewerking.

Kopiëer nu het volgende in de editor:
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Option Compare Database
Option Explicit
'Roep AfterUpdate aan zodat deze iets gaat doen.

Private Sub Type_AfterUpdate()

'Me.BTW betekent niets meer dan tekstveld BTW op het formulier'
'= Me![Type] Betekent dat hij in de combobox naar de waarde gaat zoeken
' en wegschrijft in het veld BTW'
'.Column(2) betekent dat hij in de tweede kolom (waar de BTW-waardes staan) gaat kijken'

   Me.BTW = Me![Type].Column(2)
   
End Sub

Sla de handel op en ga weer terug naar het formulier.
Kies nu maar eens iets in de combobox en voila, de BTW-waarde zal worden ingevuld. :P

[ Voor 34% gewijzigd door bazs2000 op 30-06-2005 15:41 ]

Krankzinnige muziek vind je hier.


Verwijderd

Topicstarter
Heel Erg bBedankt :), ga er mee aan de slag. Laat zo horen of het gelukt is!!

Verwijderd

Topicstarter
Hmm, bij Type krijg ik nu de keuze uit al de btw waarden die ik ingevuld hebt in mijn tbltypes.

  • bazs2000
  • Registratie: November 2000
  • Laatst online: 31-07 08:16

bazs2000

Pixels zo groot als een atoom

Ik ben benieuwd.
Je kunt dit trouwens voor alles gebruiken., je zou een andere combobox zijn waarden kunnen laten verkrijgen op deze manier. Ideaal als je een query maakt voor iets waarvan je zelf de variabelen wilt opgeven zonder dat je iedere keer een andere query moet maken.

Ideaal voor de luie mensen onder ons. :P

Edit:
Que? Ik ga even kijken.
Ik heb Access 97 hier waar het gewoon in werkt.

[ Voor 12% gewijzigd door bazs2000 op 30-06-2005 16:06 ]

Krankzinnige muziek vind je hier.


Verwijderd

Topicstarter
Bij type heb ik nu inderdaad mijn kosten staan maar ik krijg daarna een fout, nog effe proberen.

  • bazs2000
  • Registratie: November 2000
  • Laatst online: 31-07 08:16

bazs2000

Pixels zo groot als een atoom

Oké, in de tabel "tblData", wat heb je bij de eigenschappen 'opzoeken' van het veld Type?
Staat er bij "Rijbron" dit?
code:
1
SELECT DISTINCTROW [tblTypes].[ID], [tblTypes].[Type], [tblTypes].[BTW] FROM [tblTypes];

Het kan zijn dat je de kolommen [tblTypes].[Type].[tblTypes].[BTW] hebt omgewisseld.
Kopiëer anders de regel van mij maar, die is zeker weten goed.

Krankzinnige muziek vind je hier.


Verwijderd

Topicstarter
Ik denk dat het probleem bij mij ligt dat de veldtype verkeerd zijn van Type. In de ene tabel is het teks, in de andere tabel (bij wizard opzoeken) maakt hij er numeriek van.

  • bazs2000
  • Registratie: November 2000
  • Laatst online: 31-07 08:16

bazs2000

Pixels zo groot als een atoom

Dat doet hij bij mij ook, maakt niet veel uit want hij neemt de waarden wel over.
Ik heb dit vanmiddag al voor je gemaakt (ik kan het niet uit mijn hoofd opratelen), moet ik het naar jou mailen?

Krankzinnige muziek vind je hier.


Verwijderd

Topicstarter
ja graag wanneer ik de wizard opzoeken heb gedaan maakt hij er numeriek van, de waarde in de andere tabel is teks(al de kosten)

edit: ik heb access 2000

[ Voor 11% gewijzigd door Verwijderd op 30-06-2005 16:24 ]


Verwijderd

Topicstarter
is het mogelijk jou een PM te sturen, of kan ik mijn emailadres op het forum zetten

  • Wilfred
  • Registratie: Januari 2000
  • Laatst online: 22-08-2022
Bij het after update event van de combo box (keuzelijst met invoervak) zet je:

me.txtBTW = me.keuzelijstmetinvoervak1

de bound column (afhankelijke kolom) in de eigenschappen van je keuzelijst zet je op 2.
Hiermee komt de waarde uit de 2e kolom mee.

Suc6

Ik heb het voor de zekerheid nog ff getest en het werkt echt... ;)

Private Sub Keuzelijst_met_invoervak0_AfterUpdate()
Me.Tekst2 = Me.Keuzelijst_met_invoervak0
End Sub


Als het van tekst naar nummeriek moet doe je:
Private Sub Keuzelijst_met_invoervak0_AfterUpdate()
Me.Tekst2 = Clng(Me.Keuzelijst_met_invoervak0)
End Sub

[ Voor 16% gewijzigd door Wilfred op 30-06-2005 16:31 ]

Sign of my Time


  • Herby
  • Registratie: Januari 2004
  • Laatst online: 17-01-2022

Herby

Stalknecht

Waarom niet gewoon met de wizard een dropdown list maken en dan de uitkomst laten opslaan in een tabel (tekstveld)

Compromis? Hoezo heb ik het mis dan?! | Geluk = gelul met een K | з=(•̪●)=ε


  • Wilfred
  • Registratie: Januari 2000
  • Laatst online: 22-08-2022
Ja dat kan natuurlijk ook!

Sign of my Time


Verwijderd

Topicstarter
Wanneer ik type kies (telefoonkosten, autokosten etc.) ik een foutmelding krijg dat de velden niet overeenkomen. In de tbldata staat namelijk by type dat het numeriek veld moet zijn. Ik krijg dit ook niet veranderd, na de wizard opzoeken maakt hij dit er automatisch van. Wanneer ik het wil wijzigen zegt access dat het onmogelijk is.

  • Wilfred
  • Registratie: Januari 2000
  • Laatst online: 22-08-2022
Private Sub Keuzelijst_met_invoervak0_AfterUpdate()
Me.Tekst2 = Clng(Me.Keuzelijst_met_invoervak0)
End Sub
met clng functie zet je het stringetje om in een nummeriek veld.

Je moet wel even controleren welke kolom hij pakt. Anders kan hij het niet omzetten naar een nummer. Het eerste veld zijn tenslotte alleen letters.

[ Voor 55% gewijzigd door Wilfred op 30-06-2005 16:48 ]

Sign of my Time


Verwijderd

Topicstarter
hmm, werkt niet steeds niet geeft dezelfde fout. Dit staat er nu:

Option Compare Database
Option Explicit

Private Sub Type_AfterUpdate()
Me.BTW = CLng(Me![Type].Column(2))
End Sub

  • Wilfred
  • Registratie: Januari 2000
  • Laatst online: 22-08-2022
Als je een breekpunt zet en je muis boven je code houd wat geeft hij dan als waarde aan?
Misschien begint hij namelijk met tellen bij 0 en moet je kolom 1 hebben....

[ Voor 31% gewijzigd door Wilfred op 30-06-2005 16:50 ]

Sign of my Time


Verwijderd

Topicstarter
Wanneer ik nummers by Type in tbltype invul, werkt hij fantastisch. Het komt gewoon door het numerieke veld en het tekst veld. Wanneer ik de tabellen koppel d.mv. de wizard opzoeken maakt hij er automatisch numeriek van

  • Wilfred
  • Registratie: Januari 2000
  • Laatst online: 22-08-2022
Probeer anders eens direct naar je keuzelijst met invoervak te verwijzen.
Daarvan weet ik dat hij bij een begint te tellen.

Sign of my Time


Verwijderd

Topicstarter
Hij doet het eindelijk. De wizard maakt er automatisch een numeriek veld van, als je dan meteen je tabel opslaat kan ik hem niet meer veranderen. Als ik eerst de wizard uitvoer daarna het veld verander naar tekst, werkt hij wel.

Erg bedankt voor al jullie hulp, in het bijzonder basz2000!!!

[ Voor 3% gewijzigd door Verwijderd op 30-06-2005 17:02 ]


  • bazs2000
  • Registratie: November 2000
  • Laatst online: 31-07 08:16

bazs2000

Pixels zo groot als een atoom

HerbyNL schreef op donderdag 30 juni 2005 @ 16:29:
Waarom niet gewoon met de wizard een dropdown list maken en dan de uitkomst laten opslaan in een tabel (tekstveld)
Waarom niet?
Als je al een bestaande tabel hebt en je maakt op basis van die tabel een combobox dan kun je ten alle tijden deze lijst uitbreiden.

Ik heb altijd wel een FRM_Admin vanwaar ik gebruikers toevoeg of keuzes toevoeg aan bestaande tabellen. Veel velden in die tabellen gebruik ik ook om comboboxes mee te vullen en om iedere keer handmatig nieuwe invoer toe te voegen, dat gaat te ver. Het kan allemaal makkelijk, een wizard lijkt in het begin wel leuk totdat je erachter komt dat een wizard alles op een smerige manier toepast.

Met de hand bouw je één keer de basis en daarna is het alleen maar toevoegen en bijhouden. :)

Krankzinnige muziek vind je hier.

Pagina: 1