Newsgroup: it.comp.lang.visual-basic
Titolo: creare tabelle da codice

Vorrei sapere se utilizzando VB6 e Access è possibile creare delle tabelle
da codice in modo da avere
tante tabelle quanti sono i record contenuti in una ipotetica
tabella "Dipendenti" e chiamare tali tabelle  come i record contenuti ad
esempio
nel campo cognome di tale tabella.
Ringrazio fin d'ora chiunque abbia voglia di darmi qualche spiegazione. 

Certo che si -.-
Basta usare la Create Table in SQL
Bye,
-- 
Carmine ( 
pikachu...@gmail.com
 (Togli la scritta NOSPAM) )
Webmaster di The Total Site: 
http://www.thetotalsite.it
My Blog: 
http://blog.thetotalsite.it
Gamertag XBOX Live: Carmine XX
http://live.xbox.com/it-IT/profile/profile.aspx?pp=0&GamerTag=Carmine+XX
 

Si può fare. Tu utilizzi il VB di Access o proprio VB6?
Cmq, se posso intromettermi, mi pare strano che sia necessario creare
una tabella per ogni dipendente. Sei sicuro che sia la soluzione
ottimale?



Uso il VB6.
Non sono sicuro visto che sono un dilettante autodidatta ma credo che mi 
serva proprio
creare una tabella per ciascun dipendente per potervi caricare il turno di 
tutto l'anno che si articola
su 104 giornate. Poi eventualmente potrò giorno per giorno modificare la 
presenza dei vari agenti.
Comunque sempre pronto ad accettare consigli.
Grazie 


Vade retro satana....!
Non devi creare una tabella per ogni dipendente..., ma imparare cosa
sia la normalizzazione di un Database.
Purtroppo se sbagli approccio fai un macello ingestibile e la
normalizzazione è
Fondamentale per capire l'errore che stai commettendo a livello
concettuale..!
Devi fare UNA tabella unica per tutti i dipendenti, poi una tabella
relazionata nella quale
mettere le presenze gionaliere(magari le timbrature) che rispetta la
relazione 1-MOlti
Il problema è che mi pare tu abbia usato un'approccio simile a EXCEL,
cosa assolutamente errata con i Database.
Saluti
@Alex

Vade retro satana....!
Non devi creare una tabella per ogni dipendente..., ma imparare cosa
sia la normalizzazione di un Database.
Purtroppo se sbagli approccio fai un macello ingestibile e la
normalizzazione č
Fondamentale per capire l'errore che stai commettendo a livello
concettuale..!
Devi fare UNA tabella unica per tutti i dipendenti, poi una tabella
relazionata nella quale
mettere le presenze gionaliere(magari le timbrature) che rispetta la
relazione 1-MOlti
Il problema č che mi pare tu abbia usato un'approccio simile a EXCEL,
cosa assolutamente errata con i Database.
Saluti
@Alex
Innanzitutto vi ringrazio per le risposte.
Ho letto qualcosa sulla normalizzazione dei database perň penso che quello 
che serve a me sia
un pochino diverso e provo a spiegarmi.
Ho una situazione da gestire con circa 20 agenti che fanno un unico turno 
con tre mansioni diverse (Quindi posto1,
posto2, posto3)
articolato su 104 giornate  strutturate piů o meno cosě
1 Pomeriggio
2 mattino
3 notte
4 Riposo
5 Riposo comp
6 mattino
7 notte
8 Riposo com
9 Riposo comp mens.
ecc
Adesso se non creo una tabella con l'Agente, la data, la giornata del turno, 
e il posto di servizio, come
faccio a sapere fra 10 giorni cosa fa l'agente "pinco" per poterlo 
sostituire magari con un altro agente?
Grazie Nino

 Grazie Nino
La normalizzazione è a prescindere dalle esigenze personali.
Nel tuo caso serve usare una previsione ma non una tabella per ogni
agente, quella
è contro qualsiasi logica, la previsione si può gestire sapendo
l'algoritmo di turnazione, e solo in quel modo puoi realizzare la
gestione turni, non puoi riempire una tabella con i turni per X mesi,
con la stessa logica con la quale riempi la tabella ti calcoli cosa fà
Tizio il 25 aprile....
In ogni caso non essendo inserito nel problema posso commettere
un'errore di valutazione.
@Alex

ok.
Puoi ad esempio usare "DAO"
In VB6 vai sul menù Progetto -> Riferimenti...
Imposta il riferimento a Microsoft DAO 3.6 Object Library
E poi fai qualche prova usando gli oggetti DAO (Vedi guida di VB);
magari su una copia del Database!!
Uno spunto per partire:
Dim DB As Database, tbd As TableDef, fld As Field, idx As Index
Set DB = OpenDatabase("C:\Documenti\Database1.mdb") 'Apre il database
C:\Documenti\Database1.mdb
Set tbd = DB.CreateTableDef("Tabella1") 'Crea una tabella
Set fld = tbd.CreateField("Campo1", dbText) 'Crea un campo per la
tabella; in questo caso il tipo di dati è "Testo" di Acces
fld.Required = True 'Esempio di impostazione proprietà del campo. In
questo caso si tratta della proprietà "Richiesto" di Acces
tbd.Fields.Append fld 'Aggiunge il campo alla tabella
'---- Il seguente codice è opzionale:
Set idx = tbd.CreateIndex("Indice1") 'Crea un indice per il Campo1
idx.Unique = True: idx.Required = True 'Esempio di impostazione di
alcune proprietà dell'indice
Set fld = idx.CreateField("Campo1") 'Specifica i campi dell'indice; in
questo caso è solo il campo Campo1
idx.Fields.Append fld 'Aggiunge quindi il campo Campo1 all'indice
tbd.Indexes.Append idx 'Aggiunge l'indice alla tabella
'----
DB.TableDefs.Append tbd 'Aggiunge la tabella al database
DB.Close 'Chiude il database

oltre all sql
ci sono i comandi ado+  
dove:
ado      serve per il DML di un db
ado+    serve per il DDL di un db


@Alex
Consigli preziosi, Ringrazio tutti e farò un pò di tentativi....
Saluti a tutti
Nino