[VBA] Minder resultaten uit query in code dan in Access

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi,

Ik haal in Excel via een query gegevens op uit een MS-Access database. Het punt is dat er maar 2 records in de recordset zitten. Wanneer ik dezelfde query direct op Access afvuur krijg ik veel meer records terug en dat is ook de bedoeling. Kan iemand mij vertellen waarom er maar twee records in de recordset zitten, waar gaat het fout?

Ik loop hier al een tijdje mee te klooien en op google en got niet heel veel bruikbaars kunnen vinden. Dank en zie hieronder voor de code.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Dim i As Integer
i = 8


Set rsGet = New ADODB.Recordset
cnnGet.Open strConn

Dim getStr
getStr = "SELECT VraagID, ClientNaam FROM Benchmark WHERE ClientNaam <> 'Verder' GROUP BY VraagID, ClientNaam"

rsGet.Open getStr, cnnGet

MsgBox "rs size = " & rsGet.Fields.Count

rsGet.MoveFirst
For j = 0 To rsGet.Fields.Count - 1

    If Not rsGet.EOF Then
        
        Cells(6, i).Value = rsGet.Fields(j).Name
        Cells(7, i).Value = rsGet.Fields(j).Value
        
    End If
    
    i = i + 1
    rsGet.MoveNext
Next

rsGet.Close
cnnGet.Close

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Je zou kunnen beginnen met je vraag op de juiste plek stellen (Waar hoort mijn topic?) en met het kiezen van een duidelijke, omschrijvende titel voor je topic. ;) Ik zal dat nu even voor je doen. :)

PRG>>OFF

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Big Womly
  • Registratie: Oktober 2007
  • Laatst online: 01-09 13:39

Big Womly

Live forever, or die trying

En vervolgens zou je best je lus nog eens grondig bestuderen.
Meer bepaald door te kijken naar wat juist rijen en wat juist kolommen voorstellen. Dan ga je je fout direct vinden.

Tip: Zet een paar breakpoints op belangrijke punten en kijk welke waarde er in je variabelen zit (View -> Locals window)
Tip 2: MSDN: Fields Property [Access 2007 Developer Reference] en MSDN: Field Object [Access 2007 Developer Reference]

[ Voor 32% gewijzigd door Big Womly op 20-03-2012 12:56 ]

When you talk to God it's called prayer, but when God talks to you it's called schizophrenia


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ok dank voor de tip. Maar ik kan je alvast vertellen dat de size van mn recordset maar 4 is. En dat zouden al veel meer records moeten zijn. Het probleem lijkt m dus te zitten in de query en daarna het vullen van de recordset....

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Fields zijn geen records.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
pfff..ik heb een aantal voorbeeldjes gebruikt van Internet in eerste instantie en daar werd vaak de property fields gebruikt. Daardoor op het verkeerde been gezet en te lang bezig geweest met kloten.

Nu heb ik de volgende oplossing, is nog niet definitief maar gaat de goede kant op:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 If Not rsGet.EOF Then rsGet.MoveFirst
        
    For Each x In rsGet.Fields
        Cells(1, j).Value = x.Name
    j = j + 1
    Next
    
    Do While Not rsGet.EOF
    
        Cells(i, 1).Value = rsGet![VraagID]
        Cells(i, 2).Value = rsGet![Huidigniveau]
        Cells(i, 3).Value = rsGet![Ambitieniveau]
        Cells(i, 4).Value = rsGet![ClientNaam]
        
    rsGet.MoveNext
    i = i + 1

    Loop

Acties:
  • 0 Henk 'm!

Verwijderd

dat ziet er al beter uit.

-regel 1 heeft geen nut. om te zien of de query gelukt is, kan je beter testen op bv. (rsGet is nothing)
-een recordset object heeft een recordcount property.
Pagina: 1