VBA query ook in tabel mogelijk?

Status
Niet open voor verdere reacties.

Cindy B.

Gebruiker
Lid geworden
6 mei 2002
Berichten
321
Onderstaande VBA code is gemaakt voor een query. Deze VBA berekend het gemiddelde van een aantal getallen uit de gegevens-kolom.
Is het mogelijk om deze VBA op de tabel toe te passen, waar de gegevens dus oorspronkelijk vandaan komen?

Nu heb ik speciaal een query aangemaakt, om de berekening te kunnen maken.

Option Compare Database

Public Function op_plant(a) As String

g1 = Val(Mid$(a & "-00-00-00-00-00-00-00-00-00", 1, 2))
g2 = Val(Mid$(a & "-00-00-00-00-00-00-00-00-00", 4, 2))
g3 = Val(Mid$(a & "-00-00-00-00-00-00-00-00-00", 7, 2))
g4 = Val(Mid$(a & "-00-00-00-00-00-00-00-00-00", 10, 2))
g5 = Val(Mid$(a & "-00-00-00-00-00-00-00-00-00", 13, 2))
g6 = Val(Mid$(a & "-00-00-00-00-00-00-00-00-00", 16, 2))
g7 = Val(Mid$(a & "-00-00-00-00-00-00-00-00-00", 19, 2))
g8 = Val(Mid$(a & "-00-00-00-00-00-00-00-00-00", 22, 2))
g9 = Val(Mid$(a & "-00-00-00-00-00-00-00-00-00", 25, 2))

Select Case Len(a)
Case Is < 2
op_plant = 0
Case Is < 3
op_plant = CStr(g1)
Case Is < 6
op_plant = CStr(Int((g1 + g2) / 2))
Case Is < 9
op_plant = CStr(Int((g1 + g2 + g3) / 3))
Case Is < 12
op_plant = CStr(Int((g1 + g2 + g3 + g4) / 4))
Case Is < 15
op_plant = CStr(Int((g1 + g2 + g3 + g4 + g5) / 5))
Case Is < 18
op_plant = CStr(Int((g1 + g2 + g3 + g4 + g5 + g6) / 6))
Case Is < 21
op_plant = CStr(Int((g1 + g2 + g3 + g4 + g5 + g6 + g7) / 7))
Case Is < 24
op_plant = CStr(Int((g1 + g2 + g3 + g4 + g5 + g6 + g7 + g8) / 8))
Case Else
op_plant = CStr(Int((g1 + g2 + g3 + g4 + g5 + g6 + g7 + g8 + g9) / 9))
End Select

If Len(op_plant) = 1 Then
op_plant = "0" & op_plant
End If

End Function

Ik hoop dat iemand me verder kan helpen!
 
Cindy,

Ik denk zo:

als je een Query maakt die je ganse tabel weergeeft dan kan je daar toch op werken?????

maar ik denk ook dat ik je vraag niet begrijp hoor.

Groetjes van Marrosi
 
Om gemiddelden de berekenen kun je de dAvg functie gebruiken.
Je vraagstelling is echter niet duidelijk genoeg om aan te geven hoe jij die hier kunt toepassen.
 
Je kunt wel van de query weer een tabel maken, moet je een tabelmaakquery of een toevoegquery gebruiken. Ik zeg, hij maakt er een tabel van.... een tabel is niet gemaakt om te rekenen, daarvoor zijn queries
 
Hierbij een test database ter voorbeeld.
Misschien is mijn vraag dan duidelijker.

Ik heb dus 2 tabellen, en 1 query.
In de query zit (d.m.v. VBA) een code om gemiddelden te berekenen.

Deze gemiddelden zet hij in qry RPSMF.
Echter, de query RPSMF is normaal gesproken te complex wanneer ik ook de gemiddelde kolommen uit de query toe wil voegen, dat gaat dus niet....

Vandaar mijn vraag, kan ik deze berekening ook rechtstreeks in de tabel zetten (Selecties)??

Hopelijk is het nu duidelijk genoeg, anders hoor ik het graag!

Groetjes,
Cindy
 

Bijlagen

Simpel antwoord: NEE
In een tabel kun je niet rekenen, dat doe je met queries.
In een tabel wil je ook helemaal geen berekende waarden hebben staan. Op het moment dat je die waarden nodig reken je ze gewoon even uit mbv een query.
De reden hiervoor is dat als één van de gegevens waaruit de berekende waarde berekend wordt wijzigt moet je, als je de berekende waarde in je tabel hebt staan, de berekende waarde ook bijwerken. Dat is onzin, je moet een berekening gewoon pas uitvoeren als het antwoord nodig hebt en het resultaat van een berekening nooit opslaan in een tabel.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan