[ACCESS] Subformulier naar volgend record gaan

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

  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 09-09 14:39
Ik heb het volgende formulier met subformulier:

Afbeeldingslocatie: http://www.bart.nl/~jdbruine/form.jpg

Als ik nou op knop10 druk dan krijg ik de eerste waarde van 'aantal' uit het subformulier in het tekstvak te staan. Maar wat ik wil is alle waardes van aantal op te tellen in die in het tekstvak te zetten. Alleen kan ik nergens vinden hoe ik naar het volgende record in het subformulier ga in VBA. Weet iemand hier hoe dat moet??

Hail to the king baby!


Verwijderd

Hoezo wil je naar het volgende record van het subformulier gaan? Je kunt Sum gebruiken.

  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 09-09 14:39
Op woensdag 10 april 2002 15:22 schreef IJskoud het volgende:
Hoezo wil je naar het volgende record van het subformulier gaan? Je kunt Sum gebruiken.
hmmmz, zo simpel, dat ga ik effe proberen.

edit:

ik heb nou dit:
[code]totaal_var = CurrentDb.Execute("SELECT Sum(Aantal) FROM Mutaties WHERE (artikelcode = "" & Artikelcode_var) & "" ")[/code]
Alleen werkt ie niet zo, en ik kan er geen fout in vinden en ook geen goed voorbeeld uit de help van access. Kan iemand me nog even helpen??

Hail to the king baby!


  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 09-09 14:39
hmm, als ik currentdb.excute(strSQL) dan krijg ik een foutmelding:

Compileerfout

Er wordt een Function of variabele verwacht.

Terwijl ik in een andere database dezelfde instructies wel kan gebruiken!!

Hail to the king baby!


  • baskabas
  • Registratie: December 2000
  • Laatst online: 05-04 12:26
En als je de artikelcode tussen enkele quotes zet ipv dubbele?
code:
1
2
3
 "..sql...blaat veld = '" & var & "'"
ipv
 "..sql...blaat veld = "" & var & """

  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 09-09 14:39
Op woensdag 10 april 2002 16:38 schreef TeknoGecko het volgende:
En als je de artikelcode tussen enkele quotes zet ipv dubbele?
code:
1
2
3
 "..sql...blaat veld = '" & var & "'"
ipv
 "..sql...blaat veld = "" & var & """
Nope, vind Access niet fijn.

Hail to the king baby!


  • Sjnirk
  • Registratie: Maart 2001
  • Laatst online: 27-03-2025

Sjnirk

Hie vrieve

Dim rst As ADODB.Recordset
Dim x, i, j As Integer
Dim selectiequery As String
Set rst = New ADODB.Recordset
selectiequery = "select * from printer_afdruk_database where paprinternr =" & interndoorgeef

rst.Open selectiequery, CurrentProject.Connection, adOpenKeyset, adLockOptimistic

x = 0
rst.MoveFirst
For i = 1 To rst.RecordCount
If rst("PAfouttief") = True Then
Else
x = x + (rst("paeindstand") - rst("pabeginstand"))
j = j + 1

End If
rst.MoveNext
Next i
rst.MoveLast
gemiddeldefunctie = x / j


zoiets gebruik ik voor mijn printer op te tellen enzo, beetje aanpassen enzo werkt het bij jou ook

Bikkelen gebeurt pas na 2:00


  • baskabas
  • Registratie: December 2000
  • Laatst online: 05-04 12:26
Op woensdag 10 april 2002 16:49 schreef urk_forever het volgende:

[..]

Nope, vind Access niet fijn.
Één woord: onzin! (no offense!)

Edit3: Ff alles opgeschoont
code:
1
2
3
4
"SELECT Sum(Aantal)" & _
"FROM Mutaties" & _
"WHERE (artikelcode = '" & Artikelcode_var & "')" & _
"GROUP BY artikelcode"

(ik kwam er op het laatste moment achter dat de Group By clause er niet bij stond...)|:(

  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 09-09 14:39
Ik krijg nog steeds die compileerfout op currentdb.execute!!

Hail to the king baby!


  • Bu588
  • Registratie: Maart 2000
  • Laatst online: 22-12-2025
Waarom maak je niet gewoon een veld in de voettekst van het subformulier met daarin als source '=Sum([Aantal])'. In je hoofdformulier verwijs je naar dat vakje, en voila: het totale aantal staat er vanzelf zonder op een knop te hoeven drukken. Lijkt me een stuk makkelijker dan met queries werken :?

Nothing is fool-proof to a sufficiently talented fool...


  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 09-09 14:39
Op woensdag 10 april 2002 17:06 schreef Remy het volgende:
Waarom maak je niet gewoon een veld in de voettekst van het subformulier met daarin als source '=Sum([Aantal])'. In je hoofdformulier verwijs je naar dat vakje, en voila: het totale aantal staat er vanzelf zonder op een knop te hoeven drukken. Lijkt me een stuk makkelijker dan met queries werken :?
Ik moet er nog meer mee doen, zo moet ik ook rekening houden met het mutatie soort. Maar eerst moet ik dus proberen dat totaal voor elkaar te krijgen.

Hail to the king baby!


  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 09-09 14:39
Op woensdag 10 april 2002 16:55 schreef TeknoGecko het volgende:

[..]

Één woord: onzin! (no offense!)

Edit3: Ff alles opgeschoont
code:
1
2
3
4
"SELECT Sum(Aantal)" & _
"FROM Mutaties" & _
"WHERE (artikelcode = '" & Artikelcode_var & "')" & _
"GROUP BY artikelcode"

(ik kwam er op het laatste moment achter dat de Group By clause er niet bij stond...)|:(
Ik wil dit wel graag testen maar ik blijf die compileerfout krijgen!

[edit]
hmm, dit mag niet van Access:
code:
1
totaal_var = currentdb.excute(strsql)

Maar dit wel:
code:
1
currentdb.execute(strsql)

maar hoe krijg ik nou die output in een variabele??

Hail to the king baby!


  • Sjnirk
  • Registratie: Maart 2001
  • Laatst online: 27-03-2025

Sjnirk

Hie vrieve

werkt die regel niet als je er gewoon set voor zet?

Bikkelen gebeurt pas na 2:00


  • baskabas
  • Registratie: December 2000
  • Laatst online: 05-04 12:26
De vorige info die ik hier had gezet sloeg nergens op... mijn fout...

Hier misschien wat nuttige info:

Wat is die totaal_var voor een variabele?

Ik vermoed dat deze regel een fout geeft:
code:
1
totaal_var = CurrentDb.Execute("bladiebla..."

Omdat de de functie die je aanroept waarschijnlijk een Recordset-object teruggeeft... als dat zo is krijg je een fout...

Oplossing:
- Vervang totaal_var door een Recordset-object
- Pak dan uit de waarde uit het veld/record van dat object en zet het in totaal_var

Zoiets dus:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim rstRecorset As Recordset
Dim totaal_var As Long, strSQL As String

strSQL = _
  "SELECT Sum(Aantal) As SomAantal" & _
  "FROM Mutaties" & _
  "WHERE (artikelcode = '" & Artikelcode_var & "')" & _
  "GROUP BY artikelcode"

Set rstRecorset = CurrentDb.Execute(strSQL)

totaal_var = rstRecorset.Fields("SomAantal").Value

Set rstRecorset = Nothing

Volgens mij moet dit wel werken! :)
Pagina: 1