Avatar billede 3xa Nybegynder
13. februar 2007 - 13:32 Der er 15 kommentarer og
3 løsninger

Ændre felt type i tabel via kode

Hej Jeg har en tabel med et felt, som f.eks. kan være et string felt. Det vil jeg gerne have ændret til et text felt. Derfor kunne jeg godt bruge en stump kode der f.eks. åbner tabel "XXXX" og ændre typen på felt "YYYY" til text. På forhånd tak!
Avatar billede kalp Novice
13. februar 2007 - 13:35 #1
ALTER TABLE XXXX ALTER COLUMN YYYY TEXT(500);

kan godt være du ikke behøver angive feltstørrelsen.
Avatar billede kalp Novice
13. februar 2007 - 13:37 #2
hov text er nok bare 255 standard:P
Avatar billede kalp Novice
13. februar 2007 - 13:38 #3
yes det er 255:)
ALTER TABLE XXXX ALTER COLUMN YYYY TEXT(255);
Avatar billede 3xa Nybegynder
13. februar 2007 - 14:13 #4
Jamen kan jeg putte den kode ind i et Access VB Modul?
Avatar billede kalp Novice
13. februar 2007 - 14:15 #5
Det ville jeg da tro... afprøv og hvis ikke så kan det være en anden har en anden løsning:) men det er da sådan du retter på datatypen af en kolonne.
Avatar billede -anders- Juniormester
13. februar 2007 - 15:44 #6
Hej, jeg plejer at bruge nedenstående kode, som ligger i et modul og udføres via et makrokald, først skal du oprette modulet, og skrive nedenstående kode, husk at erstatte tabelnavn og aktuelt feltnavn med dine egne.

Function SetTbl()
Dim db As Database
    Dim tdef As TableDef
    Set db = CurrentDb
    db.Execute "Alter table [Tabelnavn] ALTER [Feltnavn] Text(255)"

End Function

Gem og luk modulet, det ligegyldigt hvad du navngiver modulet til.

Opret en ny makro, i design på denne under handling vælger du Afspil kode, nederst hvor der står funktionsnavn skriver du navnet på din funktion på denne måde

=SetTbl()

gem og luk makroen, det ligegyldigt hvad du navngiver makroen til.

Når du dobbeltklikker på makroen ændres dit felt i tabellen til det der er angivet i koden ude i modulet.
Avatar billede 3xa Nybegynder
13. februar 2007 - 16:20 #7
-andersen-: Jeg er ked af at måtte meddele at den køber Access VB bare heller ikke...Øv!
Avatar billede -anders- Juniormester
13. februar 2007 - 16:37 #8
Mystisk, jeg har anvendt ovenstående metoder masser af gange helt tilbage fra access 97, men måske du skal tilføje en reff. til DAO, det er ikke altid denne er sat som standard. Åben dit modul menuen Tools/Referancer kan du afkrydse DAO hvis den ikke allerede er det.

Koden vil heller ikke virke hvis din tabel er åben (din tabel er åben hvis en formular er åben med tabellen som postkilde), eller tabellen i sig selv er åben i tabelvinduet.

Nevermind, hvis du har mulighed for det er du velkommen til sende db til mig, så vil jeg da gerne kikke på den (som .zipfil)i aften. Min mailadresse er anj@bryggemail.dk
Avatar billede terry Ekspert
13. februar 2007 - 17:03 #9
whats the difference between string and text?

In Access we have text and memo, asd far as I know we dont have string types
Avatar billede -anders- Juniormester
13. februar 2007 - 17:06 #10
hej terry, god pointe, måske er det der den ligger
Avatar billede terry Ekspert
13. februar 2007 - 17:06 #11
an dthe max length for a text is 255, otherwise you need to change it to a memo.

docmd.RunSQL "ALTER TABLE T1 ALTER COLUMN A memo;"
Avatar billede terry Ekspert
13. februar 2007 - 17:07 #12
.
Avatar billede terry Ekspert
13. februar 2007 - 19:14 #13
Hi anders, didnt see your comment there, but hopefully 3xa can shed some light on what he wants.
Avatar billede 3xa Nybegynder
14. februar 2007 - 09:03 #14
Terry: det var godt du lige kom med lommelygten, for nu virker qawi's kodestump upåklageligt! Jeg håber at det er god karma hvis I alle 3 deler pointene!
Tusinde tak for hjælpen!
Avatar billede terry Ekspert
14. februar 2007 - 09:25 #15
no problems from me :o)

Can you tell us what you were converting from/to?
Avatar billede -anders- Juniormester
14. februar 2007 - 09:33 #16
Fint med mig, og tak for point, som terry spørger om Hvad konvertere du engenlig Fra og til?
Avatar billede 3xa Nybegynder
14. februar 2007 - 09:33 #17
Problemet kom af at det var et felt som skulle bruges som nøglefelt i en query. Feltet ligger i en tabel der er importeret fra Excel, og her kunne det ligge standard som textfelt, eller som i dette tilfælde et number felt.
Avatar billede kalp Novice
14. februar 2007 - 09:58 #18
Det ganske okay.. der kom brugbar input fra alle deltager så det kunne ikke være meget anderledes:)
tak for point;)
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