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

estrarre le DDL di create table

39 views
Skip to first unread message

RedWolf

unread,
Sep 25, 2009, 7:40:12 AM9/25/09
to
Ciao
ho un problema:
devo poter, avendo giᅵ una tabella ACCESS, ricreare le schede DDL di
create table, da modificare e far girare come se fossero una query, al
fine di creare altre tabelle tutte molto simili tra di loro e molto
simili alla tabella di partenza.
Avendo molte tabelle da fare ed avendo la struttura delle tabelle stesse
in fogli excel (in cui sono scritti i nomi delle colonne, la tipologia
dei dati e la loro lunghezza, decimali compresi), con delle funzioni o
delle macro sarebbe facile poter modificare la ddl estratta per poter
creare le altre tabelle senza ricorrere alla creazione guidata (lunga e
facile agli errori)!
Come posso fare?

Grazie


P.S.
Office XP

Red Wolf

MA

unread,
Sep 25, 2009, 11:17:04 AM9/25/09
to

"RedWolf" <Red...@alice.it> ha scritto nel messaggio
news:4abcac22$0$1105$4faf...@reader2.news.tin.it...

Ciao red
Usa DAO.TableDef o ALTER TABLE Add Column


RedWolf

unread,
Sep 25, 2009, 1:43:37 PM9/25/09
to
CUT

>
> Ciao red
> Usa DAO.TableDef o ALTER TABLE Add Column
>


devo creare molte tabelle simili alla prima, non devo modificare le
colonne della prima; escluderei che posso usare ALTER.

Sono ignorante di ACCESS, cosa ᅵ dao.tabledef?
grazie

Carlo Costarella

unread,
Sep 26, 2009, 2:00:43 AM9/26/09
to

"RedWolf" <Red...@alice.it> ha scritto nel messaggio
news:4abd0150$0$1107$4faf...@reader2.news.tin.it...

> CUT
>
>>
>> Ciao red
>> Usa DAO.TableDef o ALTER TABLE Add Column
>>
>
>
> devo creare molte tabelle simili alla prima, non devo modificare le
> colonne della prima; escluderei che posso usare ALTER.
>
> Sono ignorante di ACCESS, cosa � dao.tabledef?
> grazie

Il consiglio che ti ha dato MA � appropriato nel senso che ti ha suggerito
una delle possibili strade per creare una tabella exnovo o per modificare
una tabella esistente o quella appena creata.
In particolare ti consiglio di leggere nella guida il Metodo CreateTableDef.
Altra strada pu� essere quella di allegare il foglio di excel come se fosse
una tabella (la sola struttura) e farci quello che vuoi. Tale procedura pu�
essere completamente automatizzata a patto di saper scrivere un po' di
codice.
Immagino che nel tuo post ti riferisci all'importazione guidata di una
tabella (wizard), se � cos� anche questa procedura pu� essere automatizzata
da codice creando una "specifica di importazione".
Per i fogli di calcolo leggiti il metodo TransferSpreadsheet.
L'idea di costruirti il wizard non � male...anche questo � possibile con
Access.

Ciao, Carlo


RedWolf

unread,
Sep 27, 2009, 10:14:31 AM9/27/09
to
RedWolf ha scritto:

> Ciao
> ho un problema:
> devo poter, avendo giᅵ una tabella ACCESS, ricreare le schede DDL di
> create table, da modificare e far girare come se fossero una query, al
> fine di creare altre tabelle tutte molto simili tra di loro e molto
> simili alla tabella di partenza.

non riesco a spiegarmi:
Facciamola semplice,
io ho una tabella (pippo) con 50 campi.
Esiste un comando/proprietᅵ/attrezzo/tool che mi permetta di vedere il
comando

Create table pippo ecc. ecc. ecc.

cioᅵ estrarre l'ipotetica create table a partire da una tabella esistente?

Tutto qui

grazie
ciao
Red Wolf

Alessandro Cara

unread,
Sep 27, 2009, 10:28:46 AM9/27/09
to
RedWolf ha scritto:
No. Dovresti scrivere qualche riga di vba.
Come in qualsiasi altro db normalmene la ddl viene creata da qualche
macro (routine) a corredo.
--
ac

Carlo Costarella

unread,
Sep 27, 2009, 11:07:42 AM9/27/09
to

"RedWolf" <Red...@alice.it> ha scritto nel messaggio
news:4abf7346$0$1101$4faf...@reader4.news.tin.it...

> RedWolf ha scritto:
>> Ciao
>> ho un problema:
>> devo poter, avendo gi� una tabella ACCESS, ricreare le schede DDL di
>> create table, da modificare e far girare come se fossero una query, al
>> fine di creare altre tabelle tutte molto simili tra di loro e molto
>> simili alla tabella di partenza.
>
> non riesco a spiegarmi:
> Facciamola semplice,
> io ho una tabella (pippo) con 50 campi.
> Esiste un comando/propriet�/attrezzo/tool che mi permetta di vedere il
> comando
>
> Create table pippo ecc. ecc. ecc.
>
> cio� estrarre l'ipotetica create table a partire da una tabella esistente?

>
> Tutto qui
>
> grazie
> ciao
> Red Wolf

Tutti i wizard di Access sono contenuti i file libreria generalmente non
visibili all'utente.
Microsoft per la versione di Access 97 fece delle versioni visibili e
liberamente scaricabili di queste librerie (file mde):
http://support.microsoft.com/kb/151218
per i wizard tools e
http://support.microsoft.com/kb/151196/it
per il wizard main (quello che ti serve)
il secondo puoi scaricarlo da qui:
http://www.filewatcher.com/m/WZMAIN80.EXE.3530655.0.0.html
perch� dal sito Microsoft sembra non funzionare.
I file exe si possono scompattare e contengono oltre le librerie con i
moduli visibili anche un file di testo con le spiegazioni.
Spiegazioni che puoi meglio trovare in quest'articolo Microsoft:
http://support.microsoft.com/kb/148506

In Access 10 e 11 i wizard tools e i Maintools si chiamano ACWZMAIN.MDE e
ACWZTOOL.MDE;
In A2007 (12) credo siano una dll: ACCWIZ.DLL
Non so se esistono versioni "visibili" di queste librerie.

Come diceva Alessandro e anche io potresti scrivere da solo quello che ti
serve...Lo fai una volta e non ci pensi pi�.

Ciao, Carlo


Carlo Costarella

unread,
Sep 27, 2009, 12:15:15 PM9/27/09
to
Ho trovato in rete qualcosa che potrebbe servirti:
http://www.skrol29.com/sourcecode.php
devi scaricare uno dei V-tools corrispondente alla tua versione di Access.
La maschera che dovrebbe fare al caso tuo dovrebbe essere "Db_Spec" anche
raggiungibile da "DB_RECEPTION"
e facendo click su "Import/Export Specifications".
Una spiegazione dei V-Tools la trovi qui:
http://www.skrol29.com/vtools.php#download
Vale comunque la pena di seguire questo sviluppatore per i suoi interessanti
lavori come quello sulla libreria WizHook (non documentata) utilizzata da
Access (a partire dalla versione 2000) per i wizard:
http://www.pacificdb.com.au/Support/CodeFiles/Access_WizHook.pdf
Ad ogni modo potrai prendere pi� di uno spunto per realizzare le tue proprie
routine.

Ciao, Carlo


RedWolf

unread,
Sep 27, 2009, 6:51:06 PM9/27/09
to
Carlo Costarella ha scritto:

> Ho trovato in rete qualcosa che potrebbe servirti:
> http://www.skrol29.com/sourcecode.php

Ciao Carlo,
anzitutto grazie per l'aiuto!!
Cerco di spiegarti il perchᅵ non capisco.
io vengo dal mondo Host (cobol cics db2 dl1 pl1 ecc ecc)
Nel mondo host, quando devi creare una tabella db2, non hai tastini,
macro.. hai solo la nuda tastiera e le manine che scrivono ogni volta le
istruzioni per creare/cancellare/manutenere/ecc le varie tabelle (con
grandi smadonnamenti!!)
esistono dei software che, per aiutare, "preparano" le cosa da fare.. o
per meglio dire le preimpostano.
Usa "cosa" molto usta ᅵ un tool che, data una tabella, ne estrae le DDL
di creazione; o meglio, ricrea le DDL come per ricreare la tabella cosᅵ
come ᅵ in quel momento. Se io creo na tabella con 3 colonne, poi nel
tempo faccio alter e ne aggiungo 7, il tool mi restituisce una "create
table" con 10 colonne!
Perchᅵ questo? a parte che per le consultazioni, ᅵ possibile manipolare
la create table, cambiare il nome tabella, nome colonne, indici e
rilanciarla per creare un'altra tabella (o per modificare la stessa dopo
una drop table).
Ti assicuro che ᅵ molto utile e veloce!! a volte basta cambire qualche
nome di colonna e via...
sicuramente ᅵ molto + veloce che, in ACCESS, spingere una marea di
tastini per creare tutte le colonne della tabella!!
Io in "Import/Export Specifications" non sono riuscito a trovare la
possibilitᅵ di esportare la struttura della tabella in una ddl riusabile...
questo lavoro lo finisco a mano... ma resto sorpreso e mi piacerebbe
capire come, l'utente medio di ACCESS, crei le tabelle: usa la creazione
guidata? non ci posso credere...

Chiedo scusa agli host-ari come me per la semplificazione fatta.
Grazie ancora
Ciao

Red Wolf

Carlo Costarella

unread,
Sep 28, 2009, 1:19:54 AM9/28/09
to

"RedWolf" <Red...@alice.it> ha scritto nel messaggio
news:4abfec5c$0$1097$4faf...@reader4.news.tin.it...

> Carlo Costarella ha scritto:
>> Ho trovato in rete qualcosa che potrebbe servirti:
>> http://www.skrol29.com/sourcecode.php
>
> Ciao Carlo,
> anzitutto grazie per l'aiuto!!
> Cerco di spiegarti il perch� non capisco.

> io vengo dal mondo Host (cobol cics db2 dl1 pl1 ecc ecc)
> Nel mondo host, quando devi creare una tabella db2, non hai tastini,
> macro.. hai solo la nuda tastiera e le manine che scrivono ogni volta le
> istruzioni per creare/cancellare/manutenere/ecc le varie tabelle (con
> grandi smadonnamenti!!)
> esistono dei software che, per aiutare, "preparano" le cosa da fare.. o
> per meglio dire le preimpostano.
> Usa "cosa" molto usta � un tool che, data una tabella, ne estrae le DDL di
> creazione; o meglio, ricrea le DDL come per ricreare la tabella cos� come
> � in quel momento. Se io creo na tabella con 3 colonne, poi nel tempo
> faccio alter e ne aggiungo 7, il tool mi restituisce una "create table"
> con 10 colonne!
> Perch� questo? a parte che per le consultazioni, � possibile manipolare la
> create table, cambiare il nome tabella, nome colonne, indici e rilanciarla
> per creare un'altra tabella (o per modificare la stessa dopo una drop
> table).
> Ti assicuro che � molto utile e veloce!! a volte basta cambire qualche
> nome di colonna e via...
> sicuramente � molto + veloce che, in ACCESS, spingere una marea di tastini
> per creare tutte le colonne della tabella!!
> Io in "Import/Export Specifications" non sono riuscito a trovare la
> possibilit� di esportare la struttura della tabella in una ddl
> riusabile...
> questo lavoro lo finisco a mano... ma resto sorpreso e mi piacerebbe
> capire come, l'utente medio di ACCESS, crei le tabelle: usa la creazione
> guidata? non ci posso credere...
>
> Chiedo scusa agli host-ari come me per la semplificazione fatta.
> Grazie ancora
> Ciao
>
> Red Wolf

Forse non riesco a capire.
Hai letto bene i post di risposta?
In Access � possibile fare esattamente quello che chiedi.
Per esempio con il "Metodo TransferDatabase" bastano poche righe di
codice...:
Tipi di database da cui si possono importare gli oggetti (per esempio
struttura di tabelle):
Microsoft Access (impostazione predefinita)
Jet 2.x
Jet 3.x
dBase III
dBase IV
dBase 5.0
Paradox 3.x
Paradox 4.x
Paradox 5.x
Paradox 7.x
Database ODBC
In particolare con quest'ultimo tipo puoi importare la struttura da
qualsiasi fonte dati ODBC
Il codice per esempio si limita a questo:
DoCmd.TransferDatabase acImport, "ODBC Database", _
"ODBC;DSN=DataSource1;UID=User2;PWD=www;LANGUAGE=us_english;" _
& "DATABASE=pubs", acTable, "Authors", "dboAuthors", True
O a questo:
DoCmd.TransferDatabase acImport, "Microsoft Access", _
"C:\My Documents\NWSales.mdb", acReport, "NW Sales for April", _
"Corporate Sales for April", True


Un solo click per importare la struttura praticamente di qualsiasi tipo di
tabella.
Nessuna "marea di tastini".

Ciao, Carlo


Carlo Costarella

unread,
Sep 28, 2009, 1:27:55 AM9/28/09
to

"Carlo Costarella" <carloco...@libero.it> ha scritto
cut

> Un solo click per importare la struttura praticamente di qualsiasi tipo di
> tabella.
> Nessuna "marea di tastini".
>

Dimenticavo...Vale lo stesso per l'esportazione, la copia o il collegamento.

Ciao, Carlo


Carlo Costarella

unread,
Sep 28, 2009, 1:45:47 AM9/28/09
to

"Carlo Costarella" <carloco...@libero.it> ha scritto
cut
>
> Un solo click per importare la struttura praticamente di qualsiasi tipo di
> tabella.
> Nessuna "marea di tastini".

Ancora pi� facile:
tasto dx sul nome di tabella...copia...tasto dx su parte
bianca...incolla...sola struttura.

Ciao, Carlo


Marco Pizzamiglio

unread,
Sep 28, 2009, 4:00:40 AM9/28/09
to
RedWolf ha scritto:

> RedWolf ha scritto:
> > Ciao
> > ho un problema:

> > devo poter, avendo gi� una tabella ACCESS, ricreare le schede DDL di

> > create table, da modificare e far girare come se fossero una query, al
> > fine di creare altre tabelle tutte molto simili tra di loro e molto
> > simili alla tabella di partenza.

> non riesco a spiegarmi:
> Facciamola semplice,
> io ho una tabella (pippo) con 50 campi.

> Esiste un comando/propriet�/attrezzo/tool che mi permetta di vedere il
> comando

> Create table pippo ecc. ecc. ecc.

> cio� estrarre l'ipotetica create table a partire da una tabella esistente?


> Tutto qui
> grazie
> ciao
> Red Wolf


Uno l'ho fatto io ed � pubblicato sul www.sitocomune.com sezione Tables.
Ciao.
-Marco-

--

questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ab...@newsland.it


Roberto da Parma

unread,
Sep 28, 2009, 11:03:11 AM9/28/09
to

"Marco Pizzamiglio" <marco.pi...@gmail.com> ha scritto nel messaggio
news:h9pqf8$r74$1...@news.newsland.it...

Forse mi sbaglio ma...secondo me gli � sufficiente vedere l'sql ...

Visualizza - sql

Li trovi la struttura in sql della tua query...visto che sei abituato a
scrivere non avrai problemi a modificare da li.

Ciao

--
Roberto da Parma

Marco Pizzamiglio

unread,
Sep 28, 2009, 11:35:34 AM9/28/09
to
Roberto da Parma ha scritto:

> Forse mi sbaglio ma...secondo me gli � sufficiente vedere l'sql ...


> Visualizza - sql
> Li trovi la struttura in sql della tua query...visto che sei abituato a
> scrivere non avrai problemi a modificare da li.
> Ciao


No, lui non ha la query. Ha solo la tabella e vuole sapere quale comando
CREATE TABLE deve dare per creare da zero quella particolare tabella,
praticamente deve risalire dalla tabella al comando SQL che l'ha creata.

Roberto da Parma

unread,
Sep 28, 2009, 12:17:11 PM9/28/09
to

"Marco Pizzamiglio" <marco.pi...@gmail.com> ha scritto nel messaggio

news:h9ql46$vka$1...@news.newsland.it...

Ma...se da VBA legge I campi della tabella e poi davanti ci mette un bel
CREATE TABLE ?
Non ottiene quello che vuole?

Carlo Costarella

unread,
Sep 28, 2009, 12:21:23 PM9/28/09
to

"Roberto da Parma" <arisi....@tin.it> ha scritto
cut

> Ma...se da VBA legge I campi della tabella e poi davanti ci mette un bel
> CREATE TABLE ?
> Non ottiene quello che vuole?
>
> Ciao
>
> --
> Roberto da Parma

Certo che s�, � una settimana che stiamo cercando di spiegare in quanti modi
� possibile fare quello che chiede!
Mi sa che si � fissato sul vecchio sistema che usava.

Ciao, Carlo


RedWolf

unread,
Sep 28, 2009, 6:46:18 PM9/28/09
to
CUT

> Certo che sᅵ, ᅵ una settimana che stiamo cercando di spiegare in quanti modi
> ᅵ possibile fare quello che chiede!
> Mi sa che si ᅵ fissato sul vecchio sistema che usava.
>
> Ciao, Carlo

no non sono fissato con il vecchio metodo.
ᅵ che:
1) mi stupisce che non ci sia un tool "ufficiale" che esegua stᅵ caxxo
di cosa
2)che sta caxxo di cosa debba essere fatta scrivendo del codice!!! Cioᅵ
sovrapponendo potenziale errore a potenziale errore (per quanto piccolo
sia il codice, lo SAI che comunque potenzialmente dentro c'ᅵ un errore!)
3) che si debba smanettare chiedendo come si fᅵ per una cosa che
dovrebbe essere "ovvia"

Tell'ho detto tra noi Hostari e voi Piccettari c'ᅵ una mentalitᅵ di
differenza.... ;-)))

Comunque grazie a tutti per la pazienza!!!!

ciao

Red Wolf

Alessandro Cara

unread,
Sep 29, 2009, 3:16:05 AM9/29/09
to
RedWolf ha scritto:

> CUT
>
>> Certo che sᅵ, ᅵ una settimana che stiamo cercando di spiegare in
>> quanti modi ᅵ possibile fare quello che chiede!
>> Mi sa che si ᅵ fissato sul vecchio sistema che usava.
>>
>> Ciao, Carlo
>
> no non sono fissato con il vecchio metodo.
> ᅵ che:
> 1) mi stupisce che non ci sia un tool "ufficiale" che esegua stᅵ caxxo
> di cosa
Uhmmmmm......probabilmente perche' non serve.
Gia' qualcuno (C.Costarella e M.Pizzamiglio, mi sembra) ti hanno
accennato alla funzione di copia struttura. Mediamente la "create/alter"
sotto access non si fa tramite SQL ma usando la creazione guidata o,
come io preferisco, la definizione tramite struttura

> 2)che sta caxxo di cosa debba essere fatta scrivendo del codice!!! Cioᅵ
> sovrapponendo potenziale errore a potenziale errore (per quanto piccolo
> sia il codice, lo SAI che comunque potenzialmente dentro c'ᅵ un errore!)

Ti concedo che scrivendo il codice hai "potenzialmente" un errore ma
come mi sembra di averti accennato anche i "tool ufficiali" sono codice
a corredo.

> 3) che si debba smanettare chiedendo come si fᅵ per una cosa che
> dovrebbe essere "ovvia"

L'ovvieta' e' relativa. Per coloro che usano access e' "ovvio" fare le
tabelle secondo le modalita' access. Fatto sta che, quando si presenta
qualche problema ad un "accessarolo", i piu' esperti del NG consigliano
di utilizzare la create ed i "questuanti" vanno regolarmente nel pallone.


>
> Tell'ho detto tra noi Hostari e voi Piccettari c'ᅵ una mentalitᅵ di
> differenza.... ;-)))

Tutte e due parziali. Un "informatico" non ha di questi problemi.

Il tuo problema non esiste a meno che tu non debba creare qualche
centinaio di tabelle tramite un file "batch", ma in questo caso, sempre
che le cose non siano cambiate in questi ultimi dieci anni, anche su
"mainframe" hai gli stessi problemi.
--
ac

0 new messages