Newsgroup: it.comp.appl.access
Titolo: Se modifico record stringa"Val(Mid$((Forms![INSERISCI SCADENZA]![PROTOCOLLO]), 3, 4))" non funziona

Buongiorno a tutti,
nella maschera "INSERISCI SCADENZA", in click del tasto Salva ho:
Private Sub SALVA_Click()
On Error GoTo myError
Me.Form.Requery
    Dim db As DAO.Database
    Set db = CurrentDb
    Dim rs As DAO.Recordset
    Set rs = db.OpenRecordset("SCADENZARIO INTESTAZIONE")
    With rs
        .AddNew
        ![PROTOCOLLO SCADENZARIO] = Me.PROTOCOLLO
        ![PROTOCOLLO NUMERICO] = Val(Mid$((Me.PROTOCOLLO), 3, 4))
        ![FT NUMERO] = Me.FT_NUMERO
        !IMPORTO = Me.IMPORTO
        ![RAGIONE SOCIALE] = Me.RAGIONE_SOCIALE
        .Update
        .Close
    End With
    Set rs = Nothing
    Set db = Nothing
Me.Form.Requery
    Set db = CurrentDb
    Set rs = db.OpenRecordset("SCADENZARIO DETTAGLI")
    With rs
        .AddNew
        !ID = Forms![INSERISCI SCADENZA]![SCADENZARIO DETTAGLI]![ID]
        ![PROTOCOLLO FT] = Forms![INSERISCI SCADENZA]![PROTOCOLLO]
        ![PROTOCOLLO NUMERICO] = Val(Mid$((Forms![INSERISCI 
SCADENZA]![PROTOCOLLO]), 3, 4))
        !IMPORTO = Forms![INSERISCI SCADENZA]![SCADENZARIO 
DETTAGLI]![IMPORTO]
        !SCADENZA = Forms![INSERISCI SCADENZA]![SCADENZARIO 
DETTAGLI]![SCADENZA]
        .Update
        .Close
    End With
    Set rs = Nothing
    Set db = Nothing
DoCmd.Close
myExit:
  Exit Sub
myError:
    Select Case Err.Number
        Case 3022
            MsgBox "SCADENZA GIA' INSERITA PER QUESTA FATTURA!"
            Resume myExit
        Case Else
            MsgBox "Piccola eccezione " & vbCrLf & _
                Err.Number & " " & Err.Description
         Resume myExit
    End Select
End Sub
I valori di questa maschera non sono associati ma "prelevati" dalla maschera 
da cui si apre tramite click la maschera INSERISCI SCADENZA.
Quando però vado a modificare un campo, questa riga e solo questa non 
funziona:
 ![PROTOCOLLO NUMERICO] = Val(Mid$((Forms![INSERISCI 
SCADENZA]![PROTOCOLLO]), 3, 4))
a cosa può essere dovuto?
Così mi salta la relazione e quando vado per cercare la scadenza non si 
trova.....
Grazie
Giorgia 

 Giorgia
Prova ad utilizzare Mid() al posto di Mid$(). Se Forms![INSERISCI
SCADENZA]![PROTOCOLLO] � nullo Mid$() ti restituisce un errore.
Mid() restituisce una Variant
Mid$() restituisce una Variabile Stringa
Con i campi che possono restituire valori nulli si usa MID() in quanto una
variabile stringa non pu� essere Null.
Francamente poi non capisco l'utilizzo di ulteriori parentesi in
Forms![INSERISCI SCADENZA]![PROTOCOLLO]
--
sv
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ha scritto nel messaggio 
news:hoskru$jce$1...@news.newsland.it...

Ciao, grazie mille per la tua risposta ma neanche con il tuo suggerimento 
funziona.
In pratica, ogni qualvolta  vado a modificare qualche campo, per es la data 
di scadenza, mi compare "SCADENZA GIA' INSERITA PER QUESTA FATTURA" che � il 
mio Msg box ma che avevo inserito per evitare di duplicare l'inserimento 
della stessa scadenza non di impedire di modificarla.
Come posso risolvere?
Giorgia 

 Giorgia
Ma tu utilizzi AddNew, cio� tu aggiungi un record con il click del tuo
pulsante salva. Chiaramente se esiste un record con un suo indice in
questo modo tu duplichi l'indice e quindi scatta l'errore 3022. 
