Newsgroup: it.comp.appl.access
Titolo: Maschere: Spostare posizione record.

Salve a tutti,
ho una maschera "visualizzazione maschere continue" "collegata" (poi spiego
perchè tra virgolette) ad una tabella.
Ho creato due pulsanti "freccia su" e "freccia giù" nel corpo a fianco di
ogni record.
Lo scopo è che premendo esempio "freccia su" di un record questo si sposti
su di una posizione e sposti in giù di una posizione il record precedente.
Sull'evento Su Clic del pulsante "freccia su" ho inserito:
Me.AppCont = Me.AppCont - 1
Dim strsql As String
    strsql = "SELECT DETTAGLIORDINI.* FROM DETTAGLIORDINI ORDER BY
DETTAGLIORDINI.APPCONT;"
    Me.RecordSource = strsql    (per questo prima "collegata" l'ho messo tra
virgolette...)
'dove appcont è un campo numerico della tabella "Dettagliordini". Il
Me.AppCont viene incrementato in automatico all'inserimento di ogni nuovo
record tramite la seguente routine sull'evento "prima di inserire" della
form:
Me.AppCont = Nz(DMax("[APPCONT]", "[DETTAGLIORDINI]"), 0) + 1
Sull'evento Suclic del pulsante "freccia giù" ho inserito:
Me.AppCont = Me.AppCont + 1
Dim strsql As String
    strsql = "SELECT DETTAGLIORDINI.* FROM DETTAGLIORDINI ORDER BY
DETTAGLIORDINI.APPCONT;"
    Me.RecordSource = strsql
Può esserci la necessità di spostare un record nuovo e di "sistemarlo" ad un
certo punto del recordset.
Il problema è che spostando in su di una posizione ad esempio il record 7 il
Me.AppCont diventa 6 che non è precedente al numero record precedente...ma
uguale.
se lascio il controllo AppCont "sbloccato" per digitare a mano il numero
cosa che non voglio fare risolverei il problema assegnando un formato
"precisione singola o doppia" al campo AppCont ma svilirebbe la
caratteristica delle freccette.....
insomma le freccette devono spostare il record su o giù rispetto al
precedente o al successivo....assegnando al campo AppCont il numero giusto
perchè poi (sembrava finita ?) devo stampare il set di record con l'ordine
che vedo nella maschera...
Grazie,
Luca

Zappus ha scritto:

Esempio codice freccia su:
Private Sub frecciaSU_Click()
On Error GoTo Err_frecciaSU_Click
Me.AppCont = Me.AppCont - 1
DoCmd.GoToRecord , , acPrevious
Me.AppCont = Me.AppCont + 1
Dim strsql As String
strsql = "SELECT * FROM tuatabella ORDER BY tuatabella.APPCONT;"
Me.RecordSource = strsql
Err_frecciaSU_Click:
Select Case Err.Number
    Case 2499, 2105
        MsgBox "Impossibile eseguire l'operazione"
        Me.AppCont = Me.AppCont + 1
        Exit sub
    Case Else
        MsgBox Err.Description
        Exit sub
    End Select
End Sub

 Luca
Esempio codice freccia su:
Private Sub frecciaSU_Click()
On Error GoTo Err_frecciaSU_Click
Me.AppCont = Me.AppCont - 1
DoCmd.GoToRecord , , acPrevious
Me.AppCont = Me.AppCont + 1
Dim strsql As String
strsql = "SELECT * FROM tuatabella ORDER BY tuatabella.APPCONT;"
Me.RecordSource = strsql
Err_frecciaSU_Click:
Select Case Err.Number
    Case 2499, 2105
        MsgBox "Impossibile eseguire l'operazione"
        Me.AppCont = Me.AppCont + 1
        Exit sub
    Case Else
        MsgBox Err.Description
        Exit sub
    End Select
End Sub
G  R  A  N  D  I  O  S  O  .
Grazie mille.
Luca

 > perchè poi (sembrava finita ?) devo stampare il set di record con l'ordine

Sarebbe utile se dopo il recordsource il focus tornasse sul record
spostato, con il seguente codice:
DoCmd.GoToRecord acForm, "M_tuaform", acGoTo,
recordprimadellospostamento

 ha scritto nel messaggio
news:1166167690.2...@n67g2000cwd.googlegroups.com...
Zappus ha scritto:


Ti ringrazio...ma è sorto un problema:
nei post precedenti non ho scritto che la maschera si apre da un'altra
maschera tramite un tasto che apre la maschera (con le frecce) collegata e
mostra solo i record collegati..e le due maschere sono collegate fra loro
tramite la chiave primaria della tabella della prima maschera e un campo
della seconda.(ho inserito nel controllo della seconda su valore predefinito
[forms]![miaform].[campocollegato].
Se nella prima maschera (visualizzazione maschera singola) ho più record,
quando apro la seconda e clicco una delle frecce mi compaiono tutti i record
della tabella origine mentre devono comparire solo quelli con il valore del
campo collegato uguale alla prima maschera....
Se metto la maschera secondaria come sottomaschera della prima premendo il
pulsante si blocca tutto.
Hai una soluzione? preferirei mantenere le maschre collegate tramite tasto e
non avere sottomaschere.....
Grazie Luca

 recordprimadellospostamento
cosa metto al posto di "recordprimadellospostamento"?
Grazie molte comunque,
Luca.