Eliminare righe da piu tabelle collegate a un record
Eliminare righe da piu tabelle collegate a un record
Buon Giorno,
ho creato un formulario che collega delle tabelle insieme, vorrei con l'aiuto di un pulsante , eliminare in un colpo tutti i dati collegati a un record specifico.
Esempio: ho un Tabella Cliente che è collegata a una tabella a un n° di preventivo che che a sua volta è collegata a una tabella delle lavorazioni , vorrei che premendo un pulsante possa eliminare il Cliente e tutto quello che è collegato a quest'ultimo.
ho creato un formulario che collega delle tabelle insieme, vorrei con l'aiuto di un pulsante , eliminare in un colpo tutti i dati collegati a un record specifico.
Esempio: ho un Tabella Cliente che è collegata a una tabella a un n° di preventivo che che a sua volta è collegata a una tabella delle lavorazioni , vorrei che premendo un pulsante possa eliminare il Cliente e tutto quello che è collegato a quest'ultimo.
Openoffice 4 ubuntu 14.04
Re: Eliminare righe da piu tabelle collegate a un record
Dovresti allegare un db di esempio privo di dati sensibili per fare delle prove
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Eliminare righe da piu tabelle collegate a un record
il file odb
- Allegati
-
- Preventivi.odb
- (36.4 KiB) Scaricato 141 volte
Openoffice 4 ubuntu 14.04
Re: Eliminare righe da piu tabelle collegate a un record
In tutte le tre tabelle id_paziente è scritto in maniera diversa e precisamente id_paziente ; id_pazienti ; id_Paziente
Correggi il campo indicando in tutte le tabelle id_paziente, poi aggiungi un pulsante nel formulario Pazienti, associa questa macro all'evento pulsante mouse premuto.
Inoltre aggiungerei(dato che si tratta di eliminazione dati)Un msgbox che ci avverta dell'eliminazione del record e ci consenta di annullare l'operazione.
Correggi il campo indicando in tutte le tabelle id_paziente, poi aggiungi un pulsante nel formulario Pazienti, associa questa macro all'evento pulsante mouse premuto.
Inoltre aggiungerei(dato che si tratta di eliminazione dati)Un msgbox che ci avverta dell'eliminazione del record e ci consenta di annullare l'operazione.
Codice: Seleziona tutto
Sub Elimina(oEvent)
oForm = oEvent.Source.Model.Parent 'MainForm from Button
Paziente = oForm.Columns.getByIndex(0).string
oStatement = oForm.ActiveConnection.createStatement() 'Create an SQL statement object
Tabelle = Array("Prescrizione", "SchedaPreventivo", "Pazienti")
For i = 0 To 2
sSQL = "DELETE FROM """ & Tabelle(i)& """ WHERE ""id_paziente"" = '" & Paziente & "'"
oStatement.executeUpdate( sSQL ) 'Execute the SQL command
Next i
oForm.reload
end sub
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Eliminare righe da piu tabelle collegate a un record
Ho provato e funziona,rimane solo un problema che non mi cancella le lavorazioni associate LavorazioniPreventivo
Openoffice 4 ubuntu 14.04
Re: Eliminare righe da piu tabelle collegate a un record
Basta aggiungere la tabella in questo array
Cambia la macro in questo modo
Ricorda che la tabella Pazienti deve sempre essere l'ultima ad essere eliminata, quindi indicata alla fine dell'array
Codice: Seleziona tutto
Tabelle = Array("Prescrizione", "SchedaPreventivo", "Pazienti")
Codice: Seleziona tutto
Sub Elimina(oEvent)
oForm = oEvent.Source.Model.Parent 'MainForm from Button
Paziente = oForm.Columns.getByIndex(0).string
oStatement = oForm.ActiveConnection.createStatement() 'Create an SQL statement object
Tabelle = Array("Prescrizione", "SchedaPreventivo", "LavorazioniPreventivo", "Pazienti")
For i = 0 To Ubound(Tabelle)
sSQL = "DELETE FROM """ & Tabelle(i)& """ WHERE ""id_paziente"" = '" & Paziente & "'"
oStatement.executeUpdate( sSQL ) 'Execute the SQL command
Next i
oForm.reload
end sub
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Eliminare righe da piu tabelle collegate a un record
non funziona è possibile perchè la tabella LavorazioniPreventivi e collegata non da id_pazienti ma da id_cb?
Openoffice 4 ubuntu 14.04
Re: Eliminare righe da piu tabelle collegate a un record
certo
Codice: Seleziona tutto
Sub Elimina(oEvent)
oForm = oEvent.Source.Model.Parent 'MainForm from Button
Paziente = oForm.Columns.getByIndex(0).string
oStatement = oForm.ActiveConnection.createStatement() 'Create an SQL statement object
sSQL = "DELETE FROM ""LavorazioniPreventivo"" WHERE ""id_cb"" in (SELECT ""id_cb"" FROM ""SchedaPreventivo"" WHERE ""id_paziente"" = '" & Paziente & "')"
oStatement.executeUpdate( sSQL ) 'Execute the SQL command
Tabelle = Array("Prescrizione", "SchedaPreventivo", "Pazienti")
For i = 0 To Ubound(Tabelle)
sSQL = "DELETE FROM """ & Tabelle(i)& """ WHERE ""id_paziente"" = '" & Paziente & "'"
oStatement.executeUpdate( sSQL ) 'Execute the SQL command
Next i
oForm.reload
end sub
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Eliminare righe da piu tabelle collegate a un record
Tutto funziona correttamente molte grazie...un ultimo quesito mi hai consigliato di inserire un msgbox che ci avverta dell'eliminazione del record e ci consenta di annullare l'operazione come posso fare per aggiungerlo?
Openoffice 4 ubuntu 14.04
Re: Eliminare righe da piu tabelle collegate a un record
Codice: Seleziona tutto
Sub Elimina(oEvent)
oForm = oEvent.Source.Model.Parent 'MainForm from Button
Paziente = oForm.Columns.getByIndex(0).string
If Msgbox ("Sicuro di volere eliminare i dati relativi al paziente " & Paziente, 1+16, "Eliminazione Record") = 2 Then Exit Sub
oStatement = oForm.ActiveConnection.createStatement() 'Create an SQL statement object
sSQL = "DELETE FROM ""LavorazioniPreventivo"" WHERE ""id_cb"" in (SELECT ""id_cb"" FROM ""SchedaPreventivo"" WHERE ""id_paziente"" = '" & Paziente & "')"
oStatement.executeUpdate( sSQL ) 'Execute the SQL command
Tabelle = Array("Prescrizione", "SchedaPreventivo", "Pazienti")
For i = 0 To Ubound(Tabelle)
sSQL = "DELETE FROM """ & Tabelle(i)& """ WHERE ""id_paziente"" = '" & Paziente & "'"
oStatement.executeUpdate( sSQL ) 'Execute the SQL command
Next i
oForm.reload
end sub
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Eliminare righe da piu tabelle RISOLTO
Tutto Ok grazie per il grande aiuto che mi hai dato.
Openoffice 4 ubuntu 14.04