Access Listbox elemeinek felcserélése lekérdezés adatokból

Access Listbox elemeinek felcserélése lekérdezés adatokból
2016-02-07T15:55:51+01:00
2016-02-08T19:32:15+01:00
2022-12-03T06:40:37+01:00
vrmax75
Sziasztok,


Ismert téma lehet, de VBA-ban nem találtam rá segítséget, vagy is táblák, vagy lekérdezésekre vonatkozókan.
Szeretném a listboxban lévő adatok pozícióját cserélgetni, hogy a felhasználó maga tudja beállítani, melyik adat legyen legfelül majd lefelé sorban.
Azt megoldottam, hogy a táblában adtam neki egy mezőt, amiben a felsorolást be lehet állítani 1-...,
De gondoltam gombokkal felhasználó barátabb lenne.
Találtam egy megoldást, de ez csak a lista elem sorforrásokra vonatkozik, ha tábla, vagy  lekérdezés, akkor már nem.
Pozitív irányban:

Private Sub cmdup_Click() Dim sText As String Dim iIndex As Variant Dim selection() As Integer Dim n, topSelection As Integer ' save the indexes of the selected items, ' they will be deselected after the first removal For Each iIndex In lbfnames.ItemsSelected ReDim Preserve selection(0 To n) selection(n) = iIndex n = n + 1 Next 'loop through all the selected indexes 'this will also ensure you will only proceed if there is a selected item For n = LBound(selection) To UBound(selection) 'save items text and items indexvalue sText = lbfnames.Column(0, selection(n)) If selection(n) <= topSelection Then 'index topSelection is top item which can't be moved up! MsgBox ("Can not move item '" & sText & "' up any higher.") topSelection = topSelection + 1 Else 'first remove item from old position lbfnames.RemoveItem selection(n) 'place item back on new position lbfnames.AddItem sText, selection(n) - 1 'change the index of the selected value to the new index (for reselection) selection(n) = selection(n) - 1 End If Next 'loop through the selection again to reselect For n = LBound(selection) To UBound(selection) lbfnames.Selected(selection(n)) = True Next End sub

Negatív irányban a fordítottja értelem szerűen.

Tud valaki ebben segíteni nekem? :(

Köszönöm


N
Mutasd a teljes hozzászólást!
Két hiba amit javitottam:

A Tools->Referencesbe klikkeld be a Microsoft ActiceX Data Objects x.x Library-t és nem dobja majd fel a user-defined hibát.


sSQL = "SELECT ListID FROM ListBox ORDER BY ListID"

CSatolva a javitott adatbázis.


így már jól működik
Mutasd a teljes hozzászólást!
Csatolt állomány

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd