Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

A03: Im Endlosformular Datensätze per Drag and Drop verschieben

Begonnen von MaxP, Juli 13, 2018, 18:45:46

⏪ vorheriges - nächstes ⏩

MaxP

Ich verwende Win 7 64 pro

Leider funkt dein 2. Ansatz nicht, neue Fehlermeldungen bezügl. OLE nicht initialisiert.

Vielleicht wäre der Ansatz von Franz einfacher?
Win 10 pro 64 bit, Access 2003

DF6GL

Hallo,


mein Ansatz benutzt kein OCX.

Mit dem MSCOMCTL.OCX habe ich auch so meine Schwierigkeiten...

Oftmals hilft, das OCX im Verzeichnis C:\Windows\syswow64 mit Regsvr32 (auch aus diesem Ordner)  als Administrator zu de-registrieren.

Anschließend das OCX mit der Dateiversion 6.1.98.46 überschreiben.

Danach wieder mit regsvr32 die Ocx-Datei neu als Administrator registrieren.

In der DB den Verweis löschen (enthaken) und das Steuerelement aus dem Formular löschen.
Die Db erneut starten und das Listview (Version 6.0) neu einbauen.

Probleme kann es auch geben, wenn mehrere verschiedene Version der Ocx-Datei installiert sind. Dann versuchen, die anderen zu de-installieren, bzw. de-registrieren.


MaxP

Hallo,
ich glaube, so komme ich mit meinen bescheidenen Kenntnissen nicht weiter.

Deshalb habe ich noch einmal im Netz nach einem geeigneten Code geschaut und bin fündig geworden.
Hiermit soll man die DS im Formular per Schaltflächen nach oben (Reihenfolge(1)) bzw. unten (Reihenfolge(-1)) verschieben können.
Allerdings funkt dieser Code (bei mir) nicht. Access meckert wegen der nicht deklarierten DB.

erforderliche Tab-Felder: IDKLSch (Primärschlüssel), Schulbildung (Text), Rflg (Byte, eindeutig), Sortierung nach Rflg.

Private Sub Reihenfolge(updn As Integer)
Dim RS As Recordset
Dim qry As String
Dim AktRS As Long
Dim NewNo As Byte
If Me.Rflg = 1 Then Exit Sub
AktRS = Me.IDKLSch
NewNo = Me.Rflg - updn
Me.Rflg = 255
Me.Requery
Set db = CurrentDb
qry = "SELECT IDKLSch, Schulbildung, Rflg FROM tblOPSchulbildung ORDER BY Rflg;"
Set RS = db.OpenRecordset(qry, dbOpenDynaset)
With RS
.FindFirst "Rflg = " & NewNo
If Not .NoMatch Then
.Edit
!Rflg = NewNo + updn
.Update
End If
.FindFirst "Rflg = " & 255
.Edit
!Rflg = NewNo
.Update
End With
Me.Requery
Me.RecordsetClone.FindFirst "IDKLSch = " & AktRS
Me.Bookmark = Me.RecordsetClone.Bookmark
End Sub


Ihr findet den Fehler wahrscheinlich sofort. Danke vorab.

Gruß
Max

Win 10 pro 64 bit, Access 2003


MaxP

Win 10 pro 64 bit, Access 2003

DF6GL

Hallo,


anbei entspr. meinem Vorschlag.

Shift gedrückt halten und auf Datensatz (Freie Fläche zwischen den Feldern,nicht Datensatzmarkierer) klicken.
Auf Zieldatensatz klicken.



MaxP

Hallo Franz,

super jetzt funkt es!
So habe ich nun auch ein Sortierfeld, das
ich für die Berichte dringend benötige.

Danke Dir für Deine Geduld!!

Gruß
Max
Win 10 pro 64 bit, Access 2003

Beaker s.a.

Hallo,
Auch wenn's jetzt funzt.
ZitatAccess meckert wegen der nicht deklarierten DB.
Versuch's halt mit einem
Dim db As DAO.Database
Dieser Fehler deutet allerdings auf ein grundlegendes Problem. In
Deinem Modulen fehlt im Kopf die Zeile
Option Explicit
Diese solltest du unbedingt überall nachtragen. Dann hätte sich der
Compiler schon vorher mit einer Fehlermeldung bezügl. nicht definierter
Variable gemeldet.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

MaxP

Hallo Ekkehard,
ja, jetzt funzt auch dieser Code!!
Vielen Dank für deine Korrektur.

Jetzt habe ich eine 2. Möglichkeit,
die Reihgenfolge der DS zu verändern.

Gruß
Max
Win 10 pro 64 bit, Access 2003

Beaker s.a.

Hallo Max,
Der zweite Teil des Posts ist der wichtigere.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

MaxP

Hallo noch mal,
ich krieg' die Motten!

Bei dem Versuch, den Code "Reihenfolge" auf meine vorhandene DB anzupassen, kommt immer der Fehler (s. Anlage). Die Fehlermeldungen sagen mir rein gar nichts. Obwohl ich Tab u. Form schon probehalber wie im lauffähigen Beispiel abgespeckt habe, funzt es trotzdem nicht.

Mir ist auch nicht klar, ob der Code
qry = "SELECT IDKLSch, Schulbildung, Rflg FROM tblOPSchulbildung ORDER BY Rflg;"
umbedingt mit der Anzahl der Felder in der Tab bzw. Abfrage identisch sein muss. Ich denke nein, denn das habe ich wiederum in der Beispiel-DB probiert, und dort funzt es trotzdem.

Gruß
Max
Win 10 pro 64 bit, Access 2003

PhilS

Feldnamen, die einen Bindestrich, oder andere Sonderzeichen, enthalten, müssen in eckige Klammern eingeschlossen werden. Bsp:
SELECT [Pos-Id], Menge, .....
Sonst ist für einen Computer nicht klar, dass es sich nicht um eine Rechenaufgabe (X - Y = ?), sondern um einen zusammenhängenden Bergriff handelt.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

MaxP

Ja meine alten Feldbezeichnungen, jedesmal stolpert man drüber!

Aber jetzt funzt es! Danke Dir!

Gruß
Max
Win 10 pro 64 bit, Access 2003