Avatar billede per2edb Ekspert
04. august 2019 - 10:55 Der er 2 kommentarer og
8 løsninger

Dataark hvor linierne flyttes op og ned ved træk med musen

Hej
Jeg har et dataark hvor jeg  ønsker at kunne flytte liniernes placering op og ned
ved at trække dem med musen

Er der nogen der ved om der findes et eksempel på nettet kodet i VBA
Avatar billede per2edb Ekspert
05. august 2019 - 14:13 #1
Jeg har prøvet koderne herfra:
https://www.tek-tips.com/viewthread.cfm?qid=1636127

Men de er aldrig blevet færdigudviklet og virker ikke for mig
Avatar billede terry Ekspert
05. august 2019 - 16:11 #2
The example doesnt use drag and drop which is part of your requirement isnt it?

Without testing I dont see any problems with the code, you say "Men de er aldrig blevet færdigudviklet og virker ikke for mig"

what doesnt work, and what needs to be "færdigudviklet"?

Your obviously going to need code to give sort field a value when creating a new record and also change values when deleting but other than that whats needed?
Avatar billede per2edb Ekspert
06. august 2019 - 12:25 #3
Jeg har en Form med et Dataark med navnet:  Produkt_Dataark UFrm
Jeg har 2 knapper på Formen med bl.a navnet: cmdDown
I Dataarket har jeg elementet : Prioritet
I cmdDown har jeg:

Private Sub cmdDown_Click()
  MoveSortDown "Prioritet", Me
End Sub

Public Sub MoveSortDown(SortField, frm As Access.Form)
  Dim rsClone As DAO.Recordset
  Dim lngNewSort As Long
  Dim lngOldSort As Long
  Set rsClone = frm.RecordsetClone
  rsClone.AbsolutePosition = frm.Recordset.AbsolutePosition
  If Not (IsNull(rsClone.Fields(SortField)) Or rsClone.AbsolutePosition >= rsClone.RecordCount - 1) Then      ' <=============Fejl  3265
    lngOldSort = rsClone.Fields(SortField)
    lngNewSort = lngOldSort + 1
    rsClone.Edit
    rsClone.Fields(SortField) = lngNewSort
    rsClone.Update
    rsClone.MoveNext
    rsClone.Edit
    rsClone.Fields(SortField) = lngOldSort
    rsClone.Update
  frm.Requery
  frm.Recordset.FindFirst SortField & " = " & lngNewSort
  End If
End Sub

Som vist med pilen får jeg fejl 3265 Elementet blev ikke fundet

Kan du hjælpe?
Avatar billede terry Ekspert
06. august 2019 - 13:23 #4
Is it possible for you to send your little test dB (zipped) so I can see exactly what you are doing?
ekspertenATsanthell.dk
AT= @
Avatar billede per2edb Ekspert
06. august 2019 - 13:29 #5
Det prøver jeg
Avatar billede terry Ekspert
06. august 2019 - 18:29 #6
Referring to your comment
"' <==  Måske: "Produkt_Struktur_Dataark UFrm" i stedet for Me"

Well your almost correct, because the buttons are on the main form then the code is going to fail, so you need to refer to the sub form instead. And its not the name of the sub form "Produkt_Struktur_Dataark UFrm" but the sub form object the form is contained in which you need refer to.
If you click on the edge of the sub form in design view you can see the name of the sub form object in the "Name" property which is in the "Other" tab.

At the moment the sub form object "Name" is the same as the sub form ""Produkt_Struktur_Dataark UFrm", you should also change that to something easier, for example "SubFrm1".
Now change the code to

Call moveSortUp("Prioritet", Me.SubFrm1.Form)
and
Call MoveSortDown("Prioritet", Me.SubFrm1.Form)

I
Avatar billede per2edb Ekspert
06. august 2019 - 18:29 #7
Så er den sendt til dig
Avatar billede terry Ekspert
06. august 2019 - 18:30 #8
and you have an answer here :-)
Avatar billede per2edb Ekspert
06. august 2019 - 19:41 #9
Det virker perfekt
1000 tak for hjælpen
Avatar billede terry Ekspert
06. august 2019 - 20:01 #10
:-)
Dont forget to solution as answer if it works, so we can close question ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester