Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Creare tabella da query in VBA

1,244 views
Skip to first unread message

Roby36

unread,
Jan 21, 2010, 11:04:07 AM1/21/10
to
Salve,
vorrei creare una tabella da VBA con una query in quanto ho necessita'
di passare alla query una serie di variabili. Potreste darmi un aiuto?
Grazie

P.S. spero di non essere stato vago

almorel

unread,
Jan 21, 2010, 11:33:58 AM1/21/10
to


Ciao Roby,
speranza delusa ....
Comunque puoi passare variabili o da form (forms!tuoform!tuocampo)
nella griglia della query, o nel contesto dell' SQL.
Questa seconda soluzione richiede particolare attenzione alla sintassi
(virgolette, doppie virgolette).
(Nella griglia della query si può anche passare un parametro con una
funzione costruita ad hoc.)
Ciao
Alberto

Riccardo Emma

unread,
Jan 21, 2010, 3:33:47 PM1/21/10
to

Ma no si puo usere il CREATE TABLE e nella Tabella passare il
contenuto di una query effettuata su un'altra tabella (sempre da VBA
si intende)?

giorgio rancati

unread,
Jan 21, 2010, 3:48:30 PM1/21/10
to

"Roby36" <ri...@libero.it> ha scritto nel messaggio
news:8d44c03c-fe79-49ba...@o28g2000yqh.googlegroups.com...

direi che sei un po' vago :-)
Puoi fare un piccolo esempio pratico ?

Prova anche a guardare:
----
Creare una query di creazione tabella
http://office.microsoft.com/it-it/access/HA101085051040.aspx
----

Ciao
--
Giorgio Rancati
[Office Access MVP]


Roby36

unread,
Jan 22, 2010, 3:29:23 AM1/22/10
to
On 21 Gen, 21:48, "giorgio rancati"
<giorgio_No_Spalmer_ranc...@tiscali.it> wrote:
> "Roby36" <ri...@libero.it> ha scritto nel messaggionews:8d44c03c-fe79-49ba...@o28g2000yqh.googlegroups.com...

>
> > Salve,
> > vorrei creare una tabella da VBA con una query in quanto ho necessita'
> > di passare alla query una serie di variabili. Potreste darmi un aiuto?
> > Grazie
>
> > P.S. spero di non essere stato vago
>
> direi che sei un po' vago :-)
> Puoi fare un piccolo esempio pratico ?
>
> Prova anche a guardare:
> ----
> Creare una query di creazione tabellahttp://office.microsoft.com/it-it/access/HA101085051040.aspx

> ----
>
> Ciao
> --
> Giorgio Rancati
> [Office Access MVP]

Hai perfettamente ragione! Provo a spiegarmi meglio:
Supponiamo di avere la seguente query (ho preso spunto da un
suggerimento di un post precedente):

SELECT T1.NOME, T1.COGNOME, Sum(T1.MAX) AS VALOREMAX, T1.DATE
FROM T1 INNER JOIN Tabellax ON T1.COGNOME=Tabellax.Cognome
GROUP BY T1.NOME, T1.COGNOME,T1.DATE
HAVING T1.DATE Between [Forms]![FrmForm1]![TxtDataDa] And [Forms]!
[FrmForm1]![TxtDataA]

Utilizzando questa query ho la possibilita' di impostare la data da
form ma non la Tabella da dove prendere i cognomi (Tabellax).
Avendo piu' tabelle in cui ci sono i cognomi (Tabellax, Tabellay,
etc.) avrei la necessita' che l'utente possa scegliere quale di queste
utilizzare nella query.
Allora ho pensato di ricorrere al codice VBA, rendendo variabili i
valori che mi interessano (cioe Tabellax e T1.DATE), impostanto una
query di creazione che contenga i dati della select riportata sopra.
Non so se cio' e' possibile e soprattutto se c'e' una strada piu'
semplice.

Grazie
Roby

giorgio rancati

unread,
Jan 22, 2010, 4:51:41 AM1/22/10
to

"Roby36" <ri...@libero.it> ha scritto nel messaggio
news:0111134c-4f38-4e2e...@b10g2000yqa.googlegroups.com...

