• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLにてフィールド名変更。続編。。スイマセン)

SQLでフィールド名変更する方法

このQ&Aのポイント
  • SQLを使用してテーブルのフィールド名を変更する方法について質問があります。
  • テーブルを指定してフィールド名を変更する方法が知りたいです。
  • エラーが発生した場合にメッセージボックスが表示されるようにする方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

すいません。 書かれているソースを流用し、実行確認していませんでした。 こちらでも実行すると、できませんでした。 DAOではないですが、違う実現方法を張っておきます。(ADOX) Sub Test()   Call ChangeFieldName_ADOX("購入A") End Sub Public Sub ChangeFieldName_ADOX(ByVal inTblName As String)   Dim adoxCat   As Object   Dim adoxTbl   As Object   Dim adoxClm   As Object      Set adoxCat = CreateObject("ADOX.Catalog")   adoxCat.ActiveConnection = CurrentProject.Connection   Set adoxTbl = adoxCat.Tables(inTblName)      'フィールドの追加   For Each adoxClm In adoxTbl.Columns     adoxClm.Name = Replace(adoxClm.Name, " ", "", , , vbTextCompare)   Next   Set adoxTbl = Nothing   Set adoxCat = Nothing End Sub

qute
質問者

お礼

お手数お掛けします。 何とか無事実行できました。 まだまだ完成まで道は遠いですが、 どうしてもわからない事を教えて頂ける事で 完成の道がまた見えてきました。 本当に感謝です。有難うございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

'全てのテーブルを列挙 For Each oTable In CurrentDb.TableDefs ~~~~~~~ リネーム処理 ~~~~~~~ Next oTable となっているようなので、テーブル列挙を行わず、特定テーブルを指定して既存のコードにはめ込むだけです。 ついでに、「全角スペース」/「半角スペース」処理を一文にまとめました。 こんな感じです。 'テーブル取得 Set oTable = CurrentDb.TableDefs("テーブル名") 'フィールドループ For Each oField In oTable.Fields 'リネーム処理[全角/半角スペース空白除去] oField.name = Replace(oField.name, " ", "", , , vbTextCompare) Next oField

qute
質問者

補足

有難うございます。 試してみたのですが、私のやり方がおかしいのでしょう。 うまく↓セットできていない様です。。。                    ↓テーブル名 Set oTable = CurrentDb.TableDefs("購入") [オブジェクトが正しくないか現在設定されていません] Public Sub ChangeFieldName() Dim oTable As DAO.TableDef Dim oField As DAO.Field Dim strName As String 'テーブル取得 Set oTable = CurrentDb.TableDefs("購入A") For Each oField In oTable.Fields oField.Name = Replace(oField.Name, " ", "", , , vbTextCompare) Next oField end sub

すると、全ての回答が全文表示されます。

関連するQ&A