Escludere Dati già inseriti



  • Escludere Dati già inseriti
    di Paolo (utente non iscritto) data: 14/10/2014 20:21:03

    Scusatemi se non mi sarò spiegato meglio, sono alle prima armi
    vediamo se riesco a spiegarmi.
    ho 4 tabelle
    NomeTabella Campi Descrizione
    ------------------------------------------------------------------------------------------------------------------------------------------------
    tblAccount: ID, Account Inserisco gli account
    tblGruppo: ID, NomeGruppo Inserisco il nome Gruppo con quello che possono fare
    tblGruppoSub ID, IDGruppo, NomeSub Inserisco l'abbinamento ad un sotto gruppo ed il nome
    tblAccountPrivilegi ID, IDAccount, IDGruppo, IDGruppoSub Inserisco l'account nel gruppo e sotto gruppo
    ------------------------------------------------------------------------------------------------------------------------------------------------
    in una Listbox con selezione multipla abbino account ai gruppi e sottogruppi, inserendoli nella tabella tblAccountPrivilegi.

    La domanda è, come faccio ad escludere nella listbox i records già abbinati.
     
    Private Sub cmdAggiungiAccount_Click()
    On Error GoTo ErrorHandler
        
        Dim strSQL As String
        Dim db As DAO.Database
        Dim rs As DAO.Recordset
        Dim ctl As Control
        Dim varItem As Variant
        Dim varIDGruppo As Variant
            Set db = CurrentDb()
            Set rs = db.OpenRecordset("tblAccountPrivilegi", dbOpenDynaset, dbAppendOnly)
    
      If Me.lsbGruppi.ItemsSelected.Count = 0 Then
        MsgBox "Must select at least 1 Account"
        Exit Sub
      End If
    
      If Not IsNumeric(Me.txtAccount) Then
        MsgBox "Must enter numeric Other Value"
        Exit Sub
      End If
    
      'add selected value(s) to table
      Set ctl = Me.lsbGruppi
      For Each varItem In ctl.ItemsSelected
        rs.AddNew
        rs!IDGruppoSub = ctl.ItemData(varItem)
        rs!IDAccount = Me.txtAccount
        rs.Update
      Next varItem
      
      DoCmd.RunSQL "UPDATE tblAccountPrivilegi INNER JOIN tblGruppoSub ON tblAccountPrivilegi.IDGruppoSub = tblGruppoSub.ID SET tblAccountPrivilegi.IDGruppo = [tblGruppoSub].[IDGruppo];"
      DoCmd.RunCommand acCmdRefresh
    
    MsgBox "Well Done"
    
    ExitHandler:
      Set rs = Nothing
      Set db = Nothing
      Exit Sub
    
    ErrorHandler:
      Select Case err
        Case Else
          'MsgBox err.Description
          DoCmd.Hourglass False
          Resume ExitHandler
      End Select
      
      
      Me.Refresh
      DoCmd.RefreshRecord
      DoCmd.RunCommand acCmdRefresh + acCmdSynchronizeNow
    
    End Sub
    
    Private Sub Form_Load()
    Me.txtAccount = Form_frmAccount.ID
    End Sub