• ベストアンサー

ACCESS 既存のテーブルのフィールド名をフォーム上のテキスト入力値に変更したい

いつもお世話になっております。 既存のテーブルのフィールド名を、単票フォーム上の入力値に変更 したいと思っています。 例)Aテーブル 月1 月2   Bフォーム上のテキストA:200810 テキストB:200811   (結果)Aテーブル 2008 200811 (テーブルデザインでの変更ではなく、コマンドボタン押下時等で行いたい) どなたか、ご教示願います。

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

フォームのボタンのイベントプロシージャの例 Private Sub コマンド_Click() Dim TDS As DAO.Tabledefs Dim TDF As DAO.Tabledef Dim FLD As DAO.Field Set TDS = CurrentDb.TableDefs Set TDF = TDS("Aテーブル") Set FLD = TDF.Fields("月1") '★1 FLD.Name = Me.テキストA.Value '★2 End Sub ★1定数にしておくと2回目からエラーになる。  もし、「最初のフィールド」というなら(0)でも良い。 ★2Null、空文字列、フィールド名として使えない文字のチェックを  していないので、実際に作る時はチェックが必要

naopyong
質問者

お礼

助かりました!!ありがとうございます!!

その他の回答 (1)

noname#140971
noname#140971
回答No.2

普通は、考えもしない処理ですよね。 だって、テーブルの列名を変更すればい色んな不具合が発生するからです。 もちろん、非連結でフォームを作成していれば出来ない芸当ではありません。 No1さんとは別のやり方ですと・・・。 [イミディエイト] ? ChangeFieldName("item", "ID", "II") True Public Const 接続文字列="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\temp\DB11.mdb" Public Function ChangeFieldName(ByVal strTableName As String, _                 ByVal strNowName As String, _                 ByVal strNewName As String) As Boolean   Dim isOK  As Boolean   Dim I    As Integer   Dim N    As Integer   Dim catDB  As ADOX.Catalog   Dim fldName As String   Set catDB = New ADOX.Catalog   catDB.ActiveConnection = 接続文字列   N = catDB.Tables(strTableName).Columns.Count - 1   For I = 0 To N     If catDB.Tables(strTableName).Columns(I).Name = strNowName Then       catDB.Tables(strTableName).Columns(I).Name = strNewName       isOK = True     End If   Next I   ChangeFieldName = isOK End Function なお、接続文字列は質問者の環境のそれに。

naopyong
質問者

お礼

ありがとうございました。

関連するQ&A