vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fragen & Antworten rund um sev-Komponenten
Re: sevDataGrid: Drag&Drop von Datenzeilen möglich ? 
Autor: Buggy
Datum: 29.09.08 18:45

Hallo Dieter,
sehr interresant, und wie läßt sich sowas im Mode_Recordset realisieren

Gruß Buggy
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

sevDataGrid: Drag&Drop von Datenzeilen möglich ? 
Autor: Wolfgang Schwarz
Datum: 27.09.08 08:30

Hallo,

ist mit sevDataGrid Drag&Drop von "Daten" möglich ?
In der Hilfe lese ich immer nur von Drag&Drag von "Spalten"

Ich möchte z.B. eine Datenzeile in einem sevDataGrid von einem in ein anderes sevDataGrid verschieben (um z.B. Lieferscheine für eine LKW-Tourenplanung zuzuordnen)

Wie mache ich sowas mit sevDataGrid (ich meine die Drag&Drap-Funktionalität)

Wolfgang Schwarz

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDataGrid: Drag&Drop von Datenzeilen möglich ? 
Autor: caramba
Datum: 27.09.08 09:02

Hallo Wolfgang,

das ist eine interessante Frage. Ich versuche schon seit einiger
Zeit vergebens, einzelne Felder einer Row in ein anderes Grid mit
Drag&Drop zu verschieben. Bisher bin ich nicht weitergekommen.
Vielleicht hat einer unserer Kollegen einen guten Rat?!

Gruss
Rainer
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDataGrid: Drag&Drop von Datenzeilen möglich ? 
Autor: ModeratorDieter (Moderator)
Datum: 27.09.08 09:41

Das Ganze lässt sich via OLEDrag & Drop realisieren.

Beispiel:
Form mit 2 DataGrid's und folgender Code:
Option Explicit
 
Private Sub Form_Load()
  Dim I As Long
 
  With Grid1
    .DataMode = Mode_List
    .ColumnAdd , "Spalte 1"
    .ColumnAdd , "Spalte 2"
    For I = 1 To 100
      .AddItem "Eintrag " & CStr(I) & vbTab & "Row" & CStr(I) & ",Col2"
    Next I
    .WheelMouse = False
    .OLEDropMode = Manuell
    .AllowMultiSelect = True
  End With
 
  With Grid2
    .DataMode = Mode_List
    .ColumnAdd , "Spalte 1"
    .ColumnAdd , "Spalte 2"
    .WheelMouse = False
    .OLEDropMode = Manuell
  End With
End Sub
Private Sub Grid1_CellClick(ByVal nRow As Long, ByVal nCol As Long, ByVal _
  Button As Integer, ByVal Shift As Integer)
  If Button = vbRightButton Then
    ' bei Rechtsklick - Drag-Vorgang starten
    Grid1.OLEDrag
  End If
End Sub
Private Sub Grid1_OLEStartDrag(Data As DataObject, AllowedEffects As Long)
  Dim I As Integer
 
  ' Erlaubte Aktionen festlegen
  AllowedEffects = vbDropEffectCopy Or vbDropEffectMove
 
  ' Daten-Format festlegen
  Data.SetData , vbCFFiles
 
  ' Einträge hinzufügen
  For I = 0 To Grid1.SelCount - 1
    Data.Files.Add Grid1.List(Grid1.SelRow(I))
  Next I
End Sub
Private Sub Grid2_OLEDragDrop(Data As DataObject, Effect As Long, Button As _
  Integer, Shift As Integer, X As Single, Y As Single)
  Dim I As Integer
 
  Dim nRow As Long
  nRow = Grid2.GetRowFromCursor
 
  ' Prüfen, ob es sich um korrekte Daten handelt
  If Data.GetFormat(vbCFFiles) Then
    ' alle Einträge (1 bis Files.Count)
    For I = 1 To Data.Files.Count
      ' Dateiname der Listbox hinzufügen
      Grid2.AddItem Data.Files(I), nRow
    Next I
  End If
End Sub

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDataGrid: Drag&Drop von Datenzeilen möglich ? 
Autor: Wolfgang Schwarz
Datum: 28.09.08 13:25

Hallo Dieter,

funktioniert dein Beispiel

Allerdings finde ich in der Onhilfe nichts über die von dir verwendeten

- Eigenschaften: OLEDropMode
- Methoden: OLEDrag
- Ereignisse: OLEStartDrag, OLEDragDrop

Zumal die Schreibweise ein bisschen anders sind als in VB6.

Naja, Hauptsache es funktioniert.

Vielen Dank für deine Info

Wolfgang Schwarz

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDataGrid: Drag&Drop von Datenzeilen möglich ? 
Autor: ModeratorDieter (Moderator)
Datum: 29.09.08 19:09

