Felddatentypen innerhalb von ACCESS97 ändern

Hallo Kollegas,

vielleicht weiß jemand von euch, wie ich per Code
Feldtypen einer ACCESS 97 Datenbank ändern kann.
Bspw. Vorhandene Tabelle X mit dem Feld Y (Zahl)
soll auf Feld Y (Text) geändert werden.

Im voraus schon herzlichen Dank für eure Hilfe.

Gruß aus Nürnberg

Tommi

Hallo Thomas,
Setze ein ALTER TABLE Statement mittels Execute Methode ab. Beispiel für DAO:

 Dim db As Database
 Set db = CurrentDb
 Call db.Execute ("ALTER TABLE Testtable ALTER COLUMN Feld CHAR(100)")

lg
Maria

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

hallo maria,

vielen Dank für Deine schnelle Antwort. Nach anfänglichen
Jubelschreien kam leider wieder die Fehlermeldung „Fehler
in ALTER Anweisung“. Ich glaube daß man diesen Befehl zwar
auf dem SQL-Server etc., aber nicht auf eine ACCESS-Datenbank
anwenden kann.

Ich danke Dir trotzdem :frowning:, aber wenn Du noch was rauskriegst,
würde ich mich freuen wenn Du mir hilfst ([email protected]).

Bis denn

Tom

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ja, stimmt ich habe das gestern unter Access 2000 probiert und das geht so nicht unter Acc97 :frowning:

Am besten ein neues Feld an die Tabelle anfügen und die Werte des alten mit Typkonversion übertragen, ev. danach das alte Löschen.

jetzt schauts ein bisschen länger aus:

Sub NeuesFeld()
 Dim dbs As Database, tdf As TableDef, fld As Field
 Dim rs As Recordset
 ' Verweis auf aktuelle Datenbank holen.
 Set dbs = CurrentDb
 Set tdf = dbs.TableDefs!Testtable
 ' Neues Feld in Tabelle "Personal" erstellen.
 Set fld = tdf.CreateField("FeldText", dbText, 11)
 ' Feld hinzufügen und Auflistung aktualisieren.
 tdf.Fields.Append fld
 tdf.Fields.Refresh
 ' Werte eintragen und Typ umwandeln
 ' ev. Fehlerhandling!!!
 Set rs = dbs.OpenRecordset("SELECT \* FROM Testtable", dbOpenDynaset)
 While Not rs.EOF
 rs.Edit
 rs!feldtext = CStr(rs!Feld)
 rs.Update
 rs.MoveNext
 Wend
 rs.Close
 ' Altes Feld löschen und neues auf Altes umbenennen
 tdf.Fields.Delete "Feld"
 tdf.Fields.Refresh
 tdf.Fields("Feldtext").Name = "Feld"
 Set dbs = Nothing
End Sub

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]