Newsgroup: it.comp.lang.visual-basic
Titolo: Perche' questo errore ??

Vediamo se qualcuno mi aiuta con un errore (probabilmente banale) che
VB mi segnala.
Allora sto creando una specie di agendina.
Sul form ho il controllo calendario della Microsoft.
Cliccando su un giono compare in una casella di testo il record di un
database associato (con gli appuntamenti del giorno).
Il problema e' questo...
diciamo che il 20 ottobre inserisco un appuntamento. Dopo un po'
seleziono di nuovo il 20 ottobre e cancello l'appuntamento (seleziono
il testo con il mouse e tasto canc). Poi clicco su qualsiasi altra
data ... mi da quest'errore:
Errore di run time 3426
AZIONE ELIMINATA DA UN OGGETTO ASSOCIATO
Se invece di cancellare il record, lo modifico nessun problema.
Immagino (nella mia ignoranza) che sia un problema di aggiornamento di
DB, ma come posso evitare questo problema ??
Grazie a tutti e ciao.
********  ************** *****************
Attention: 
Unsolicited Email "spam" sent to this email address will result in your
system being subscribed to 10,775 Majordomo list servers.
Be forewarned that you will recieve roughly 1 gig of mail per day, or
15,000 messages per hour.
This Email address not for your advertising. You have been warned.
Think before you post!

AZIONE ELIMINATA DA UN OGGETTO ASSOCIATO
Caro Fabio è un problema serio che ho affrontato su questo NG pochi giorni
fà (vedi "Datacontol ?")
Vedi il fatto è che i DataControl non sono in grado di infilare un Null in
un campo, e poichè non esiste la possibilità di impostare la proprieta
"Consenti lunghezza zero" per un campo Data/Ora, una volta che un campo
Data/ora è stato inizializzato, un DataControl non è in grado di
Ri-verginizzarlo (rimetterci un Null dentro).
Non solo, ma finchè il campo è collegato al DataControl, non ci fai nulla
nemmeno se passi dal RecordSet del DataControl.
Grazie ad Andrea Zanoil, siamo arrivati a stabilire che se slacci
momentaneamente il controllo legato al campo data dal DataControl (impostare
a "" la proprietà DataSource del DataControl), allora è possibile infilare
il Null attraverso Data1.RecordSet("MioCampoData")= Null
Ti metto di seguito le routines originali che mi ha mandato Andrea Zanoil
(Spero non me ne voglia)
Spero che siano utili a te come lo sono state per me.
-Lasci il datacontrol ma scolleghi i vari textBox dal datacontrol
-Lasci valorizzata la proprietà DataFiled dei textbox
-Codice da inserire nell'evento Reposition del datacontrol (serve per
caricare i dati del record corrente)
Private Sub Data1_Reposition()
    If Data1.Recordset.AbsolutePosition = -1 Then Exit Sub
    Dim x As Integer
    For x = 0 To Controls.Count - 1
        If TypeOf Controls(x) Is TextBox Then
            If Len(Controls(x).DataField) Then
                If IsNull(Data1.Recordset(Controls(x).DataField)) Then
                    Controls(x).Text = ""
                Else
                    Controls(x).Text =
Data1.Recordset(Controls(x).DataField)
                End If
            End If
        End If
    Next
End Sub
-Codice tasto per Nuovo Inserimento
Private Sub cmdNuovo_Click()
    Data1.Recordset.AddNew
End Sub
-Codice da insere nel pulsante che registra il record (scarica i dati dal
DataEntry nel nuovo record o nel record in editazione )
Private Sub cmdConferma_Click()
    Dim x As Integer
    For x = 0 To Controls.Count - 1
        If TypeOf Controls(x) Is TextBox Then
            If Len(Controls(x).DataField) Then
                If Len(Controls(x).Text) = 0 Then
                    'lascio il campo al valore predefinito se nuovo record
oppure lo imposto a null se record in modifica
                Else
                    'valorizzo il campo
                    Data1.Recordset(Controls(x).DataField) =
Controls(x).Text
                End If
            End If
        End If
    Next
    Data1.UpdateRecord
'rendo corrente il nuovo record
    Data1.Recordset.Bookmark = Data1.Recordset.LastModified
End Sub
Ciao
Maurizio B.
mrzNOMMI...@tin.it
 (eraseNOMMISPAMMA)