Im Recordset-Mode musst du dich selbst um's Speichern kümmern, d.h. die Daten in das 2. Recordset speichern, danach das Recordset neu zuweisen etc.

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDataGrid: Drag&Drop von Datenzeilen möglich ? 
Autor: Buggy
Datum: 30.09.08 08:52

Hallo Dieter.
danke für die Info

mfg. Buggy
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDataGrid: Drag&Drop von Datenzeilen möglich ? 
Autor: UE_ACC
Datum: 13.06.09 16:55

Hallo Dieter,

ich möchte gern auch das sevDataGrid und OLEDRAG unter MS ACCESS VBA einsetzten! Leider funktioniert mir Dein beschriebenes Beispiel unter VBA bei nicht.
Beim Debuggen erscheint schon eine Fehlermeldung, weil das System den Datentyp "DataObject" nicht kennt. Ich habe Ihn gewandelt in "Object", die Fehlermeldung erscheint nicht mehr, aber auch keine Drag&Drop-Funktion!

Fehler -> Grid2_OLEDragDrop(Data As DataObject, Effect As Long, Button As _
Integer, Shift As Integer, X As Single, Y As Single)

Gibt es eine Möglichkeit?

Viele Grüße

Ulrich
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDataGrid: Drag&Drop von Datenzeilen möglich ? 
Autor: ModeratorDieter (Moderator)
Datum: 14.06.09 08:19

Die OLEDrag-Methode sollte unter Access aus dem Formular-Timer heraus aufgerufen werden, da Access keine weiteren Ereignisse auslöst, solange man sich noch in einem anderen Ereignis befindet.

Beispiel:
Private Sub Grid1_CellClick(ByVal nRow As Long, ByVal nCol As Long, _
  ByVal Button As Integer, ByVal Shift As Integer)
 
  If Button = 2 Then
    ' bei Rechtsklick - Drag-Vorgang starten
    Me.TimerInterval = 100
  End If
End Sub
Private Sub Form_Timer()
  Me.TimerInterval = 0
  Grid1.OLEDrag
End Sub

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDataGrid: Drag&Drop von Datenzeilen möglich ? 
Autor: UE_ACC
Datum: 14.06.09 10:00

Hallo Dieter,

vielen Dank für die schnelle Rückmeldung. Ich habe den Code in das bestehende Beispiel eingebaut, leider erfolgt keine Änderung des vorherigen Zustandes. Wie muss den die Reaktion sein, wenn die rechte Maustaste mit der Spitze auf eine Zeile im Grid1 gedückt wird und zum Grid2 herübergezogen wird? Hängt sich der Datensatz (evtl. auch nur ansatzweise) beim Verschieben an die Mausspitze? Wie beschrieben, erfolgt zur Zeit keine Reaktion/Funktion.

Viele Grüße

Ulrich
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDataGrid: Drag&Drop von Datenzeilen möglich ? 
Autor: ModeratorDieter (Moderator)
Datum: 14.06.09 10:43

Der Mauszeiger ändert sich nicht autom.
Das musst Du selbst implementieren.

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDataGrid: Drag&Drop von Datenzeilen möglich ? 
Autor: UE_ACC
Datum: 14.06.09 10:59

Hallo Dieter,

wie kann ich die Funktion den prüfen, wenn im Grid2 sich keine Veränderung darstellt sobald ich die rechte Maustaste wieder loslasse. Es passiert derzeit nichts, wenn ich den Datensatz im Grid1 picke und zum Grid2 herüberschieben möchte.

Viele Grüße

Ulrich
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDataGrid: Drag&Drop von Datenzeilen möglich ? 
Autor: ModeratorDieter (Moderator)
Datum: 14.06.09 11:24

Also bei mir funktioniert das einwandfrei.
Es wird sogar der korrekte Mauszeiger beim OLEDrag angezeigt (Pfeil mit +-Zeichen)
Im Grid2 wird dann das OLEDragDrop-Event ausgelöst.

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDataGrid: Drag&Drop von Datenzeilen möglich ? 
Autor: UE_ACC
Datum: 14.06.09 11:30

Hallo Dieter,

wäre es möglich, das ich das Access-Beispiel oder den kompletten Code bekommen könnte? Würde mir sehr helfen! Meine E-Mail-Adresse lautet ulrich.eul@online.de.


Viele Grüße

Ulrich
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDataGrid: Drag&Drop von Datenzeilen möglich ? 
Autor: ModeratorDieter (Moderator)
Datum: 14.06.09 11:39

Hier der Code:
Option Compare Database
Option Explicit
 
Private nTimerAction As Long
Private Sub Form_Load()
  ...
 
  Grid1.OLEDropMode = 1
  Grid1.AllowMultiSelect = True
 
  Grid2.OLEDropMode = 1
