Esempi di codice

Stato
Chiusa ad ulteriori risposte.

ges

Excel/VBA Expert
Amministratore
21 Giugno 2015
29.532
2.465
Como
2011MAC 365WIN
1.009
Propongo di seguito degli esempi di codice che ho usato a scopo didattico nel file "Rubrica" che allego alla fine
E' stato usato l'oggetto DAO e delle Query create e gestite da vba

Per inserire nuovi dati in tabella
Visual Basic:
Private Sub cmdInserisci3_Click()
' Inserisce nuovi records
    Dim DBCorrente As DAO.Database
    Dim Tabella As DAO.Recordset

    If Len(Me.txtCognomeNome & "") = 0 Or _
        Len(Me.txtDataNascita & "") = 0 Or _
        Len(Me.txtTelefono & "") = 0 Then Exit Sub
    
    If Not IsNull(DLookup("[Cognome e Nome]", "Rubrica", "Trim([Cognome e Nome]) = " & _
        Chr(34) & Trim(Me!txtCognomeNome) & Chr(34))) And _
        Not IsNull(DLookup("[Data di nascita]", "Rubrica", "Trim([Data di nascita]) = " & _
        Chr(34) & Trim(Me!txtDataNascita) & Chr(34))) And _
        Not IsNull(DLookup("Telefono", "Rubrica", "Trim(Telefono) = " & Chr(34) & _
        Trim(Me!txtTelefono) & Chr(34))) Then
        MsgBox "Nominativo e dati già presenti!", vbExclamation, "ATTENZIONE!"
        Exit Sub
    End If

    Set DBCorrente = CurrentDb
    Set Tabella = DBCorrente.OpenRecordset("Rubrica", dbOpenTable)

    With Tabella
        .AddNew
        ![Cognome e Nome] = Me.txtCognomeNome
        ![Data di nascita] = Me.txtDataNascita
        !Telefono = Me.txtTelefono
        .Update
        Me.txtCognomeNome = ""
        Me.txtDataNascita = ""
        Me.txtTelefono = ""
        MsgBox "Nuovo utente inserito correttamente", vbInformation, "NOTIFICA"
    End With

    Tabella.Close
    Set DBCorrente = Nothing
    Refresh
End Sub
Per popolare una ListBox con i dati cercati in una TextBox
Visual Basic:
Private Sub cmbRicerca_AfterUpdate()
    Me.ListBox.RowSource = ""
    sql = "SELECT * FROM Rubrica WHERE [Cognome e Nome]= '" & Replace(Me.cmbRicerca.Column(0), "'", "''") & "'"
    With Me.ListBox
        .ColumnCount = 4
        .ColumnHeads = True
        .RowSource = sql
    End With
    With Me
        .txtID = ""
        .txtCognomeNome = ""
        .txtDataNascita = ""
        .txtTelefono = ""
    End With
End Sub
Per modificare i dati in tabella
Visual Basic:
Private Sub cmdModifica3_Click()
    If Len(Me.txtTelefono & "") = 0 Then Exit Sub
   
    Dim DBCorrente As DAO.Database
    Set DBCorrente = CurrentDb
   
    Dim sql As String

    sql = "UPDATE Rubrica SET [Cognome e Nome] = '" & Replace(Me.txtCognomeNome, "'", "''") & _
    "', [Data di nascita] = '" & Me.txtDataNascita & _
    "', Telefono = '" & Me.txtTelefono & _
        "' WHERE Cstr(ID)  = '" & Me.txtID & "';"
       
    DBCorrente.Execute sql
   
    Me.ListBox.RowSource = ""
   
    sql = "SELECT * FROM Rubrica WHERE [Cognome e Nome]= '" & Me.cmbRicerca.Column(0) & "'"
   
    With Me.ListBox
        .ColumnCount = 4
        .ColumnHeads = True
        .RowSource = sql
    End With
   
    Refresh
   
    MsgBox "Numero di telefono modificato", vbInformation, "NOTIFICA"
       
    Set DBCorrente = Nothing
End Sub
Per cancellare i dati in tabella
Visual Basic:
Private Sub cmbCancella_Click()
    Dim messaggio As String
    If Len(Me.txtCognomeNome & "") = 0 Then Exit Sub
 
    messaggio = MsgBox("Stai per cancellare il Nominativo selezionato!" & _
        vbCrLf & "Vuoi continuare?", vbYesNo, "ATTENZIONE")
   
    If messaggio = vbNo Then Exit Sub
   
    Dim DBCorrente As DAO.Database
    Set DBCorrente = CurrentDb
   
    Dim sql As String
          
    sql = "DELETE * FROM Rubrica WHERE ID & [Cognome e Nome] = '" & Me.txtID & Replace(Me.txtCognomeNome, "'", "''") & "';"
       
    DBCorrente.Execute sql
   
    With Me
        .ListBox.RowSource = ""
        .cmbRicerca = ""
        .txtID = ""
        .txtCognomeNome = ""
        .txtDataNascita = ""
        .txtTelefono = ""
    End With
   
    Refresh
   
    MsgBox "Nominativo cancellato!", vbInformation, "NOTIFICA"
       
    Set DBCorrente = Nothing
End Sub
Per chiudere Access e salvare
Visual Basic:
Private Sub cmbChiudi_Click()
' chiude Access e salva
  DoCmd.Quit acSave
End Sub
Per qualsiasi dubbio chiedete pure nella sezione Access

P.S. - In caso sono presenti degli errori potete segnalarmelo anche in MP
 

Allegati

Stato
Chiusa ad ulteriori risposte.

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!