Jag stal källkoden från en MySQL-Tabell, och har ändrat lite skall väl erkännas, men det vill inte fungera. Hur skall det se ut egentligen?
Felmeddelande: Syntaxfel i CREATE TABLE-instruktion.
Sub CreateTable(StrTxt)
StrTxt = ReservedWords(StrTxt)
If StrTxt = False Then Exit Sub
Dim SQL: SQL = "CREATE TABLE ["&StrTxt&"] ("
SQL = SQL & "[Id] int(6) unsigned NOT NULL auto_increment,"
SQL = SQL & "[Container] text(255) NOT NULL default '' COMMENT 'Detta fält innehåller den synliga datan för tabellen',"
SQL = SQL & "[Added] date NOT NULL default '0000-00-00' COMMENT 'Det datum användaren valt att lägga in',"
SQL = SQL & "PRIMARY KEY ([Id])"
Dim oCon: Set oCon = Server.CreateObject("ADODB.Connection")
oCon.Open Application("ADODB_BdyTag_mdb")
oCon.Execute(SQL)
oCon.Close: Set oCon = Nothing
End Sub
LarsGMedlem sedan dec. 200012 464 inlägg SQL = "CREATE TABLE ["&StrTxt&"] ("
SQL = SQL & "Id counter NOT NULL ,"
SQL = SQL & "Container varchar(255) NOT NULL default '' ,"
SQL = SQL & "Added date NOT NULL ,"
SQL = SQL & "PRIMARY KEY (Id))"
Varför skapar du tabller i applikationskod? Låter ytterst suspsekt i mina öron.
Felmeddelande: Syntaxfel i fältdefinition.
[.Red] Jag gör det för ett projekt så vi slipper använda oss av filer, det är inte jag som skall administrera projektet när det är klart
LarsGMedlem sedan dec. 200012 464 inlägg Ja visst. Access har ett så konstigt begrepp om hur default anges
SQL = "CREATE TABLE ["&StrTxt&"] ("
SQL = SQL & "Id counter NOT NULL ,"
SQL = SQL & "Container varchar(255) NOT NULL ,"
SQL = SQL & "Added date NOT NULL ,"
SQL = SQL & "PRIMARY KEY (Id))"
Det går inte att ange en sträng som default.
LarsGMedlem sedan dec. 200012 464 inlägg Kan du eka ut strängen och testa den direkt i Access?
LarsGMedlem sedan dec. 200012 464 inlägg Det lär finnas något funktion för att ställa direkta SQL-frågor i Access. Jag vet inte mer än så.
Det här blev strängen iaf så kanske du kan testa den
CREATE TABLE [testa] (Id counter NOT NULL ,Container varchar(255) NOT NULL ,Added date NOT NULL ,PRIMARY KEY (Id))
LarsGMedlem sedan dec. 200012 464 inlägg Jag har aldrig sett en access-databas. Inte ens på vykort.
Om du lägger primary direkt vid ID då och slänger [] in för alla namn?
CREATE TABLE [testa] ([Id] counter NOT NULL primary ley,[Container] varchar(255) NOT NULL ,[Added] date NOT NULL)
hmm.. hittade var man kör frågorna och tabellen skapas utan problem
LarsGMedlem sedan dec. 200012 464 inlägg Använder du access eller Jet som drivrutin? (Dvs hur gör du connect?) Jag vet att Jet klarar mer än Access.
Jet
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=x:\..\data.mdb;"
Får fortfarande 'Syntaxfel i fältdefinition.' med:
CREATE TABLE [testa] ([Id] counter NOT NULL primary key,[Container] varchar(255) NOT NULL ,[Added] date NOT NULL
Hupp! Nu fungerar det:
Sub CreateTable(StrTxt)
StrTxt = ReservedWords(StrTxt)
If StrTxt = False Then Exit Sub
Dim SQL: SQL = "CREATE TABLE ["&StrTxt&"] ([Id] counter NOT NULL ,[Container] varchar(255) NOT NULL ,[Added] date NOT NULL ,PRIMARY KEY ([Id]))"
Dim oCon: Set oCon = Server.CreateObject("ADODB.Connection")
oCon.Open Application("ADODB_BdyTag_mdb")
oCon.Execute(SQL)
oCon.Close: Set oCon = Nothing
End Sub