Newsgroup: it.comp.appl.access
Titolo: Barra menu scelta rapida. Ccomando cancellazione record inattivo

Access 2003 e 2010.
 
 
Ciao a tutti,
 
Ho creato una barra menu a scelta rapida da usare con tasto destro, come ho 
già fatto in passato; i vari comandi inseriti sono tutti attivi e 
funzionanti ad esclusione del comando cancella record che resta inattivo sia 
nella form principale (basata su query) che nelle sottoform (basate su 
query) che sono circa 7. Non riesco a capire il perchè. Preciso che 
"consenti modifiche e cancellazioni" sono impostati a SI e che nella form 
principale ho inserito il seguente codice che blocca la form, mentre nelle 
sottoform o solo richiamato su corrente il codice di blocco che funziona 
egregiamente.
Sperro mi possiate aiutare.
 
Ciao Bruno
 
Private Sub Form_Current()
 
     If Me.NewRecord = False Then
        Me.AllowEdits = False
        Me.PulsanteRosso.Visible = True
        Me.PulsanteRosso1.Visible = True
        Me.PulsanteVerde.Visible = False
        Me.PulsanteVerde1.Visible = False
        Else: Me.AllowEdits = True
        Me.PulsanteRosso.Visible = False
        Me.PulsanteRosso1.Visible = False
        Me.PulsanteVerde.Visible = True
        Me.PulsanteVerde1.Visible = True
        Me.Refresh
    End If
--------
 
Private Sub Corpo_DblClick(Cancel As Integer)
    If Me.AllowEdits = False Then
        Me.AllowEdits = True
        Me.PulsanteRosso.Visible = False
        Me.PulsanteRosso1.Visible = False
        Me.PulsanteVerde.Visible = True
        Me.PulsanteVerde1.Visible = True
        MsgBox "Ordine di servizio sbloccato.    ", vbExclamation, "Avviso!"
        ElseIf Me.AllowEdits = True Then
        Me.AllowEdits = False
        Me.PulsanteRosso.Visible = True
        Me.PulsanteRosso1.Visible = True
        Me.PulsanteVerde.Visible = False
        Me.PulsanteVerde1.Visible = False
        MsgBox "Ordine di servizio bloccato.    ", vbExclamation, "Avviso!"
        Me.Refresh
    End If
 
End Sub
 
 


[CUT]
 
 
Ho provato a basare lale form su tabella e il comando di cancellazione 
record funsiona, mentre se la form è su queri non funziona. Conoscete un 
modo affinchè possa funzionare anche su form basate su query. Sono 
interessato in quanto è più facile la gestione dell'ordinamento e posso 
aggiungere qualche altro campo calcolato in query per motivi vari., anche se 
penserete che posso aggiungerli direttamente in form, ma preferisco così.
 
Ciao, Bruno 
 
 

 ha scritto nel messaggionews:4f1e5ae5$0$1393$4faf...@reader1.news.tin.it...

Il problema non è se la Form è basata su Tabella o su Query... ma se
stai cancellando un Record lato Tabella(1) che contiene Record lato
molti... che ovviamente rende IMPOSSIBILE l'azione di DELETE.
 
Ti accorgi di questo anche se apri direttamente la Query e cerchi di
cancellare manualmente il Record.
Dovresti avere lo stesso comportamento, ovvero non poter cancellare.
 
 
P.S. questo codice io lo riscriverei:
Private Sub Form_Current()
 
     If Me.NewRecord = False Then
        Me.AllowEdits = False
        Me.PulsanteRosso.Visible = True
        Me.PulsanteRosso1.Visible = True
        Me.PulsanteVerde.Visible = False
        Me.PulsanteVerde1.Visible = False
        Else: Me.AllowEdits = True
        Me.PulsanteRosso.Visible = False
        Me.PulsanteRosso1.Visible = False
        Me.PulsanteVerde.Visible = True
        Me.PulsanteVerde1.Visible = True
        Me.Refresh
    End If
End Sub
 
Così:
Private Sub Form_Current()
        Me.AllowEdits = Me.NewRecord
        Me.PulsanteRosso.Visible = Not Me.NewRecord
        Me.PulsanteRosso1.Visible = Not Me.NewRecord
        Me.PulsanteVerde.Visible = Me.NewRecord
        Me.PulsanteVerde1.Visible = Me.NewRecord
        Me.Refresh
End Sub
 
Ciao
@Alex

 Ciao, Bruno
 
Il problema non è se la Form è basata su Tabella o su Query... ma se
stai cancellando un Record lato Tabella(1) che contiene Record lato
molti... che ovviamente rende IMPOSSIBILE l'azione di DELETE.
 
Ti accorgi di questo anche se apri direttamente la Query e cerchi di
cancellare manualmente il Record.
Dovresti avere lo stesso comportamento, ovvero non poter cancellare.
--------------
 
Ciao alex, ho provato ad entrare nella query direttamente dalla form e una 
volta eseguita mi ha permesso di cancellare tranquillamente il record. Ho 
ricontrollato che la sottomaschera avesse la proprietà consenti eliminazioni 
impostata a si. Non ho proprio idea sul perchè faccia così. Essendo una 
sottomaschera continua, ho provato a farla visualizzare in foglio dati ma 
non mi permette comunque di eliminare il record, lasciando l'icona del menu 
inattiva. Il problema è che in alcune sottomaschere posso basarle sulla 
tabella perchè è solo il contenitore dei dati, mentre per altre 
sottomaschere ho la necessità di basarle su query in quanto il dato che 
inserisco è numerico, ma avendo delle relazioni nella query, questa mi 
permette di avere con relazione anche il nome del soggetto identificato con 
il numero inserito ma non visualizzato.
Ti viene in mente qualcosaltro?
 
------------------

----------------------------
 
Ho provato il codice da te corretto; se non sbaglio, qualcosa non funziona, 
infatti ho la necessità di effettuare il blocco dei record man mano inseriti 
sia nella form principale che nelle sottoform, ma ho anche la necessità di 
poter sbloccare il tutto con doppio clic sul corpo della forma principale 
per effettuare eventuali corezioni. Il tuo codice, molto più snello del mio 
poema prevede lo sblocco e cambio colore pulsante di avviso solo con record 
nuovo. Sbaglio qualcosa ?
Tieni conto che non ho molta dimestichezza con il codice VBA.
 
 
Mille grazie, Bruno
 
 
 


 
Scusa Alex, solo per essere sicuro di aver capito bene; cosa intendi per:
 
Record lato Tabella(1) che contiene Record lato
molti...
 
 
Gazie, Bruno 
 
 


Risolto, il problema erra nelle proprietą della form inpostata per non far 
cancellare i record.
 
Mi scuso per la perdita di tempo .
 
Bruno