[ACCESS] Problema nel creare le tabelle da codice.

Scar991

Utente Attivo
30 Apr 2012
167
0
0
Salve a tutti!
Purtroppo, per esigenze di tempo, mi ritrovo ad utilizzare MS Access 2007 per la creazione di un database.
Come molti ben sapranno, i cari amici della MS hanno dotato Access di particolarità tutte sue, tanto che spesso
alcuni comandi non vengono letti e sorgono numerosi messaggi d'errore...
Avrei due domande a questo proposito:

1) Non avendo mai creato tabelle da codice (con il comando CREATE TABLE per intenderci), è giusto postarlo all'interno dello spazio queries?
2) Come mai, se posto nello spazio queries questo codice

Codice:
CREATE TABLE dati (
id int(11) NOT NULL auto_increment,
nome varchar(100) NOT NULL default '',
email varchar(150) NOT NULL default '',
message longtext NOT NULL default '',
data varchar(100) NOT NULL default '',
www varchar(150) NOT NULL default '',
PRIMARY KEY (id)
)
mi dice che ci sono degli errori subito dopo la prima parentesi??

Odio SQL :incazz2:
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
L'SQL è corretto. L'ho provato su MYSQL

non conosco però access Sorry
 

olmof

Nuovo Utente
18 Giu 2009
7
0
1
CREATE TABLE dati (
id AutoIncrement,
nome varchar(100) NOT NULL,
email varchar(150) NOT NULL ,
message longtext NOT NULL,
data varchar(100) NOT NULL,
www varchar(150) NOT NULL,
PRIMARY KEY (id)
)
 

Alberto Buracchi

Nuovo Utente
9 Dic 2012
15
0
0
Torino
Salve a tutti!
Purtroppo, per esigenze di tempo, mi ritrovo ad utilizzare MS Access 2007 per la creazione di un database.
Come molti ben sapranno, i cari amici della MS hanno dotato Access di particolarità tutte sue, tanto che spesso
alcuni comandi non vengono letti e sorgono numerosi messaggi d'errore...
Avrei due domande a questo proposito:

1) Non avendo mai creato tabelle da codice (con il comando CREATE TABLE per intenderci), è giusto postarlo all'interno dello spazio queries?
2) Come mai, se posto nello spazio queries questo codice

Codice:
CREATE TABLE dati (
id int(11) NOT NULL auto_increment,
nome varchar(100) NOT NULL default '',
email varchar(150) NOT NULL default '',
message longtext NOT NULL default '',
data varchar(100) NOT NULL default '',
www varchar(150) NOT NULL default '',
PRIMARY KEY (id)
)
mi dice che ci sono degli errori subito dopo la prima parentesi??

Odio SQL :incazz2:
L'SQL di JET, il motore di database di Access, non è uguale a quello standard

Ho trovato questi due esempi che magari possono aiutarti:

Esempio 1 - VBA

Codice:
Private Sub CreateNewTable()
  CurrentDB.Execute "CREATE TABLE MyNewTable(ID COUNTER(1, 1) PRIMARY KEY, " & _
                    "MyFirstField VARCHAR(255), " & _
                    "MySecondField VARCHAR(255))", dbFailOnError
  CurrentDB.TableDefs.Refresh
End Sub
Esempio 2 - spazio query

Codice:
CREATE TABLE MyNewTable1(ID COUNTER(1, 1) PRIMARY KEY, MyFirstField VARCHAR(255), MySecondField VARCHAR(255));
Come vedi, ad esempio, l' ID autoicrementante viene definito nell'SQL di Access come COUNTER
 

Alberto Buracchi

Nuovo Utente
9 Dic 2012
15
0
0
Torino
Altro esempio:

Codice:
Public Sub CreaTabella()
Dim Tabella As TableDef
Dim Contatore As Index
Dim Indice, Campo1, Campo2, Campo3, Campo4 As Field


Set Tabella = CurrentDb.CreateTableDef("MiaTabella")
Set Indice = Tabella.CreateField("ID", dbLong)
Indice.Attributes = dbAutoIncrField
Set Campo1 = Tabella.CreateField("Nome", dbText, 50)
Set Campo2 = Tabella.CreateField("Cognome", dbText, 50)
Set Campo3 = Tabella.CreateField("Matricola", dbInteger)
Set Campo4 = Tabella.CreateField("Annotazioni", dbMemo)
Tabella.Fields.Append Indice
Tabella.Fields.Append Campo1
Tabella.Fields.Append Campo2
Tabella.Fields.Append Campo3
Tabella.Fields.Append Campo4

Set Contatore = Tabella.CreateIndex("Chiave")
Contatore.Primary = True
Set Indice = Contatore.CreateField("ID")
Contatore.Fields.Append Indice
Tabella.Indexes.Append Contatore
CurrentDb.TableDefs.Append Tabella

CurrentDb.TableDefs.Refresh

End Sub
 
Ultima modifica: