webForumDet fria alternativet

Access Create Table

15 svar · 592 visningar · startad av LR^evil.sid

LR^evil.sidMedlem sedan maj 2002560 inlägg
#1

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
#2
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.

LR^evil.sidMedlem sedan maj 2002560 inlägg
#3

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
#4

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.

LR^evil.sidMedlem sedan maj 2002560 inlägg
#5

Samma fel

LarsGMedlem sedan dec. 200012 464 inlägg
#6

Kan du eka ut strängen och testa den direkt i Access?

LR^evil.sidMedlem sedan maj 2002560 inlägg
#7

Um... Hur gör jag det?

LarsGMedlem sedan dec. 200012 464 inlägg
#8

Det lär finnas något funktion för att ställa direkta SQL-frågor i Access. Jag vet inte mer än så.

LR^evil.sidMedlem sedan maj 2002560 inlägg
#9

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
#10

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)
LR^evil.sidMedlem sedan maj 2002560 inlägg
#11

hmm.. hittade var man kör frågorna och tabellen skapas utan problem

LarsGMedlem sedan dec. 200012 464 inlägg
#12

Använder du access eller Jet som drivrutin? (Dvs hur gör du connect?) Jag vet att Jet klarar mer än Access.

LR^evil.sidMedlem sedan maj 2002560 inlägg
#13

Jet

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=x:\..\data.mdb;"
LR^evil.sidMedlem sedan maj 2002560 inlägg
#14

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
LR^evil.sidMedlem sedan maj 2002560 inlägg
#15

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
LarsGMedlem sedan dec. 200012 464 inlägg
#16

KO

134 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)