Presentazione cancellazione registrazione modifica di un record in visual basic
Transcript of Presentazione cancellazione registrazione modifica di un record in visual basic
1
Presentazione a cura diClaudia Neri
4c Mercurio(indirizzo programmatori)
2008/2009I.s.i.s.t Russell-Newton
Scandicci (Firenze)
2
Visual Basic
• Inserimento, modifica, cancellazione di un record– Uso di AddNew/Update– Uso di Edit/Update– Uso di Delete– Ricerca diretta di un record con .seek “=“
3
Prendiamo ad esempio l’esercizio piscina per spiegare l’eliminazione, la modifica e la registrazione di record nel database utilizzando visual basic senza intervenire sul database attraverso access.
Primo passo: progettare la form
4
ComboBox: contenete gli iscritti Permette di visualizzare i dati dell’iscritto
E adesso prima di spiegare cosa fanno questi pulsanti vediamo cosa succede nella form_load e al clic di visualizza
5
Iniziamo a vedere la form_load…
Private Sub Form_Load()
Call caricaCombo
cmdRegistra.Enabled = False
cmdModifica.Enabled = False
cmdElimina.Enabled = False
End Sub
6
Private Sub caricaCombo
'scrivo nella combobox
tblIscritti.MoveFirst 'posizionarsi al primo record
Do While tblIscritti.EOF = False
cmbIscritti.AddItem tblIscritti("CodIsc") & "- " & tblIscritti("Cognome") & “ ” & tblIscritti("Nome")
tblIscritti.MoveNext 'andare al record successivo
Loop
cmbIscritti.ListIndex = -1
End Sub
In questa fase viene caricata la combobox con i nomi degli iscritti del database
Si imposta a –1 perché così parte con nessun nome visualizzato
Ecco cosa c’è nella sottoprocedura caricaCombo
7
..e al clic di Visualizza Posizione = InStr(cmbIscritti.Text, "-") RicCodIsc = Mid$(cmbIscritti.Text, 1, Posizione - 1) 'ricerco nella tabella iscrizioni il codice iscritto tblIscritti.Index = "PrimaryKey" tblIscritti.Seek "=", RicCodIsc If tblIscritti.NoMatch = True Then MsgBox ("Errore non esiste iscritto con quel codice") Else Call visDatiIscritto End If
cmdRegistra.Enabled = True cmdModifica.Enabled = True cmdElimina.Enabled = True
8
Ed ecco cosa succede nella sottoprocedura visDatiIscritto
Private Sub visDatiIscritto()
txtCodIsc.Text = tblIscritti("CodIsc")txtCognome.Text = tblIscritti("Cognome")txtNome.Text = tblIscritti("Nome")txtIndirizzo.Text = tblIscritti("Indirizzo")txtCitta.Text = tblIscritti("Città")txtCap.Text = tblIscritti("Cap")txtTelefono.Text = tblIscritti("Telefono")txtEmail.Text = tblIscritti("Email")
End Sub
9
Cominciamo adesso con il pulsante Elimina
Il pulsante elimina deve contenere le istruzioni per poter cancellare il record che abbiamo selezionato attraverso la combo box.
Per far ciò viene utilizzato il metodo DELETE del controllo record-set
Vediamo in visual basic
10
Private Sub cmdElimina_Click()
A = MsgBox("Sei sicuro di volerlo eliminare?", vbYesNo)
If A = 6 Then tblIscritti.Delete MsgBox "Eliminazione effettuata"End If
cmbIscritti.ClearCall caricaComboCall pulisciText
cmdRegistra.Enabled = FalsecmdModifica.Enabled = FalsecmdElimina.Enabled = False
Per prima cosa ci si domanda se si vuole davvero eliminare.
Qui si guarda se è stato confermato o meno e si utilizza un numero perché la risposta alla domanda viene memorizzata attraverso un numero.
11
Passiamo adesso al pulsante modifica
All’attivazione di questo pulsante occorre attivare la frame che contiene le textbox per poter così effettuare le eventuali modifiche.
Private Sub cmdModifica_Click()
fraDati.Enabled = True
cmdElimina.Enabled = False
txtCodIsc.Enabled = False
txtCognome.SetFocus
End Sub
12
Ecco il pulsante registra
Dopo aver modificato i dati occorre salvare queste modifiche anche sul database e ciò avviene cliccando sul pulsante registra.
In questo pulsante vengono utilizzate due metodi il primo è EDIT e il secondo è UPDATE.
13
tblIscritti.EdittblIscritti("CodIsc") = txtCodIsc.TexttblIscritti("Cognome") = txtCognome.TexttblIscritti("Nome") = txtNome.TexttblIscritti("Indirizzo") = txtIndirizzo.TexttblIscritti("Città") = txtCitta.TexttblIscritti("Cap") = txtCap.TexttblIscritti("Telefono") = txtTelefono.TexttblIscritti("Email") = txtEmail.TexttblIscritti.Update
MsgBox "Registrazione effettuata"cmbIscritti.ClearCall caricaComboCall pulisciTextfraDati.Enabled = FalsecmdElimina.Enabled = FalsecmdModifica.Enabled = FalsecmdRegistra.Enabled = False
14
Adesso vediamo come facciamo ad aggiungere un nuovo iscritto
Per aggiungere un iscritto occorre che nella combobox sia selezionata la riga vuota, questo deve far cambiare la caption del pulsante registra e al posto di “Registra” deve apparire “Aggiungi”.
Qui viene poi utilizzato un nuovo metodo che è quello ADDNEW.
Dobbiamo adesso modificare alcune istruzioni nel codice di alcuni pulsanti già utilizzati vediamo come….
15
Le modifiche del pulsante visualizzaIf cmbIscritti.ListIndex = -1 Then cmdRegistra.Caption = "Aggiungi" cmdRegistra.Enabled = True fraDati.Enabled = TrueElse cmdRegistra.Caption = "Registra" Posizione = InStr(cmbIscritti.Text, "-") RicCodIsc = Mid$(cmbIscritti.Text, 1, Posizione - 1) tblIscritti.Index = "PrimaryKey" tblIscritti.Seek "=", RicCodIsc If tblIscritti.NoMatch = True Then MsgBox ("Errore non esiste iscritto con quel codice") Else Call visDatiIscritto End If cmdRegistra.Enabled = True cmdModifica.Enabled = True cmdElimina.Enabled = TrueEnd If
Nel visualizza abbiamo aggiunto il se che guarda se la riga selezionata della combobox è vuota, se ciò è vero allora cambia la caption al pulsante registra e attiva tutte le text per poter aggiungere i dati del nuovo iscritto
16
Le modifiche nel pulsante registraIf cmbIscritti.ListIndex = -1 Then tblIscritti.AddNewElse tblIscritti.EditEnd IftblIscritti("CodIsc") = txtCodIsc.TexttblIscritti("Cognome") = txtCognome.TexttblIscritti("Nome") = txtNome.TexttblIscritti("Indirizzo") = txtIndirizzo.TexttblIscritti("Città") = txtCitta.TexttblIscritti("Cap") = txtCap.TexttblIscritti("Telefono") = txtTelefono.TexttblIscritti("Email") = txtEmail.TexttblIscritti.UpdateMsgBox "Registrazione effettuata"cmbIscritti.ClearCall caricaCombo Call pulisciTextfraDati.Enabled = FalsecmdElimina.Enabled = FalsecmdModifica.Enabled = False
Si è aggiunto un se in modo da verificare quando nella combobox è selezionata la riga vuota o no.
Infatti se è selezionata la riga vuota deve eseguire l’istruzione di aggiungere nella tabella un nuovo iscritto altrimenti deve solo consentire di aggiungere le modifiche a un iscritto già presente
17
Fine presentazione
Firenze, 22/12/2008