Newsgroup: it.comp.appl.access
Titolo: Maschere continue

Purtroppo ci batto sempre la testa, non le sopporto, non le digerisco, 
esteticamente non mi piacciono....... però son tanto comode.
Esiste qualche esempio di come gestirle per cercare di creare un feeling un 
pò più decente tra me e loro?
Ma sono l'unico ad avere problemi con le subform?
-- 
Saluti Andrea
Access 2003 - Windows XP 

 Ma sono l'unico ad avere problemi con le subform?
Scusate...maschere continue!


 Access 2003 - Windows XP
Quale problema hai trovato?
Ciao.
-- 
Sergio MAZZA 

 wrote in message 
news:458146c1$0$4247$4faf...@reader1.news.tin.it...

Allora sono schede continue di che tipo: Form o subForm?
E quali problemi, per esempio?
Bruno 

 esteticamente non mi piacciono....... però son tanto comode.
Esteticamente non hanno nulla di diverso a un foglio dati (se perdi due
minuti ad allineare come si deve le colonne).
Saluti.

 Quale problema hai trovato?
Non sò di preciso dove sbaglio però nonostante tutti gli sforzi che impiego 
c'è sempre qualcosa che non và, ti/vi posto il codice della sottomaschera in 
questione, non mi interessano correzioni ma solo capire dove sbaglio se 
sbaglio.
Funziona più o meno bene però ho visto che non gira tutto liscio.
'---------------------------------------------------
Option Compare Database
Option Explicit
Private Sub cbofornitore2_NotInList(NewData As String, Response As Integer)
    Response = False
    If MsgBox("Vuoi aggiungere il Fornitore?", vbQuestion + vbYesNo, "Nuovo 
Fornitore") = vbYes Then
        DoCmd.OpenForm "fornitori", acNormal, , , acFormAdd, , NewData
        Forms!fornitori.Form.cmdritornafornitore2.Visible = True
        Forms!fornitori.Form!nome = NewData
        cbofornitore2.Undo
        cbofornitore2.Requery
    Else
        cbofornitore2 = ""
    End If
End Sub
Private Sub cboricarico2_AfterUpdate()
Dim datototale2 As Single
Dim datospesa2 As Single
Dim datoricarico2 As Integer
    datoricarico2 = cboricarico2.Column(1)
    datospesa2 = txtspesa2
    datototale2 = ((datospesa2 / 100) * datoricarico2) + datospesa2
    txttotale2 = datototale2
End Sub
Private Sub cboricarico2_GotFocus()
        If cbofornitore2 = 0 Then
            MsgBox "Inserire il Fornitore!"
            cbofornitore2.SetFocus
            Exit Sub
        End If
        If txtspesa2 = 0 Then
        MsgBox "Inserire la Spesa"
            txtspesa2.SetFocus
            Exit Sub
        End If
End Sub
Private Sub Form_Load()
    Me.AllowAdditions = False
    If Me.OpenArgs = 100 Then
    Exit Sub
    End If
End Sub
Private Sub txtmemo2_GotFocus()
        If cbofornitore2 = 0 Then
            MsgBox "Inserire il Fornitore!"
            cbofornitore2.SetFocus
        Exit Sub
        End If
        If txtspesa2 = 0 Then
        MsgBox "Inserire la Spesa"
            txtspesa2.SetFocus
            Exit Sub
        End If
        If cboricarico2 = 0 Then
            MsgBox "Inserire il Ricarico"
            cboricarico2.SetFocus
        End If
End Sub
Private Sub txtspesa2_AfterUpdate()
cboricarico2_AfterUpdate
End Sub
Private Sub txtspesa2_GotFocus()
    If cbofornitore2 = 0 Then
        MsgBox "Inserire il Fornitore!"
        cbofornitore2.SetFocus
    End If
End Sub
Private Sub cmdesci_Click()
On Error GoTo Err_cmdesci_Click
    DoCmd.Close
Exit_cmdesci_Click:
    Exit Sub
Err_cmdesci_Click:
    MsgBox Err.Description
    Resume Exit_cmdesci_Click
End Sub
Private Sub cmdelimina_Click()
On Error GoTo Err_cmdelimina_Click
    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
Exit_cmdelimina_Click:
    Exit Sub
Err_cmdelimina_Click:
    MsgBox Err.Description
    Resume Exit_cmdelimina_Click
End Sub
Private Sub cmdaggiungi_Click()
On Error GoTo Err_cmdaggiungi_Click
If Me.AllowAdditions = False Then
    Me.AllowAdditions = True
    cmdelimina.Visible = True
End If
    DoCmd.GoToRecord , , acNewRec
    idpreventivo = Me.OpenArgs
Exit_cmdaggiungi_Click:
    Exit Sub
Err_cmdaggiungi_Click:
    MsgBox Err.Description
    Resume Exit_cmdaggiungi_Click
End Sub
Private Sub cmdsalva_Click()
On Error GoTo Err_cmdsalva_Click
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
    totale_costi_aggiunti = txttotale
    Me.AllowAdditions = False
    Me.Dirty = False
Exit_cmdsalva_Click:
    Exit Sub
Err_cmdsalva_Click:
    MsgBox Err.Description
    Resume Exit_cmdsalva_Click
End Sub

 ha scritto nel messaggio 
news:4581b918$0$4252$4faf...@reader1.news.tin.it...

Bene per l'invio del codice ma oltre alla sensazione che qualcosa non va, ci 
vuole qualcosa di più concreto per poter fare una diagnosi.
Giusto per scriverti qualcosa; io inizierei sostituendo i DoMenuItem con i 
metodi appropriati, e poi ho visto un cbofornitore2.Requery nella 
cbofornitore2_NotInList che a lume di naso non credo serva visto che fai 
l'undo del valore inserito a mano...
Ciao.
-- 
Sergio MAZZA 

 l'undo del valore inserito a mano...
E' l'unica cosa che mi dà certezza che funzioni, la uso un pò in tutte le 
maschere, ho visto che l'utonto (spesso io :-) ) è più facilitato ad 
inserire nuovi dati.
Comunque provo a togliere il requery e vedere che succede.


 Access 2003 - Windows XP
Ciao.
-- 
Sergio MAZZA 

 No; prova a descrivere quello che vuoi fare passo-passo...
Semplice, se il fornitore non è in elenco si apre il messaggio se voglio
aggiungerlo e dopo la scelta "si", si apre la maschera fornitori e fà
visualizzare solo il pulsante "ritorna (dove devo tornare)" e dopo
l'inserimento e l'accettazione, il combo fornitore nella sottomaschera costi
aggiunti accetta il nuovo dato, addirittura lo faccio per i colori ed ho 4
combobox che ri riaggiornano in automatico e tutti quanti si riaggiornano
ogni volta che aggiungo un colore nuovo. Ti immagini che pizza sarebbe dover
chiudere tutte le volte la maschera preventivo e dopo aver inserito il
colore riaprire il preventivo e ripassare di nuovo il colore?
Se mi dici che esistono soluzioni migliori magari può essere però ripeto
questo sistema funziona ed è pratico.
Buon weekend


 Access 2003 - Windows XP
Ciao.
-- 
Sergio MAZZA 

 ...
Ciao
ma se fai l'Undo il combo non perde i dati?
cioè NewData è ancora disponibile dopo "cbofornitore2.Undo" ?
non ho potuto provare, ma si pareva di no...
da cui il motivo che era dopo l'openform.
Grazie
Nik

 Riprendiamo per un attimo le tue righe:
ho visto che ti ha risposto Nicola che č l'inventore della routine, forse č 
meglio che questo argomento lo discuti con lui e io vi ammiro in disparte 
;-)
Saluti Andrea 

 Nik
No perché se ci fai caso la variabile NewData viene valorizzata alla 
chiamata della routine:
Private Sub CasellaCombinata_NotInList(NewData As String, Response As 
Integer)
...
e l'Undo non cancella la NewData ma solo l'input dell'utente nel 
controllo...
Ciao.
-- 
Sergio MAZZA 


Giusto... :-)
grazie
Nik