End Sub
Private Sub Grid1_CellClick(ByVal nRow As Long, ByVal nCol As Long, _
  ByVal Button As Integer, ByVal Shift As Integer)
 
  If Button = 2 Then
    ' bei Rechtsklick - Drag-Vorgang starten
    nTimerAction = 2
    Me.TimerInterval = 100
  End If
End Sub
Private Sub Grid1_OLEStartDrag(Data As Object, AllowedEffects As Long)
  Dim I As Integer
 
  ' Erlaubte Aktionen festlegen
  AllowedEffects = 1 Or 2
 
  ' Daten-Format festlegen
  Data.SetData , 15
 
  ' Einträge hinzufügen
  For I = 0 To Grid1.SelCount - 1
    Data.Files.Add 'Grid1.List(Grid1.SelRow(I))
  Next I
End Sub
Private Sub Grid2_OLEDragDrop(Data As Object, Effect As Long, Button As _
  Integer, _
  Shift As Integer, x As Single, Y As Single)
 
  Dim I As Integer
 
  Dim nRow As Long
  nRow = Grid2.GetRowFromCursor
 
  ' Prüfen, ob es sich um korrekte Daten handelt
  If Data.GetFormat(15) Then
    ' alle Einträge (1 bis Files.Count)
    For I = 1 To Data.Files.Count
      ' Einträge der Listbox hinzufügen
      Grid2.AddItem Data.Files(I), nRow
    Next I
  End If
End Sub
Private Sub Form_Timer()
  ' DataGrid-Ansicht aktualisieren
  Me.TimerInterval = 0
 
  Select Case nTimerAction
    Case 1
      ' Filter setzen
      SetFilter
    Case 2
      ' OLE-Drag
      Grid1.OLEDrag
  End Select
End Sub

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDataGrid: Drag&Drop von Datenzeilen möglich ? 
Autor: UE_ACC
Datum: 14.06.09 13:42

Hallo Dieter,

vielen Dank für den Code. Die Funktion "Drag&Drop" scheint zu funktionieren, die Daten werden aber im Grid2 nicht angefügt. Kann es sein, dass ein Verweis in meiner DB nicht richtig gesetzt ist? Es erscheint die Fehlermeldung, dass die Methode "Data.GetFormat(15)" nicht bekannt ist.


Viele Grüße

Ulrich
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDataGrid: Drag&Drop von Datenzeilen möglich ? 
Autor: ModeratorDieter (Moderator)
Datum: 14.06.09 20:33

Hmmm... keine Ahnung, ob da ein Verweis fehlt.
Bei mir funktioniert das Ganze wie beschrieben - ohne extra Verweis etc.-

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDataGrid: Drag&Drop von Datenzeilen möglich ? 
Autor: UE_ACC
Datum: 14.06.09 22:26

Hallo Dieter,

vielen Dank für die Rückmeldung. Ja, es musste noch ein Verweis auf das Windows Common Control (mscomctl.ocx) gesetzt werden. Des Weiteren habe ich noch in dem Code das Hochkommata hinter dem ... Add 'Grid1.List(... entfernt, danach funktionierte alles.

-----------------------------------------------------------------------
Private Sub Grid1_OLEStartDrag(Data As Object, AllowedEffects As Long)
Dim I As Integer

' Erlaubte Aktionen festlegen
AllowedEffects = 1 Or 2

' Daten-Format festlegen
Data.SetData , 15

' Einträge hinzufügen
For I = 0 To Grid1.SelCount - 1
Data.Files.Add 'Grid1.List(Grid1.SelRow(I))
Next I
End Sub
------------------------------------------------------------------------

Nochmals vielen Dank, ich werde das sevDataGrid jetzt bestellen, da es sich um eine sinnvolle und wertvolle Ergänzung sowie Erweiterung in der MS ACCESS-Toolpalette handelt.

Ulrich
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDataGrid: Drag&Drop von Datenzeilen möglich ? 
Autor: Embo
Datum: 28.07.15 14:40

Hallo,

ich habe eine weitere Frage dazu. Benötigt wird dafür nur EIN Grid, der Code lässt sich dafür leicht abwandeln ("Grid2" zu "Grid1"). Es geht also um das Kopieren von Zeilen innerhalb EINES Grids. Das funktioniert ohne weiteres, einziges Problem: Enthält das Grid mehr Zeilen als auf einmal dargestellt werden können und befindet sich das Drop-Ziel außerhalb des sichtbaren Bereichs, so muss zu der Zeile, auf die gedroppt werden soll, via Scrollen navigiert werden. Das kann man gewöhnlich dadurch erreichen, indem man den gedrückten Mauscursor über bzw. unter die erste bzw. letzte Zeile bewegt. Das funktioniert hier nicht.

Vielen Dank für jeden Hinweis
Christoph
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel