Newsgroup: it.comp.appl.access
Titolo: Come selezionare dei record da form continua ?

Dispongo di una form continua che visualizza dei record, diciamo una 
riga per ogni articolo
Vorrei selezionare alcuni di questi articoli, ad esempio il terzo, 
quarto, quinto, sesto, poi il decimo, l'undicesimo, il dodicesimo
C'e' modo di farlo in modo meno laborioso del cliccare su un button su 
ogni riga oppure attivare una cechkbox o roba simile?
Insomma, vorrei strisciare per selezionare il primi tre, poi mollare il 
mouse, premere un certo tasto funzione tipo ALT+S  e premendo il mouse e 
strisciando selezionare i rimanenti tre
Come fareste per selezionare in modo comodo e rapido per l'operatore dei 
gruppi discontinui di righe da una form continua?
Ciao e grazie
 


ListBox... con Maschere continue SOLO records consecutivi... oppure la CheckBox che poi è il tuo Button...
 
Alternativa memorizzare in un'array quelli selezionati, ma visivamente non vedresti nulla...
 
 
@Alex


Con un po di fantasia usando la F.C. si riesce anche ad Evidenziare i Records Selezionati...
 
Puoi usare il Tasto SHIFT e RIGHTCLICK per la selezione, nell'evento vai a leggere l'ID(PK) del record che diventa attivo, e lo aggiungi ad una TextBox nascosta nell'intestazione di Maschera, se è già esisttente lo Cancelli.
 
Quindi ipotizzando di aver selezionato "1;4;5;8;"  nella TextBox troverai
Me.TxtBox=Me.TxtBox & Me.Id & "-"
 
Ora scrivi una Funzione Public nella Form:
Public Function GetSelected(vID as Long) As Boolean
   GetSelected=Instr(me.txtBox,vID & ";")>0
End Function
 
Ora metti un controllo con F.C. nel Corpo e lo condizioni con una EXPRESSION
=GetSelected([Id])
 
Ovviamente nella TextBox hai anche l'elenco utile per popolare una ListBox o fare una Query "... IN (" & Replace(Me.TextBox,";",",") & ")"
 
Non mi viene in mente altro... ma funziona.
 
@Alex

Vedi se è più chiaro:
 
https://1drv.ms/u/s!ALe2sGzrs4WCiAk
 
 
@Alex
 


Molte grazie, esempio molto carino
Anche se non e' esattamanete quanto stavo cercando (mi sarebbe piaciuto 
selezionare 'strisciando' il mouse sopra le righe), attualmente e' il 
codice in pole position
 

Si può fare anche questo ma lo reputo poco certo... per la specificità della form continua... pensa alla posizione in Y del mouse quando è sul primo record... 
Ora passa al secondo record e verifica la Y della posizione del mouse... VOILÀ ottieni sempre lo stesso DeltaY di qualsiasi records in quanto la posizione del corpo è ripetuta.
Ne consegue che non puoi leggere la posizione del Mouse su MouseMove di un'oggetto perché sarebbe assoluta e non relativa.
 
Si può leggere la posizione del mouse relativa alla Form, via API ovviamente in PIXELS convertirla in TWIPS e sottraendo Header, Footer 
e qualche TWIPS per lo spessore del bordo trovi l'altezza del corpo visibilev.
Dividendo l'altezza totale per l'altezza reale che corrisponde al singolo record sai su quale record assoluto rispetto al visualizzato ti tori...
 
Mi spiego se corpoTotale=100 e singolo=10 significa che i records visibili sono 10... quindi sai su quale dei 10 visibili sei...
 
 
Ora pensa di spostare la scrollbar di 3 records ed il primo record si sposta nella zona negativa non visibile ed al primo posto visualizzi il 4° record.
Ora prova a determinare, leggendo la posizione del Mouse e, della scroll bar ovviamente, qual'è il record su cui si trova il mouse.
 
Ripeto, è fattibile... ma complesso ASSAI...
 
@Alex