Toon posts:

ook een wiskundig VB/Access vraagje

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik moet een getal in vierkante meter weergeven in hectares, dit houdt het volgende in:

123456 vierkante meter

moet weergegeven worden als:

12 ha 34 are 56 ca

Hoe doe ik dit.

  • stylee
  • Registratie: December 2000
  • Laatst online: 04-09-2021

stylee

blah zeg ik je

wat heb je geprobeerd, wat lukt niet? :Z

  • CrashOne
  • Registratie: Juli 2000
  • Niet online

CrashOne

oOoOoOoOoOoOoOoOoOo

string ontleden, splitten en klaar...

Zou niet weten hoe je het in VB doet.. Kan alleen Java..

Huur mij in als freelance SEO consultant!


  • Krul
  • Registratie: November 2000
  • Laatst online: 31-08 15:38

Krul

Holodoc

Ik ben niet bekend met VB/access, maar zal met mod % operator moeten kunnen.
Zo zou ik het dus in Java/C doen.

Verwijderd

Topicstarter
Eerst delen door 10.000 dan hou de je eerste 2 cijfers over,dan zet ik het aantal decimalen op 0.
en hou ik dus 12 (getal 1) over, maar dan onthoudt hij ook de cijfers achter de komma dus dan kan ik daarmee nog niet verder rekenen dus weer 123456 - getal 1 = 0 en niet 0,3456.
Dit moet waarschijnlijk met rest of zoiets.

Verwijderd

telkens mod 100 doen en dan delen door 100

a = 123456
a mod 100 (is dan 56)
a = a div 100 (is dan 1234)
a mod 100 (is dan 34)
a = a div 100 (is dan 12)

dan nog even juiste stringetjes erachter plakken.
Of bedoel je dit niet?

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

ha = afronden (opp / 10000 )
a = afronden ( (opp - ha ) / 100)
ca = opp - ha - a

Wat afronden is kan je vinden onder F1 :)

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Verwijderd

Topicstarter
Weet iemand ook hoe je dit dan in een tekstvak ine en rapport van Access kan zetten.

Verwijderd

Ja dat weet ik. De samengestelde string heet bijvoorbeeld Grootte

dan tik je in
TextBox.value = Grootte

Verwijderd

Topicstarter
Dit is me nog niet duidelijk genoeg, hoe/waar zet ik die samengestelde string dan neer in een query of tabel of in het rapport zelf

Verwijderd

In de VBA code van het rapport.

Verwijderd

Topicstarter
Ik heb nu het volgende in VB geschreven:

a = Som((([ha] * 10000) + ([are] * 100) + [ca]) / 10000)

ha = a Mod 100
are = ha / 100
ca = are Mod 100
ca1 = are / 100
totaal = "Totale grootte: " & ha & " ha " & are & " are " & ca1 & " ca "

TextBox.Value = totaal


Hoe zorg ik er dan voor dat deze textbox in het rapport te zien is. Sorry heb niet zoveel verstand van Access. In het vakje staat nu niet afhankelijk en er wordt niks weer gegeven.

  • .GoO
  • Registratie: September 2001
  • Laatst online: 26-08 10:06
kan je niet gewoon Left( ) en Right( ) gebruiken?

Verwijderd

Private Sub Report_Activate()

Je moet ervoor zorgen dat de textbox op het rapport ook die naam heeft die voor .value staat. En de code moet tussen de deze tags, zodat hij deze uitvoerd bij het openen van het rapport


end sub

Verwijderd

Topicstarter
Ik heb nu een query gemaakt die het totaal uitrekend, deze heet som en staat ook in het rapport, dan heb ik de volgende Vb code

Option Compare Database
Private Sub Report_Activate()
a = [Som]
ha1 = a Mod 100
are1 = ha / 100
ca1 = are Mod 100
ca2 = are / 100
totaal = "Totale grootte: " & ha1 & " ha " & are1 & " are " & ca1 & " ca "
totaal.Value = totaal
End Sub

De waarde van Som = in een voorbeeld 1600

Toch krijg ik 3 x de waarde 0

en niet 0 ha 16 are 0 ca

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

are1 = ha / 100
-----

ca1 =
are Mod 100
----

Zou je hier geen are1 van maken...

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Verwijderd

Topicstarter
dat had ik al gezien

Verwijderd

Topicstarter
Dit heb ik nu en werkt nog steeds niet :(

Verwijderd

Topicstarter
Option Compare Database
Private Sub Report_Activate()
a = [Som]
ca = a Mod 100
are1 = ca / 100
are = are1 Mod 100
ha = are / 100
totaal = "Totale grootte: " & ha & " ha " & are & " are " & ca & " ca "
totaal.Value = totaal
End Sub

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

a = [Som] ** = 16000
ca = a Mod 100 ** = 0
are1 = ca / 100 ** = 0 / 100 = 0
are = are1 Mod 100 ** = 0 mod 100 = 0
ha = are / 100 ** = 0 / 100 = 0

Klopt als een bus ;-)

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Verwijderd

Topicstarter
Okaj dank u allen ik ben eruit als volgt:

Option Compare Database
Private Sub Report_Activate()
a = [Som]
ca = a Mod 100
a1 = a / 100
are = a1 Mod 100
a2 = a1 / 100
ha = a2 Mod 100

totaal = "Totale grootte: " & ha & " ha " & are & " are " & ca & " ca "
totaal.Value = totaal
End Sub

Verwijderd

Topicstarter
Hmm.. als ik hem nu als subrapport in een ander rapport zet geeft ie nog niks weer...

Verwijderd

Kunt de waarde ook rechtstreeks in de eigenschap Besturingselementbron van rapport/schermveld invoegen, als volgt:
code:
1
=berekenfunctie(waardeveld)

waarin berekenfunctie een global function moet zijn waarin je je string berekent en waardeveld het veld waarop je string gebaseerd moet zijn. Moet je dus wel een global functie met als parameter waardeveld maken. Als het subformulier niets toont heb je waarschijnlijk de verwijzing naar waardeveld niet goed gezet, moet geloof ik als volgt:
code:
1
Forms!Formuliernaam!waardeveld

maar precieze notatie moet je maar even in F1 zoeken
Pagina: 1