wil de gegevens die in een dbgrid staan naar het klembord kopieren.
dit lukt me indien er minder records zijn dan het max aantal dat op scherm kan getoond worden. indien er meer zijn loopt het mis
gegeven: in de dbgrid zijn 29 records op scherm zichtbaar; totaal aantal records 155.
Mijn code: Private Sub CmdCopy_Click() Dim aantalrecords As Integer Dim KopieTekst As String Dim RTeller As Integer On Error GoTo fout DtaCopy.Recordset.MoveLast aantalrecords = DtaCopy.Recordset.RecordCount DtaCopy.Recordset.MoveFirst KopieTekst = "" Clipboard.Clear
With Faktuurgrid '.Row = 0 Do While RTeller < aantalrecords 'indien hier 29 staat werkt het ok .Col = 0 KopieTekst = KopieTekst & .Text .Col = 1 KopieTekst = KopieTekst & vbTab & .Text .Col = 2 KopieTekst = KopieTekst & vbTab & .Text .Col = 3 KopieTekst = KopieTekst & vbTab & .Text .Col = 4 KopieTekst = KopieTekst & vbTab & .Text .Col = 5 KopieTekst = KopieTekst & vbTab & Right(.Text, 2) .Col = 6 KopieTekst = KopieTekst & vbTab & .Text & vbCrLf RTeller = RTeller + 1 .Row = RTeller Loop End With Clipboard.SetText KopieTekst Exit Sub fout: If Err.Number = 3021 Then 'geen records MsgBox "er zijn geen records om te kopieren", vbExclamation ElseIf Err.Number <> 0 Then MsgBox Err.Number & " " & Err.Description & " Rij nummer = " & RTeller & " Max Rij = " & aantalrecords
End If End Sub
mijn ingoebouwde foutroutine geeft een msgbox met fout 6418 invalid row number rij =30, maxrij = 155 |