8

MS Access で列の名前を変更する DDL は何ですか? 次のようなもの:

alter table myTable rename col1 to col2

これは、MSAccess 2000 形式のデータベースでは機能しません。MSAccess 2000 形式のデータベースで OLEDB または ADO.NET を使用していますが、ADO.NET を使用して他の方法でこれを実現する方法について、構文のヒントや提案をいただければ幸いです。

4

6 に答える 6

8

新しい列を追加し、既存の列から更新してから「古い」列を削除する以外に、これを行うことができるとは思いません。

ただし、VBA では非常に単純です。

Set db = CurrentDb
Set fld = db.TableDefs("Table1").Fields("Field1")
fld.Name = "NewName"
于 2010-01-12T13:53:32.873 に答える
7

私は家にいて、現時点ではこれをテストできませんが、これでうまくいくはずです。このサイトにはそれに関する情報があります。

ALTER TABLE thetable ALTER COLUMN fieldname fieldtype

編集 これを少しテストしましたが、奇妙なことに、見つけた列の名前を変更することはできません。このALTER COLUMN構文では、型の変更のみが許可されています。SQLを使用すると、列を削除してから追加し直す必要があるようです。データは一時テーブルに保存できると思います。

alter table test drop column i;
alter table test add column j integer;
于 2010-01-12T13:41:55.793 に答える
5

私の解決策、シンプルだが効果的:

Dim tbl as tabledef
set tbl = currentdb.TableDefs("myTable")
tbl.fields("OldName").name = "Newname" 
于 2014-08-01T20:25:55.073 に答える
3

VBA では、これを実行して列の名前を変更できます。

Dim acat As New ADOX.Catalog
Dim atab As ADOX.Table
Dim acol As ADOX.Column
Set acat = New ADOX.Catalog
acat.ActiveConnection = CurrentProject.Connection
Set atab = acat.Tables("yourTable")
For Each acol In atab.Columns
    If StrComp(acol.Name, "oldName", vbTextCompare) = 0 Then
        acol.Name = "newName"
        Exit For
    End If
Next acol
于 2013-01-08T20:21:04.677 に答える
2

以前にこれを調べましたが、これを行うことができる DDL ステートメントはありません。唯一の方法は、新しい列を追加し、データをコピーして古い列を削除することです。

于 2010-01-12T23:36:45.703 に答える