Hoi
In het verleden heb ik me vooral gefocust op PHP maar aangezien ik dat niet in mijn beroepsveld kan gebruiken heb ik mijn focus verlegd naar VBA.
In het project waar ik nu mee bezig ben, heb ik een recordset uit de database gehaald. Dit doe ik vanuit Excel, via VBA en de bron is een .mdb database. Dit gaat perfect.
Maar nou wil ik van deze recordset het aantal records tellen. Hier krijg ik telkens de waarde -1 op terug. Wat ik terug vond zou dit betekenen dat de RecordCount geen telling kan maken en daarom geeft hij -1 weer.
Ook vond ik ergens anders dat voor de RecordCount het definiëren van het rs.Open heel belangrijk is. Daarom denk ik dat in het volgende stukje code iets niet goed is ingesteld. Hoewel de recordset dus perfect word geprint.
Kan iemand mij verder helpen wat ik fout doe?
Alvast mijn dank,
Chris
Hieronder is het gehele stuk code.
Mijn uiteindelijke doel is om 12 resultaten per pagina te krijgen. Ik wil via een RecordCount het totaal aantal krijgen om te berekenen om hoeveel pagina's het gaat. Dit wil ik doen via een vergelijkbare methode als LIMIT (uit SQL/PHP).
In het verleden heb ik me vooral gefocust op PHP maar aangezien ik dat niet in mijn beroepsveld kan gebruiken heb ik mijn focus verlegd naar VBA.
In het project waar ik nu mee bezig ben, heb ik een recordset uit de database gehaald. Dit doe ik vanuit Excel, via VBA en de bron is een .mdb database. Dit gaat perfect.
Maar nou wil ik van deze recordset het aantal records tellen. Hier krijg ik telkens de waarde -1 op terug. Wat ik terug vond zou dit betekenen dat de RecordCount geen telling kan maken en daarom geeft hij -1 weer.
Ook vond ik ergens anders dat voor de RecordCount het definiëren van het rs.Open heel belangrijk is. Daarom denk ik dat in het volgende stukje code iets niet goed is ingesteld. Hoewel de recordset dus perfect word geprint.
Code:
rs.Open QueryInvoer, cn, , , adCmdText
Alvast mijn dank,
Chris
Hieronder is het gehele stuk code.
Code:
Dim cn As Object, rs As Object
Dim DBFullName As String
Dim TargetRange As Range
IngevoerdeShirtnaam = Range("AY6").Value
Qry = "SELECT TOP 12 Id, Achternaam, Voornaam, Shirtnaam, Geboortedatum FROM spelers WHERE Shirtnaam Like '%" & IngevoerdeShirtnaam & "%' OR Achternaam Like '%" & IngevoerdeShirtnaam & "%' OR Voornaam Like '%" & IngevoerdeShirtnaam & "%' ORDER BY Shirtnaam"
DBFullName = ThisWorkbook.Path & "\Database002.mdb"
Application.ScreenUpdating = False
Set TargetRange = Sheets("Insert").Range("BF8")
Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & ADBFullNameF & ";"
Set rs = CreateObject("ADODB.Recordset")
rs.Open QueryInvoer, cn, , , adCmdText
Range("BG5").FormulaR1C1 = rs.RecordCount
TargetRange.Offset(0, 0).CopyFromRecordset rs
Application.ScreenUpdating = True
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing