codice:
Option Explicit
Dim cn As ADODB.Connection ' DICHIARO L'OGGETTO CONNECTION
Dim rs As ADODB.Recordset ' DICHIARO L'OGGETTO RECORDSET
Dim s() As String ' STRINGA DI ARRAY CHE SERVIRA' IN ALCUNE FASI DEL PROGRAMMA
Private Sub cmdPulisci_Click()
' PULISCE I CAMPI
txtNome.Text = ""
txtCognome.Text = ""
txtIndirizzo.Text = ""
txtTelefono.Text = ""
End Sub
Private Sub cmdSalva_Click()
' CONTROLLO LA VALIDITA' DEI CAMPI
If Len(Trim(txtNome.Text)) = 0 Then
txtNome.SetFocus
ElseIf Len(Trim(txtCognome.Text)) = 0 Then
txtCognome.SetFocus
ElseIf Len(Trim(txtIndirizzo.Text)) = 0 Then
txtIndirizzo.SetFocus
ElseIf Len(Trim(txtTelefono.Text)) = 0 Or IsNumeric(txtTelefono.Text) = False Then
txtTelefono.SetFocus
Else ' SE TUTTE LE CONDIZIONI SONO STATE SODDISFATTE...
Dim SQL As String ' COMANDO SQL A SECONDA CHE SI TRATTI DI UNA INSERT O DI UN UPDATE
Dim conferma As String ' MESSAGGIO DI CONFERMA (SECONDO LO STESSO CRITERIO DESCRITTO SOPRA)
' COME SOPRA...
s = Split(cmbSeleziona.Text, " ")
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=database.mdb"
If cmbSeleziona.Text = "" Then ' ...ESEGUO LA INSERT
SQL = "INSERT INTO utenti " _
& "(nome, cognome, indirizzo, telefono) " _
& "VALUES " _
& "('" & Replace(txtNome.Text, "'", "''") & "', " _
& "'" & Replace(txtCognome.Text, "'", "''") & "', " _
& "'" & Replace(txtIndirizzo.Text, "'", "''") & "', " _
& "'" & Replace(txtTelefono.Text, "'", "''") & "')"
conferma = "Inserimento effettuato con successo"
Else ' ...ESEGUO L'UPDATE
SQL = "UPDATE utenti SET " _
& "nome = '" & Replace(txtNome.Text, "'", "''") & "', " _
& "cognome = '" & Replace(txtCognome.Text, "'", "''") & "', " _
& "indirizzo = '" & Replace(txtIndirizzo.Text, "'", "''") & "', " _
& "telefono = '" & Replace(txtTelefono.Text, "'", "''") & "' " _
& "WHERE id = " & CInt(s(0))
conferma = "Modifica effettuata con successo"
End If
' ESEGUO REALMENTE IL COMANDO SQL CHE ARRIVA ALL'ESTERNO DELLA CONDIZIONE
cn.Execute (SQL)
cn.Close
' PULISCO E RICARICO LA COMBO BOX
cmbSeleziona.Clear
Call Form2_Load
End If
End Sub
Private Sub cmdSeleziona_Click()
If cmbSeleziona.Text = "" Then ' VERIFICO CHE SIA SELEZIONATO UN RECORD REALE, NON VUOTO
Else
' UTILIZZO LA FUNZIONE SPLIT PER RECUPERARE IL VALORE ID NELLA COMBO BOX
s = Split(cmbSeleziona.Text, " ")
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
' APRO LA CONNESSIONE E LANCIO LA QUERY PER RECUPERARE IL RECORD SELEZIONATO
cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=database.mdb"
rs.Open "SELECT * FROM utenti WHERE id = " & CInt(s(0)), cn, 1
' RIEMPIO I CAMPI DELLA FORM CON I VALORI ESTRATTI DAL DATABASE
txtNome.Text = rs("nome").Value
txtCognome.Text = rs("cognome").Value
txtIndirizzo.Text = rs("indirizzo").Value
txtTelefono.Text = rs("telefono").Value
rs.Close
cn.Close
End If
End Sub
Private Sub Form2_Load()
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
' APRO LA CONNESSIONE E LANCIO LA QUERY PER RECUPERARE I DATI
cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=database.mdb"
rs.Open "SELECT id, nome, cognome FROM utenti ORDER BY cognome ASC", cn, 1
' INSERISCO UN ITEM VUOTO NELLA COMBO BOX
cmbSeleziona.AddItem ("")
' ESTRAGGO I DATI CHE MI INTERESSANO DALLA TABELLA E LI INSERISCO NELLA COMBO BOX
While rs.EOF = False
cmbSeleziona.AddItem (rs("id").Value & " - " & rs("cognome").Value & " " & rs("nome").Value)
rs.MoveNext
Wend
rs.Close
cn.Close
End Sub
Private Sub cmdCancella_Click()
If cmbSeleziona.Text = "" Then ' CONTROLLO CHE IL RECOR SELEZIONATO NON SIA VUOTO
Else
' COME SOPRA...
s = Split(cmbSeleziona.Text, " ")
' ESEGUO LA CANCELLAZIONE DEL RECORD SELEZIONATO
Set cn = New ADODB.Connection
cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=database.mdb"
cn.Execute ("DELETE * FROM utenti WHERE id = " & CInt(s(0)))
cn.Close
' PULISCO E RICARICO LA COMBO BOX
cmbSeleziona.Clear
Call Form2_Load
End If
End Sub
Private Sub cmdEsci_Click()
Unload Me ' ESCE DAL PROGRAMMA
End Sub