Newsgroup: it.comp.appl.access
Titolo: estrarre le DDL di create table

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

 ha scritto nel messaggio 
news:4abcac22$0$1105$4faf...@reader2.news.tin.it...

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

 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 

 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

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

 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 

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 

 
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

 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 


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

 Nessuna "marea di tastini".
Ancora pi� facile:
tasto dx sul nome di tabella...copia...tasto dx su parte 
bianca...incolla...sola struttura.
Ciao, Carlo 

 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

 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 

 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.


 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?


 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 

 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

 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