Newsgroup: it.comp.appl.access
Titolo: Non in elenco. Ulteriore aituo

Non riesco a farla entrare nella zucca.
Questa funzione, elaborata dopo mille domande e facendo un mix delle varie
risposte, mi consente di inserire, se rispondo si ad un messaggio, una nuova
qualifica non presente in elenco, ma non mi consente di inserire i dati
relativi agli altri 2 campi facenti parte della tabella, cioè livello
(numerico, intero) e orario (numerico, intero). Il codice che ho copiato non
mi diceva come inserire i dati relativi ai campi "livello" e "orario",  ho
provato, ma non sapendo la sintassi esatta, immancabilmente mi beccavo
ERRORE. Inoltre, alla domanda: non in elenco, la vuoi inserire?, se clicco
su si, mi inserisce la nuova qualifica e mi aggiorna la qualifica del
dipendente (gli altri 2 campi restano ovviamente vuoti), ma mi passa
immediatamente al record successivo. Io vorrei, se possibile, anzitutto
completare tutti i campi e che la maschera dipendenti rimanesse attiva sul
record dove ho effettuato la modifica/aggiunta della qualifica. Scusatemi,
ma con le teste dure ci vuole pazienza. Di sotto trascrivo la funzione
incriminata.
Option Compare Database
Option Explicit
Private Sub form_current()
Me!IDQual.SetFocus
End Sub
Private Sub IDQUAL_NotInList(NewData As String, response As Integer)
Dim intrisposta As Integer
Dim rappor810 As Database
Dim qualifiche As DAO.Recordset
intrisposta = MsgBox("aggiungere " & NewData & "all'elenco?", vbQuestion +
vbYesNo)
If intrisposta = vbYes Then
'aggiunge nuova qualifica'
Set rappor810 = CurrentDb
Dim liv As Integer
Dim ora As Integer
Set qualifiche = rappor810.OpenRecordset("qualifiche")
qualifiche.AddNew
qualifiche!Qualifica = NewData
qualifiche.Update
response = acDataErrAdded
Else
response = acDataErrDisplay
End If
qualifiche.Close
End Sub


-------------------
Prova così:
-------------------
Private Sub IDQUAL_NotInList(NewData As String, Response As Integer)
    Dim intNuovaQualifica As Integer, strTitolo As String, intFinestraMsg As
Integer
    ' Visualizza una finestra per la richiesta di aggiunta di QUALIFICA.
    strTitolo = "Qualifica non presente in elenco"
    intFinestraMsg = vbYesNo + vbQuestion + vbDefaultButton1
    intNuovoCodice = MsgBox("Aggiungere la nuova qualifica?", intFinestraMsg,
strTitolo)
If intNuovaQualifica = vbYes Then
        ' Rimuove il nome immesso dalla casella combinata IDQUAL
        ' in modo che sia possibile eseguire una query di controllo ritornando alla
maschera.
        DoCmd.RunCommand acCmdUndo
        ' Apre la maschera Qualifiche.
        DoCmd.OpenForm "Qualifiche", acNormal, , , acAdd, acDialog, NewData
 
        ' Continua senza visualizzare il messaggio di errore predefinito.
        Response = acDataErrAdded
End If
End Sub
Ovviamente questo codice presume che tu abbia una maschera chiamata
"Qualifiche" associata
alla tabella!
Nella maschera associata alla qualifica inserisci questo codice...
Private Sub Form_AfterUpdate()
 
       DoCmd.Close
End Sub
Con questa routine chiudi automaticamente la maschera delle qualifiche e il
cursore
sarà posizionato sul campo della qualifica nella maschera dipendenti!
Private Sub Form_Load()
 
       Me!IDQUAL = Me.OpenArgs
       Me!IDQUAL.SetFocus
End Sub
Quando si apre ma maschera delle qualifiche avrai il campo IDQUAL
selezionato, completi
i dati relativi ai campi orario e livello.
Ciao. Alessandra
--------------------------------
Inviato via 
http://usenet.libero.it

 ha scritto nel messaggio
news:213Z136Z131Z221Y...@usenet.libero.it...


Grazie Alessandra, la provo subito. Ti farò sapere, ciao
137 righe per dire grazie 8-|