Query di aggiornamento in Access

alexbadboys

Nuovo Utente
14 Feb 2005
10
0
0
Ciao, devo realizzare 2 query in Access e data la mia scarsa esperienza al riguardo sono nella più completa disperazione perché non so da dove cominciare.... :eek:
Allora, ho un database con 3 tabelle (riporto sotto i nomi delle tabelle in grassetto ed i rispettivi campi):

T_Aziende
IDAzienda
RagioneSociale
NumeroSedi

T_Sedi
IDSede
IDAzienda
NumeroSede
Indirizzo
Provincia

T_Persone
IDSede
NumeroPersona
Nome
Cognome
Età
Sesso
Indirizzo
Telefono
Stato
Studio
Professione

Questo database è molto intuitivo e semplice; c'è l'integrità referenziale e relazione tra i campi IDAzienda nelle tabelle T_Aziende e T_Sedi e tra i campi IDSede nelle tabelle T_Sedi e T_Persone.
Devo realizzare queste 2 query (e non so farlo!!!) :dipser:

1)Scrivere una query che aggiorni sulla tabella delle aziende il campo NumeroSedi col numero delle sedi dell’azienda stessa

2)Scrivere una query che elimini dalla tabella sedi quelle che hanno persone di sesso maschile

Qualcuno può dirmi come devo fare???? So che devo fare una query d'aggiornamento ed una d'eliminazione, ma non so proprio da dove iniziare.... :(
Grazie per l'aiuto, ciao :byebye: :byebye: :byebye:
 
Tratto NumeroSedi come tipo Testo; se è numerico non usar gli apici

1) UPDATE T_Aziende SET NumeroSedi = '10' WHERE IDAzienda = 1

Se devi dinamizzarla devi memorizzare in una variabile il valore di una query che conta il numero delle sedi dalla tabella T_Sedi.

Una domanda, il programma è scritto stesso con interfaccia Access?

2) DELETE * FROM T_Persone WHERE Sesso = 'M'

Questa mi pare abbastanza semplice...

:byebye:
 
Grazie per l'aiuto ma non è esattamente ciò che mi serve...
Non devo fare queste query da codice (cioè da un programma interfacciato ad access); devo costruirle direttamente in Access.
Allora, tu mi hai scritto:

1) UPDATE T_Aziende SET NumeroSedi = '10' WHERE IDAzienda = 1
Se devi dinamizzarla devi memorizzare in una variabile il valore di una query che conta il numero delle sedi dalla tabella T_Sedi.

Io dovrei fare una query con le tabelle T_Aziende e T_Sedi che mi vada a prendere il numero sede più elevato, cioè il numero totale di sedi per quell'azienda (ovviamente per ogni azienda) e lo vada a mettere nel campo numerico NumeroSedi nella T_Aziende

2) DELETE * FROM T_Persone WHERE Sesso = 'M'

Questa è semplice, ma io devo fare un'altra cosa: devo fare una query che mi veda quali sedi hanno persone di sesso maschile e mi vada a eliminare il record relativo a quella sede nella T_Sedi (e non in T_Persone!)

Mi puoi dare un'aiuto? Sono alla disperazione :( :dipser:
Ciao e grazie ancora :byebye:
 
Ancora problemi sulla query...

Beh, ti ringrazio ma forse non ho spiegato bene il problema...

1) UPDATE T_Aziende SET NumeroSedi = '10' WHERE IDAzienda = 1
Come uso la funzione max? So che c'è le funzioni di aggregazione o raggruppamento ma non ci sto capendo nulla, mi potresti fare un esempio di come fare questa query per favore?

Io dovrei fare una query con le tabelle T_Aziende e T_Sedi che mi vada a prendere il numero sede più elevato, cioè il numero totale di sedi per quell'azienda (ovviamente per ogni azienda) e lo vada a mettere nel campo numerico NumeroSedi nella T_Aziende

