Toon posts:

[Access 2003]Cases tellen adhv veld in subform

Pagina: 1
Acties:

Verwijderd

Topicstarter
Heren, dit houdt me al veel te lang bezig:

Ik heb een textveld waar ik een uniek casenummer in opgeef, mn duplo query zoekt daar de rest van de gegevens bij en vult een subform met alle gegevens.

In dat subform vult de query ook de naam van het bedrijf waar de case bij hoort.
Nu wil ik dat een veld in het hoofdform het totaal aantal cases weergeeft dat hoort bij het specifieke bedrijf.... maar om de een of andere reden wordt de query niet geaccepteerd:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
Private Sub Caseaantal_GotFocus()
On Error GoTo Err_Caseaantal_GotFocus

Dim strSQL As String
    
    strSQL = "SELECT Count(Cases.[Case id]) AS [CountOfCase id] FROM Cases WHERE Cases.Klant=[Klantnr];"
    DoCmd.RunSQL strSQL

Err_Caseaantal_GotFocus:
End Sub


Uiteraard heeft de code hierboven er eerst veel uitgebreider uitgezien, nu dit voor het overzicht.

[Klantnr] is overigens een textveld. Ik heb al iets in de trant van Casesubform.Form.Klantnr.Text geprobeerd maar dan krijg ik een foutmelding dat RunSQL een geldige SQL regel verwacht.
Nu doet ie niets.

Ik wil dus eigenlijk [Klantnr] vullen met een naam uit een veld op het subform en ik wil het resultaat van de query teruggooien in het textveld Caseaantal. Kan iemand mij zeggen hoe ik daar wijs naar de inhoudt van het veld op het subform?

Die SetFocus is overigens ook niet ideaal dus als ik de code aan de onChange kan plakken van het veld waar ik het casenummer invul zou ideaal zijn.

Als ik bovenstaande query vanuit een kant en klare query uitvoer vraagt ie keurig om de waarde voor de [Klantnr] en krijg ik ook een juist resultaat terug.

Iemand een idee? Lijkt dit op een scriptrequest? misschien maar op een gegeven moment heb ik lang genoeg geprutst en genoeg internetwebsites afgelopen... HELP

[ Voor 1% gewijzigd door NMe op 11-05-2005 23:54 . Reden: Code-tags ;) ]


  • BertS
  • Registratie: September 2004
  • Laatst online: 13-02 08:33
DoCmd.RunSQL is bedoeld voor het uitvoeren van een sql-statement, bijv. een INSERT, niet voor het opvragen van een waarde dmv een SELECT.

In dit geval kun je het redelijk eenvoudig oplossen door in de besturingselementbron (controlsource) van 'Caseaantal' te plaatsen:
code:
1
=DCount("[Case id]";"[Cases]";"Cases.Klant=" & Casesubform.Form.Klantnr)

Hierbij is 'casesubform' de naam van het containerobject dat je subform bevat in het hoofdform. Deze kan afwijken van de naam van het subform zoals die in het databasevenster staat.

Verwijderd

Topicstarter
Super! Het is nu gefixt. Ontzettend bedankt.

Ik hoefde alleen enkele haakjes om de string te knutselen en toen werkte het.
Dit heeft me zoveel werk bespaard.