PDA

Vollständige Version anzeigen : Blättern in Datensätzen in Unterformular


Henrik
26.09.2005, 18:51
Hallo Leute,

ich hoffe ihr könnt mir helfen . Also:

Ich habe in einem Unterformular hunderte von Datensätzen. Jetzt brauche ich die Möglichkeit auf jeder sichtbaren Seite jeweils die nächsten 8 Datensätze zu sehen. Allerdings möchte ich keine scrollbalken oder NAVIs verwenden. Habe dazu Buttons eingerichtet die ich dazu nutzen muss. Habe einiges probiert allerdings gibt es immer Fehler in der Anzeige der richtigen nächsten Datensätze, d.h. er überspringt immer welche.


Anbei der Quellcode der Funktion:

Function unterformular1_gonext()
On Error GoTo unterformular1_gonext_Err

If (Forms!sap_ecc_fom1!sap_ecc_form1_unterformular.Form!countthejumps = 1) Then
DoCmd.GoToRecord , "", acNext, 15
End If
DoCmd.GoToRecord , "", acPrevious, 7
Forms!sap_ecc_fom1!sap_ecc_form1_unterformular.Form!countthejumps = Forms!sap_ecc_fom1!sap_ecc_form1_unterformular.Form!countthejumps + 8
End
If (Forms!sap_ecc_fom1!sap_ecc_form1_unterformular.Form!countmoreinfo - Forms!sap_ecc_fom1!sap_ecc_form1_unterformular.Form!countthejumps > 8) Then
DoCmd.GoToRecord , "", acNext, 8
DoCmd.GoToRecord , "", acPrevious
Forms!sap_ecc_fom1!sap_ecc_form1_unterformular.Form!countthejumps = Forms!sap_ecc_fom1!sap_ecc_form1_unterformular.Form!countthejumps + 8
End If
If (Forms!sap_ecc_fom1!sap_ecc_form1_unterformular.Form!countmoreinfo - Forms!sap_ecc_fom1!sap_ecc_form1_unterformular.Form!countthejumps = 8) Then
DoCmd.GoToRecord , "", acLast
Forms!sap_ecc_fom1!sap_ecc_form1_unterformular.Form!countthejumps = Forms!sap_ecc_fom1!sap_ecc_form1_unterformular.Form!countmoreinfo
End If
If (Forms!sap_ecc_fom1!sap_ecc_form1_unterformular.Form!countmoreinfo - Forms!sap_ecc_fom1!sap_ecc_form1_unterformular.Form!countthejumps < 8) Then
DoCmd.GoToRecord , "", acLast
Forms!sap_ecc_fom1!sap_ecc_form1_unterformular.Form!countthejumps = Forms!sap_ecc_fom1!sap_ecc_form1_unterformular.Form!countthejumps + Forms!sap_ecc_fom1!sap_ecc_form1_unterformular.Form!countmoreinfo - Forms!sap_ecc_fom1!sap_ecc_form1_unterformular.Form!countthejumps
End If


unterformular1_gonext_Exit:
Exit Function

unterformular1_gonext_Err:
MsgBox Error$
Resume unterformular1_gonext_Exit

End Function


gruß Henrik

JörgG
26.09.2005, 20:14
Hallo Henrik,

hab mich auch schon mal mit so einer Rumhopserei beschäftigen müssen und mit dem Überspringen gekämpft, das ist dabei rausgekommen, vielleicht kannst Du's verwenden. Aus der DS-Nr wird die Seite berechnet, Rückwärts springen:
Private Sub SFSpringeRückw_Click()
Dim lngSeite As Integer, lngDS As Long
lngSeite = Fix(Me.CurrentRecord / 8)
lngDS = IIf(Me.CurrentRecord > 8, lngSeite * 8 - 7, 1)
DoCmd.GoToRecord , , acGoTo, lngDS
End Sub
und Vorwärts, erst überspringen und dann auf den 1.DS der Seite zurück hopsen:
Private Sub SFSpringeVorw_Click()
Dim lngSeite As Integer, lngDS As Long, i As Integer, k As Integer
lngSeite = Fix(Me.CurrentRecord / 8)
lngDS = IIf(Me.RecordsetClone.RecordCount > lngSeite * 8 + 9, lngSeite * 8 + 9, Me.RecordsetClone.RecordCount)
DoCmd.GoToRecord , , acGoTo, lngDS
For i = 1 To 8 Step 1
On Error Resume Next
DoCmd.GoToRecord , , acNext
If Err.Number > 0 Then
k = k + 1
Err.Clear
Else
k = i
End If
Next i
DoCmd.GoToRecord , , acPrevious, k
DoCmd.GoToRecord , , acGoTo, lngDS
End Sub
Gut Sprung... :biggrinl:

Henrik
27.09.2005, 16:45
Servus,

haben jetzt mal deine Version probiert, funktioniert auch ganz gut, nur zeigt er die restlichen Datensätze nicht mehr an.

uwek
27.09.2005, 18:54
Hallo Henrik,

anbei mal ein kl. Bsp.

Henrik
27.09.2005, 19:26
danke, ich schaus mir mal an.

Grüßle

Henrik