2) DELETE * FROM T_Sedi WHERE Sesso = 'M'
Se ho capito nella tua ultima risposta mi suggerisci di far questo... ma se riguardi la struttura delle mie tabelle vedi che T_Sedi non ha il campo Sesso!!!!
Devo fare quindi una query di eliminazione che comprenda sia T_Sedi che T_Persone, e che mi vada a eliminare i record di T_Sedi che hanno correlato in T_Persone delle persone di sesso maschile. In pratica devo eliminare da T_Sedi quelle sedi che hanno clienti maschi.

Grazie ancora per l'aiuto che mi stai dando... e per la pazienza!!!
Ciao :byebye:
 
Le funzioni di aggregazione funzionano cosi

https://www.mrw.it/database/sql/guida_sql/lezione196.htm

Fai qualche prova, se hai problemi ne discutiamo!

Non avevo fatto caso che manca il campo sesso nella tabella T_Sedi :)

Ti descrivo la procedura, prova a scrivere le query:

1. seleziona dalla tabella delle persone tutti gli id delle sedi dove sesso = M
2. usa i risultati e lancia N delete nella tabella delle sedi dove combaciano gli id delle sedi reperiti nella query descritta al punto 1

Buon divertimento ;)
 
ancora problemi......

Ho dato un'occhiata ma.... sono nel buio totale :dipser:
Allora...
La prima query non so proprio come farla, non ho idea da che parte rifarmi.... come la imposto questa query??????
Quanto alla seconda, non posso seguire il tuo consiglio perché devo fare un'unica query che mi elimini le sedi che hanno persone di sesso maschile, non posso fare N query di delete!!!
Anche la query precedente dev'essere una sola.
Come faccio??????? :dipser: :confused: :( :incazz:
Grazie per l'aiuto e ancor di più per la pazienza...
Ciao
 
Dunque...

Allora, è un database Access banalissimo; contiene solo le 3 tabelle che ho riportato.
Non ci sono maschere né nient'altro a parte le 3 tabelle e le query che devono essere costruite su di esse.
Non c'è nemmeno codice, o interfaccia con visual basic o altro.
Devo semplicemente imparare a fare queste query e devo farle nella maniera che ho specificato.
Le 2 query che mi stanno facendo dannare vanno quindi fatte direttamente da Access, cioè nella finestra del database, e col criterio che ho specificato.
La prima è basata su T_Aziende e T_Sedi e deve permettere di aggiornare in T_Aziende per ciascuna azienda il numero di sedi prendendo il valore massimo dal campo numerosede in T_Sedi.
La seconda è basata su T_Sedi e T_Persone e deve eliminare da T_Sedi tutte le sedi che hanno persone maschi (cioè che hanno record correlati in T_Persone col campo sesso=M).
Puoi aiutarmi? Come vedi sono a zero e avrei bisogno dell'esempio concreto (meglio se la query di cui ho bisogno già fatta :) ) più che delle indicazioni generiche perché non ci capisco proprio nulla.... :( :mad: :incazz: :ister:
Ti ringrazio infinitamente......... :)
Ciao :byebye:
 
Anche io problema simile

Premetto che di access nn ci capisco un tubo, così come in Sql ed idem in Vbasic...

Detto ciò sono riuscito a crearmi un database che mi semplifica il lavoro, ma purtroppo è diventato troppo grande.

ecco la mia domanda:

che comando devo usare (nell'evento click di un bottone) per cancellare tutti i dati di una tabella?.

ecco qui cosa ho fatto:
1)creato il bottone dentro una maschera
2)selezionato routine evento nelle proprietà del bottone
3)inserito il seguente comando DELETE * FROM TRENIRIENTRI.......
.....non funziona purtroppo!
4) ho provato ad inserire TreniRientri.Delete*.. ovviamente non funziona !

Vi prego aiutatemi voi non devo mettere nè filtri ne selezionare alcuni record, devo semplicemente CANCELLARE TUTTI I RECORD DELLA TABELLA TreniRientri DAL BOTTONE DI UNA MASCHERA

mi va benissimo qualsiasi escamotage compreso aprire una query di cancellazione o altro, basta che posso farlo da una maschera separata
 

Discussioni simili