Drag'n'drop bliver hurtigt ret avanceret, men i princippet skal du bruge en global variabel
Public lRecordID as long
(sættes øverst i et modul, ikke formularens modul)
Når du trykker museknappen ned i et felt i din underformular skal en funktion køres som sætter værdien af din post i lGlobal:
Function fSetID()
lRecordID = Me!IDfelt
End function
den skal så køre f.eks. i et felt mousedown-event:
Private Sub Tekst0_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
lRecordID = 10
End Sub
Så er public-variablen sat.
Nu skal den fanges, når du slipper museknappen over f.eks. din textbox.
Hvis den textbox du slipper musen over også skal fungere som en normalt textbox med indtastningmuligheder, mulighed for at sætte markøren osv. skal du nok bruge en løsning i stil med:
I destinationsformularens DETALJESEKTIONs MouseMove event kan du hele tiden kontrollere "hvor" du er på formularen, ved at inspicere x og y.
Find ud af hvilke koordinater din destinationstextbox har. Det kan f.eks. være x=2000-3000 og y=2000-2200.
Når du slipper museknappen i destinations formularen skal du tjekke om din markør er indenfor textboxen rektangel, og hvis den er udføre den handling du vil lave, f.eks. en SQL-kørsel:
Private Sub Detaljesektion_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If x>2000 AND x<3000 AND y>2000 AND y<22000 Then
'kør opdateringsSQL eller hvad du nu vil.
currentdb.execute "INSERT INTO tabel1 (felt1) VALUES (" & lRecordID & ")",dbFailOnerror
End if
End Sub
I al beskedenhed vil jeg gerne vise dig en database, jeg selv har lavet med en lignende løsning, hvor det godt nok er nogle firkantede textbokse, der flyttes (og der er en del anden funktionalitet også).
http://www.medicinskedatabaser.dk/fryserdatabase.asp(scroll lidt ned for at se animationen)
Jeg mener jeg har fået de nødvendige skridt med i ovenstående, men der er formentlig brug for noget tilpasning.