> On 21 Gen, 21:48, "giorgio rancati"
>> [Office Access MVP]
>
> Hai perfettamente ragione! Provo a spiegarmi meglio:
> Supponiamo di avere la seguente query (ho preso spunto da un
> suggerimento di un post precedente):
>
> SELECT T1.NOME, T1.COGNOME, Sum(T1.MAX) AS VALOREMAX, T1.DATE
> FROM T1 INNER JOIN Tabellax ON T1.COGNOME=Tabellax.Cognome
> GROUP BY T1.NOME, T1.COGNOME,T1.DATE
> HAVING T1.DATE Between [Forms]![FrmForm1]![TxtDataDa] And [Forms]!
> [FrmForm1]![TxtDataA]
>
> Utilizzando questa query ho la possibilita' di impostare la data da
> form ma non la Tabella da dove prendere i cognomi (Tabellax).
> Avendo piu' tabelle in cui ci sono i cognomi (Tabellax, Tabellay,
> etc.) avrei la necessita' che l'utente possa scegliere quale di queste
> utilizzare nella query.
> Allora ho pensato di ricorrere al codice VBA, rendendo variabili i
> valori che mi interessano (cioe Tabellax e T1.DATE), impostanto una
> query di creazione che contenga i dati della select riportata sopra.
> Non so se cio' e' possibile e soprattutto se c'e' una strada piu'
> semplice.

S�, � possibile, basta trasformare la query in query di creazione tabella.
Esempio:
----


SELECT T1.NOME, T1.COGNOME, Sum(T1.MAX) AS VALOREMAX, T1.DATE

INTO TabellaDestinazione


FROM T1 INNER JOIN Tabellax ON T1.COGNOME=Tabellax.Cognome
GROUP BY T1.NOME, T1.COGNOME,T1.DATE
HAVING T1.DATE Between [Forms]![FrmForm1]![TxtDataDa] And [Forms]!
[FrmForm1]![TxtDataA]

Roby36

unread,
Jan 22, 2010, 8:01:39 AM1/22/10
to
On 22 Gen, 10:51, "giorgio rancati"
<giorgio_No_Spalmer_ranc...@tiscali.it> wrote:
> "Roby36" <ri...@libero.it> ha scritto nel messaggionews:0111134c-4f38-4e2e...@b10g2000yqa.googlegroups.com...

>
>
>
> > On 21 Gen, 21:48, "giorgio rancati"
> >> [Office Access MVP]
>
> > Hai perfettamente ragione! Provo a spiegarmi meglio:
> > Supponiamo di avere la seguente query (ho preso spunto da un
> > suggerimento di un post precedente):
>
> > SELECT T1.NOME, T1.COGNOME, Sum(T1.MAX) AS VALOREMAX, T1.DATE
> > FROM T1 INNER JOIN Tabellax ON T1.COGNOME=Tabellax.Cognome
> > GROUP BY T1.NOME, T1.COGNOME,T1.DATE
> > HAVING T1.DATE Between [Forms]![FrmForm1]![TxtDataDa] And [Forms]!
> > [FrmForm1]![TxtDataA]
>
> > Utilizzando questa query ho la possibilita' di impostare la data da
> > form ma non la Tabella da dove prendere i cognomi (Tabellax).
> > Avendo piu' tabelle in cui ci sono i cognomi (Tabellax, Tabellay,
> > etc.) avrei la necessita' che l'utente possa scegliere quale di queste
> > utilizzare nella query.
> > Allora ho pensato di ricorrere al codice VBA, rendendo variabili i
> > valori che mi interessano (cioe Tabellax e T1.DATE), impostanto una
> > query di creazione che contenga i dati della select riportata sopra.
> > Non so se cio' e' possibile e soprattutto se c'e' una strada piu'
> > semplice.
>
> Sì, è possibile, basta trasformare la query in query di creazione tabella.

> Esempio:
> ----
> SELECT T1.NOME, T1.COGNOME, Sum(T1.MAX) AS VALOREMAX, T1.DATE
> INTO TabellaDestinazione
> FROM T1 INNER JOIN Tabellax ON T1.COGNOME=Tabellax.Cognome
> GROUP BY T1.NOME, T1.COGNOME,T1.DATE
> HAVING T1.DATE Between [Forms]![FrmForm1]![TxtDataDa] And [Forms]!
> [FrmForm1]![TxtDataA]
> ----
>
> Ciao
> --
> Giorgio Rancati
> [Office Access MVP]

Grazie Mille

0 new messages