[VB in Access

Pagina: 1
Acties:

  • ocke
  • Registratie: Juni 2000
  • Laatst online: 10-04 18:26
Ik ben bezig met een database te maken. Deze krijg ik op een punt echter niet aan het werken. Ik heb een formulier genaamd "Bekijk werkuren". In dit formulier kun je totale bekijk van een geslecteerde optie. Dus je kan bv een datum selecteren, en dan worden de totalen van die dag weergegeven. Maar dat lukt dus niet echt

Ik heb een VB code:

Private Sub Keuzelijst_Dag_AfterUpdate()
DoCmd.RunSQL ("SELECT SUM (Tijd) AS [Totaal]" _
& " FROM Werkuren" _
& " WHERE (Datum = [Keuzelijst_Dag]);")
End Sub

Als query zelf, doet ie het perfect, maar in de vb code geimplenteerd werkt het niet. Hij de Werkuren tabel benaderen, daar Tijd kolom pakken waar de datum overeen komt met een textboxje uit me formuliertje, en dan alles optellen, en die waarde zetten in een ander textboxje genaam "totaal".

Suggesties?

  • Paxlie
  • Registratie: Oktober 2000
  • Laatst online: 09-02 10:40

Paxlie

chaos en inslag

DoCmd.Runsql heeft geen haakjes eromheen nodig en die ; moet je ook weghalen :)
dus dan krijg je:
code:
1
2
3
4
5
Private Sub Keuzelijst_Dag_AfterUpdate()
DoCmd.RunSQL "SELECT SUM(Tijd) AS Totaal" _
& " FROM Werkuren" _
& " WHERE Datum = #" & [Keuzelijst_Dag] & "#"
End Sub

Ik ga er hier vanuit dat je keuzelijst_dag een listbox is ofzoiets. en dat Datum een datum-veld is. Tevens behoeft totaal geen [].
Verder voer je zo alleen een SQL-query uit dus je kan het beter met de functie DLookup doen. Zoek hier maar naar in de help van Access, staat er perfect uitgelegd. dan krijg je dus:

code:
1
Forms.Formnaam.Textboxnaam.value = DLookup()

Let op, dat is pseudo code voor je me uit begint te schelden :)

Wie werd waar wanneer geboren en waarom werd hij door wie hoe genoemd?
braque© zijn is een keuze


  • ocke
  • Registratie: Juni 2000
  • Laatst online: 10-04 18:26
AH bedankt. Ik ga het uitproberen. :)

Verwijderd

Nou is DLookup niet de meest snelle manier... Je zou ook DSUM kunnen gebruiken, dan hoef je de query zelf niets eens op te slaan (DSUM is net als DLOOKUP traag). Je zou ook nog een recordset kunnen maken op basis van de Query en het resultaat daarvan tonen in een tekstbox, dat lijkt me de meest efficiënte manier.

  • Paxlie
  • Registratie: Oktober 2000
  • Laatst online: 09-02 10:40

Paxlie

chaos en inslag

Bij een recordset heb je volgens mij altijd te maken met een complete 2d-array met data. Als je dus maar 1 enkele waarde wil hebben is volgens mij DLookup het snelste (ff kijken via brute benchmark met 60000x hetzelfde doen lijkt me wel leuk :) )

Voor veel data is een recordset uiteraard wel een heel stuk sneller, maar hij wil hier maar 1 waarde hebben. Vandaar de DLookup-functie

Wie werd waar wanneer geboren en waarom werd hij door wie hoe genoemd?
braque© zijn is een keuze


  • ocke
  • Registratie: Juni 2000
  • Laatst online: 10-04 18:26
ik heb idd Dsum gebruikt, maar ik leerde die pas kennen toen Paxlie over Dlookup begon.. MAar Paxlie thx, en jij ook JeroenDega
Pagina: 1