Popup per confermare eliminazione righe e aggiornamento valori

di il
2 risposte

Popup per confermare eliminazione righe e aggiornamento valori

Salve a tutti, ho una tabella TrackHeader con titoli di tracce musicali ed il loro ID.

Ogni traccia può essere acquistata a titolo esclusivo o non esclusivo per un certo periodo di tempo. Quindi se nessuno acquista la traccia a titolo esclusivo posso venderla a tanti clienti. se un cliente la richiede a titolo esclusivo dovrei aggiornare il mio db eliminando le info riguardanti le licenze non esclusive.

Avevo pensato di fare una tabella Licenza dove metto IDcanzone, IDcliente,Scadenza,Note, Esclusiva (vero falso) e creare una maschera per gestire questa tabella utilizzando una checkbox associata a Esclusiva. Cliccando la checkbox mi controlla se ci sono altre licenze per la stessa canzone, se ci sono mi chiede cosa voglio fare. se voglio assegnare la licenza esclusiva dovrei eliminare le altre righe e lasciare questa.

Non so bene come gestire questa cosa, mi conviene utilizzare meglio le relazioni e creare magari più tabelle o dite che posso gestirla con una sola tabella e un po di vba?

a questo punto dovrei mettere un controllo ogni volta che inserisco una nuova licenza e controllare se per la stessa traccia ci sono delle licenze esclusive

consigli??

2 Risposte

  • Re: Popup per confermare eliminazione righe e aggiornamento valori

    Potresti descrivere tutte le tabelle con tutti i campi e le relazioni? Oppure mostrare la finestra Relazioni?
  • Re: Popup per confermare eliminazione righe e aggiornamento valori

    Ho registrtato un , posso lasciare il video o devo mettere immagini??


    EDIT: All'interno del subform Licence (quello dove inserisco i dati delle licenze) ho associato all'evento click della checkbox "Exclusive" il seguente codice:
    Private Sub Exclusive_Click()
    
    If Me.Exclusive = True Then
       scelta = InputBox("Do you want to set " & nome & " as Exclusive Licence?" & Chr(13) & _
       "This operation will delete all other Licences on this track." & Chr(13) & Chr(13) & "Type ""yes"" to set the Exclusive Licence")
        If scelta = "yes" Then
        strSQL = "DELETE * FROM licence WHERE (licence.trackid)=  """ & Me.TrackID & """ and licence.licenceID <> " & Me.LicenceID & "  ;"
        DoCmd.RunSQL (strSQL)
        'se scrivo yes cancella tutti gli altri record con lo stesso trackID ma diverso LicenceID
        Me.Requery
        Else: Me.Exclusive = False
        End If
    
    End If
    End Sub
    quando clicco la spunta per asseganre l'esclusiva ad una licenza mi chiede cosa voglio fare, se scrivo "yes" cancella tutte le altre licenze della mia traccia, se annullo o scrivo qualsiasi altra cosa mi imposta la traccia come non esclusiva... non e' fatto benissimo ma funziona...
    se avete critiche o consigli dite pure... vorrei imparare a farle bene queste cose...

    ora vorrei mettere un controllo prima di inserire i dati, avevo pensato ad associare a before insert del codice che mi controlla se per la traccia di cui sto aggiungendo una licenza ci sono licenze esclusive o meno, se ci sono licenze esclusive mi esce un messaggio tipo "questa traccia ha gia' una licenza esclusiva) e non inserisce niente, se non ci sono licenze esclusive continuo ad inserire il dato.

    Ma non so bene come fare...
    posso usare isnull con una query?? supponiamo che sto aggiungendo una licenza per la trackID=001
    usando
    select * from Licence where trackID = "001" and Exclusive = true
    al posto di "001" potrei usare me.trackID
    se questa query e' nulla allora inserisci il dato altrimenti mostra un msgbox e non inserire niente
Devi accedere o registrarti per scrivere nel forum
2 risposte