Avatar billede mortenjp Nybegynder
27. januar 2002 - 22:46 Der er 7 kommentarer og
2 løsninger

Opret allow zero length-kolonne med ALTER


Jeg kan ikke pille mdb-filen ned fra webhotellet (den er for stor, og brugerne er live på den), så jeg skal tilføje et par kolonner til en af tabellerne.

ALTER tabel-navn ADD ny-kolonnenavn

Tilføjer kolonnen som den skal. Men allow zero length bliver sat til No. Og den skal være Yes. Jeg har prøvet at sætte NULL bagefter, men det giver ikke noget resultat?
Avatar billede entracore Nybegynder
27. januar 2002 - 23:03 #1
Du mangler at angive datatypen. f.eks.

ALTER tabel-navn ADD ny-kolonnenavn varchar(50) NULL
27. januar 2002 - 23:05 #2
Hvis du har oprettet feltet, kan du skyde denne sætning af (enten fra en procedure eller direkte fra debug-vinduet):
Currentdb.TableDefs("DinTabel").Fields("DitTekstfelt").Properties("AllowZeroLength") = true

Hvis du benytter Acc2000 eller XP skal du være opmærksom på at metoden benytter DAO!

Den ændrer feltegenskaben på tabellen.

Jeg ved ikke om det er muligt for dig, når db'en ligger på nettet, men det burde det.

/Thomas
Avatar billede mortenjp Nybegynder
27. januar 2002 - 23:50 #3
entra: Sorry, det felt jeg ville oprette skulle være en "memo"
thomas: Skriver jeg det i vbscript til asp'en?
Avatar billede mortenjp Nybegynder
27. januar 2002 - 23:53 #4
Nu har jeg lige i min test-base fyret denne her af

ALTER TABLE tabelnavn ADD COLUMN nykolonne varchar(255) null

Når jeg ser på den inde i design view, er Allow zero-length stadig sat til No :(
Avatar billede proaccess Nybegynder
28. januar 2002 - 09:27 #5
Hvis dit felt skal være Memo, så skal du bruge følgende:

ALTER TABLE tabelNavn ADD COLUMN kolonneNavn MEMO NULL


Hvis du kan komme til at sende et modul til din DB, så send venligst følgende:

Public Function AllowZeroLen(TblName As String, FieldName As String)
  Dim db As Database
  Dim td As TableDef
  Set db = CurrentDb()
  Set td = db.TableDefs(TblName)
  td.Fields(FieldName).AllowZeroLength = True
  db.TableDefs.Refresh
  db.Close
  Set db = Nothing
End Function


Derefter kan du bruge følgende SQL, til at sætte din AllowZeroLength-værdi:
SELECT AllowZeroLen("Overskrifter","Test") AS A INTO peb_Temp_aæljghæalwiræ
DROP TABLE peb_Temp_aæljghæalwiræ
Avatar billede proaccess Nybegynder
28. januar 2002 - 09:29 #6
i ovenstående SQL hedder din tabel altså "Overskrifter" og dit nye felt "Test"...
28. januar 2002 - 11:23 #7
Proaccess, hvad er lige forskellen på den ene linie kode, jeg sendte og så de 10, du har sendt?

Bare nysgerrig ;o)
Avatar billede proaccess Nybegynder
28. januar 2002 - 11:31 #8
>Thomas: ingen forskel i funktionsmåde... Jeg mener bare at min er mere overskuelig... Og ved at bruge den som funktion, kan den kaldes via SQL...

Public Function AllowZeroLen(TblName As String, FieldName As String)
  CurrentDb.TableDefs(TblName).Fields(FieldName).Properties("AllowZeroLength") = True
End Function
Avatar billede proaccess Nybegynder
13. marts 2002 - 07:55 #9
Kom du videre med dette, og kan vi få¨spørgsmålet lukket?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester