|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jan 2001
Città: Padova
Messaggi: 82
|
ACCESS: query su un campo tabella
Ciao a tutti,
non sono bravo in Access ma conosco molto bene il linguaggio SQL. Mi risulta molto difficile una cosa che in SAP e forse anche in oracle mi sarebbe facilissima: ho la necessità che (all'introduzione dei record in una tabella) uno o più campi mi si riempiano in automatico attraverso una select su un'altra tabella. Qualcuno mi sa dire com'è possibile costruire dei campi su cui si effettui tale query?
__________________
. |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: May 2003
Città: Saronno
Messaggi: 161
|
Tieni presente che in access puoi aggiornare le tabelle attraverso le query, es.
tabella1 (campo1 ..., campo2 ...) tabella2 /campo3 ... ,campo4 ...) query1 (select campo1,campo2,campo3,campo4 from tabella1,tabella2 where...) è lecito: update query1 set campo1=... where ... |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Quote:
Codice:
INSERT INTO [Tabella] ([Campo1], [Campo2]) VALUES([Valore1], [Valore2]) |
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Jan 2001
Città: Padova
Messaggi: 82
|
Per farmi capire meglio, mi occorre questo:
1)devo inserire un nuovo record nella tabella 2)inizio ad aggiornare manualmente i primi tre campi 3)il quarto e il quinto campo dovrebbero inserirsi automaticamente giacchè i primi 3 sono sufficienti ad individuarne i valori attraverso una semplice select... where su un'altra tabella Non è che l'istruzione va inserita nelle proprietà del campo in visualizzazione struttura? Il mio principale problema è costituito dal non sapere dove inserire l'istruzione per far in modo che venga usata quando inserisco nuovi record!
__________________
. |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: May 2003
Città: Saronno
Messaggi: 161
|
Non puoi associare triggers o procedure ad un campo di una tabella. Puoi però associare codice visual basic o macro ad un campo di una form associato al tuo campo di tabella.
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jun 2002
Città: NAPOLI!
Messaggi: 1310
|
credo che una macro vba faccia al caso tuo...
|
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Jan 2001
Città: Padova
Messaggi: 82
|
Vabbè,
ste cose esulano dalle mie capacità immediate: provvederò con una query che selezioni campi da due tabelle!
__________________
. |
|
|
|
|
|
#8 |
|
Member
Iscritto dal: May 2003
Città: Saronno
Messaggi: 161
|
Esempio molto semplice.
Crei una tabella con due campi numerici e vuoi che il secondo campo si sempre uguale al doppio del primo. Non puoi imporre delle regole interne al database perchè ciò avvenga. Decidi di usare un espediente. Vincoli l'inserimento dei dati nella tua tabella ad una form. Vai in "maschere", "nuovo", "creazione guidata maschera", selezioni la tua tabella, e la form è bella e creata. Vai in visualizzazione struttura, clicchi col pulsante destro sul primo campo, selezioni "proprietà", linguetta "evento", clicchi sul pulsante "..." della proprietà "dopo aggiornamento", scegli "generatore di codice". A questo punto ti appare una maschera visual basic parzialmente precompilata così: Private Sub campo1_BeforeUpdate(Cancel As Integer) End Sub Tu la completi così: Private Sub campo1_BeforeUpdate(Cancel As Integer) campo2 = campo1 * 2 End Sub chiudi il visual basic. ritorni nella maschera in visualizzazione struttura. Clicchi con il pulsante destro sul secondo campo, selezioni "proprietà" e imposti "bloccato" a "sì", in modo da impedire l'inserimento diretto in maschera di un valore diverso da quello che hai calcolato tu. Salvi la maschera e hai finito. |
|
|
|
|
|
#9 |
|
Member
Iscritto dal: May 2003
Città: Saronno
Messaggi: 161
|
n.b. ovviamente per risolvere il tuo specifico problema nel codice visual basic dovresti inserire le istruzioni select che ti servono e non una semplice moltiplicazione.
|
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Jan 2001
Città: Padova
Messaggi: 82
|
E'molto utile la spiegazione che mi hai dato e mi sarà utile per le prossime immediate funzioni che inserirò per il db. Fortunatamente, ripensando a ciò che mi occorreva, sono riuscito a risolvere il mio problema per altra strada e completamente attraverso query!
__________________
. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:39.


















