ciopin83
24-09-2008, 22:35
Eccomi di nuovo qui a chiedervi aiuto per altri due problemini in cui mi sono imbattuto (a proposito, ringrazio di nuovo Kewell e cionci per l'aiuto che mi hanno dato l'ultima volta ;) )
Premetto che sto lavorando con Access 97. Ho lavorato sulle versioni successive, ma mai a questi livelli quindi non so se ci siano limitazioni nel programma che sono state colmate in seguito.
Inizio dai riferimenti ai record; è più una finezza che vorrei introdurre nella base dati, ma può anche essere un utile risparmio di tempo.
Ho 2 tabelle con queste colonne e relativi record:
Famiglie (Fam, SubFam) > sono le famiglie di prodotti
Prodotti (P#, Fam, SubFam) > sono tutti i prodotti a cui sono associate delle famiglie
I record di Prodotti.Fam sono dati un SELECT DISTINCT su Famiglie.Fam (compare un elenco a discesa con le possibili famiglie); una volta scelta la famiglia, vorrei creare un'istruzione che fa un SELECT per SubFam, mostrando nell'elenco a discesa solo le sottofamiglie appartenenti alla famiglia scelta.
Secondo problema: vorrei inserire più istruzioni in una query; dovrei inserire una creazione di tabella tramite SELECT (non CREATE, perché seleziono record e formato da una tabella preesistente e la tabella creata è provvisoria), un UPDATE di tutti i record di un certo tipo, un INSERT nella tabella preesistente a cui facevo riferimento prima e infine DROP per eliminare la tabella provvisoria. Per ora ho creato una macro, ma mi chiede 7-8 conferme prima di effettuare tutti i passaggi; è la prima macro che creo dato che mi sono sempre rifiutato di imparare a usarle, ma penso si tratti di controlli di sicurezza eliminabili dalle impostazioni, impostazioni che vorrei mantenere tali.
Riporto le 4 query:
1) SELECT * INTO Temp FROM Tab WHERE (((Tab.[Campo1])=[Valore:]));
2) UPDATE Temp SET Temp.[Campo1] = [Nuovo valore:];
3) INSERT INTO Tab ( [Campo1], [Campo2], [Campo3] ) SELECT * FROM Temp;
4) DROP TABLE Temp;
Nella prima query, [Valore:] fa comparire una finestra in cui l'utente deve digitare il valore da ricercare nel Campo1, mentre nella seconda, [Nuovo valore:] richiede all'utente un valore che poi sostituisce tutti i record del Campo1 nella tabella temporanea
E' possibile mettere tutto in una query unica? Devo mettere delle parentesi e fare una query annidata?
Premetto che sto lavorando con Access 97. Ho lavorato sulle versioni successive, ma mai a questi livelli quindi non so se ci siano limitazioni nel programma che sono state colmate in seguito.
Inizio dai riferimenti ai record; è più una finezza che vorrei introdurre nella base dati, ma può anche essere un utile risparmio di tempo.
Ho 2 tabelle con queste colonne e relativi record:
Famiglie (Fam, SubFam) > sono le famiglie di prodotti
Prodotti (P#, Fam, SubFam) > sono tutti i prodotti a cui sono associate delle famiglie
I record di Prodotti.Fam sono dati un SELECT DISTINCT su Famiglie.Fam (compare un elenco a discesa con le possibili famiglie); una volta scelta la famiglia, vorrei creare un'istruzione che fa un SELECT per SubFam, mostrando nell'elenco a discesa solo le sottofamiglie appartenenti alla famiglia scelta.
Secondo problema: vorrei inserire più istruzioni in una query; dovrei inserire una creazione di tabella tramite SELECT (non CREATE, perché seleziono record e formato da una tabella preesistente e la tabella creata è provvisoria), un UPDATE di tutti i record di un certo tipo, un INSERT nella tabella preesistente a cui facevo riferimento prima e infine DROP per eliminare la tabella provvisoria. Per ora ho creato una macro, ma mi chiede 7-8 conferme prima di effettuare tutti i passaggi; è la prima macro che creo dato che mi sono sempre rifiutato di imparare a usarle, ma penso si tratti di controlli di sicurezza eliminabili dalle impostazioni, impostazioni che vorrei mantenere tali.
Riporto le 4 query:
1) SELECT * INTO Temp FROM Tab WHERE (((Tab.[Campo1])=[Valore:]));
2) UPDATE Temp SET Temp.[Campo1] = [Nuovo valore:];
3) INSERT INTO Tab ( [Campo1], [Campo2], [Campo3] ) SELECT * FROM Temp;
4) DROP TABLE Temp;
Nella prima query, [Valore:] fa comparire una finestra in cui l'utente deve digitare il valore da ricercare nel Campo1, mentre nella seconda, [Nuovo valore:] richiede all'utente un valore che poi sostituisce tutti i record del Campo1 nella tabella temporanea
E' possibile mettere tutto in una query unica? Devo mettere delle parentesi e fare una query annidata?