Opzione su creazione tabella tramite VBA

Anonimo
2011-02-22T12:18:21+00:00

Ciao,

tramite il seguente codice, creo una tabella "Tabella1" con due campi "Id" chiave primaria e "Campo" formato testo:

Dim strSql As String

strSql = "CREATE TABLE Tabella1 (" & _

"Id int identity(1,1) CONSTRAINT [PrimaryKey] Primary Key," & "Campo nvarchar)"

CurrentProject.Connection.Execute strSql

Volendo inserire 120 campi (Campo1, Campo2, Campo3 ecc...), non scritti ovviamente in maniera manuale nel codice, si può fare ad esempio tramite l'istruzione For Next? E Come?

Grazie Vladimiro.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2014-01-15T22:06:00+00:00

Ciao Giove123,

l'etichetta è una proprietà estesa che puoi aggiungere ad esempio in questo modo:

Sub CreateField(nome_tabella As String, _

                nome_campo As String, _

                tipo As Integer, _

                dimensione As Integer, _

                nome_etichetta As String)

    Dim db As DAO.Database

    Dim Td As DAO.TableDef

    Dim fld As DAO.Field

    Set db = CurrentDb

    Set Td = db.TableDefs(nome_tabella)

    'Aggiungo il campo

    Td.Fields.Append Td.CreateField(nome_campo, tipo, dimensione)

    Td.Fields.Refresh

    'Imposto l'etichetta

    Set fld = db.TableDefs(nome_tabella).Fields(nome_campo)

    fld.Properties.Append fld.CreateProperty("Caption", dbMemo, nome_etichetta)

    fld.Properties.Refresh

    Set fld = Nothing

    Set Td = Nothing

    Set db = Nothing

End Sub

esempio per eseguirla:

CreateField "Tabella1","Rag_Soc",dbtext,50,"Ragione sociale"

Ciao

Giorgio Rancati

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2011-02-23T13:10:00+00:00

Ciao Vladimiro,

allo scopo userei direttamente DAO in questo modo:

Function Creatabella(nomeTabella As String)

Dim td As TableDef

Set td = CurrentDb.CreateTableDef(nomeTabella)

For i = 1 To 120

     td.Fields.Append td.CreateField("campo" & i, dbInteger)

Next

CurrentDb.TableDefs.Append td

End Function


Cinzia


Sito RIO

Il mio Blog

La risposta è stata utile?

0 commenti Nessun commento

4 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2014-01-16T08:08:58+00:00

    Grazie Giorgio, perfetto.

    La risposta è stata utile?

    0 commenti Nessun commento