![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.2ベストアンサー
- 回答日時:
>ちなみに、それはどういったやりかたでやったら良いのでしょう?
例えば、[フィールド名対応表]という名前のテーブルで、[フィールド名][変換名]というフィールドを作ります。
で、[フィールド名]には予め実際のテーブルのフィールド名を、正しく入力しておきます。
[変換名]にも初期値として[フィールド名]と同じ値を入力しておきましょう。
まず、変換名の登録は、更新クエリを実行します。
仮に[誕生日]というフィールド名を[生年月日]という名前に変更するとすると、コードは以下のような感じ。
Dim SQL As String 'SQLステートメント
SQL = "UPDATE フィールド名対応表 SET 変更名 = '生年月日' WHERE フィールド名 = '誕生日'"
DoCmd.RunSQL SQL
次にフィールド名に付けられた変更名を拾ってくる方法は、
Dim temp As String '変更名
temp = DLookup("変更名", "フィールド名対応表", "フィールド名 = '誕生日'")
ちなみに、DLookup関数は、条件にあったデータの値を返す関数ですが、条件にあったデータがない場合は、Nullを返しますので注意して下さい。
大変わかりやすい説明、ありがとうございます。
ただ、利用者によってフィールドが幾つできるか分からないんです。
やっぱり上限を決めて設定するようにするしかないんでしょうね?
No.3
- 回答日時:
Option Compare Database
Option Explicit
Sub test()
Dim db As Database
Dim tdf As TableDef
Dim fld As Field
Set db = CurrentDb
Set tdf = db.TableDefs!座席
With tdf
.Fields(4).Name = "予約日付"
End With
End Sub
「予約日付」の部分は、n=Inputbox("フィールド名=")とでも聞いてnで置きかえる。
4番目のフィールド「テキスト日付」を「予約日付」に
変更できました。
.Fields("予約日付").Name = "T予約日付"というフィールドの捉え方も出来ます。
No.1
- 回答日時:
こんにちは。
maruru01です。ADOXを使用すると出来ます。
まず、VBE画面のメニューの[ツール]→[参照設定]で、
「Microsoft ADO Ext. X.X for DLL and Security」(X.Xはバージョン)
にチェックをします。
そして以下のようにコードを書きます。
Dim cat As ADOX.Catalog
Set cat = New ADOX.Catalog
cat.ActiveConnection = CurrentProject.Connection
cat.Tables("テーブル名").Columns("変更前のフィールド名").Name = "変更後のフィールド名"
Set cat = Nothing
ところで、フィールド名を利用者に自由に変更させるやり方は、あまりいいとは思います。
メンテナンスとかコーディングとかで不都合が生じる可能性があります。
フォームなどの表示上の問題なら、元のフィールド名と変更フィールド名の対応テーブルを作り、それを参照して表示を変更するという方がいいと思います。
ありがとうございます。
>フォームなどの表示上の問題なら、元のフィールド名と変更フィールド名の対応テーブルを作り、それを参照して表示を変更するという方がいいと思います。
そうなんです。フォームの表示上の問題なんです。
ちなみに、それはどういったやりかたでやったら良いのでしょう?
超初心者です。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。特にものすごく怒られたときとか、とんでもない損害を与えてしまったときとか…。
-
Accessです。テーブルのフィールド名変更
Access(アクセス)
-
ACCESS VBAでテーブル内の特定のフィールドを削除 .Fields.Delete (*")"
その他(プログラミング・Web制作)
-
Accessでフィールド名を変数(文字列)で・・・
Access(アクセス)
-
-
4
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
5
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
6
フィールド名の変更について(ACCESS)
Access(アクセス)
-
7
実行時エラー3131 FROM 句の構文エラーです について
Access(アクセス)
-
8
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
9
アクセスVBAのMe!と[ ]
Access(アクセス)
-
10
ACCESS で 項目名を出力せずにエクスポートしたい
その他(データベース)
-
11
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
12
Access 最後のレコードに到達するまでループ処理を行う方法
Access(アクセス)
-
13
AccessVBAで作成したExcelファイルを削除する方法は?
Visual Basic(VBA)
-
14
ACCESSのVBで、エクセルファイルの最終行を取得
Excel(エクセル)
-
15
accessテーブル作成クエリを実行したときにオートNo(のような)振る方法
その他(データベース)
-
16
アクセスのエラー「クエリには出力フィールドが1つ以上必要です。」
その他(Microsoft Office)
-
17
Access2003 クエリで、空の列は作れますか?
Access(アクセス)
-
18
アクセス VBAで列の入れ替え データシートビュー
その他(Microsoft Office)
-
19
アクセスvbaでエクセルブックを保存
その他(Microsoft Office)
-
20
アクセス VBAについて FROM句の構文エラー
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
差込印刷での全角表示について...
-
エクセルにおける「フィールド...
-
エクセルデータをワードで差し...
-
ACCESS 重複データを1...
-
実行時エラー '3464': 抽出条件...
-
ACCESSのデータに自動で半角ス...
-
フィールドの更新がない
-
クエリで割り算する方法を教え...
-
datetime型のUpdate文
-
ACCESSで条件によってフォーム...
-
レコードの内容にハイフンをつ...
-
Access InStr関数 AかBが入...
-
access2007のフォームウィザー...
-
ACCESSの入力文字数の制限について
-
Acsess アクセス のクエリで...
-
Accessの日本語フィールド名
-
「Access2007」でレポートが作...
-
ACCESS2000でExcelから特定フィ...
-
ACCESSでフィールド名の変更(...
-
【Access】レポートでテキスト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
差込印刷での全角表示について...
-
エクセルにおける「フィールド...
-
エクセルデータをワードで差し...
-
フィールドの更新がない
-
ACCESS 重複データを1...
-
ACCESSのデータに自動で半角ス...
-
クエリで割り算する方法を教え...
-
Acsess アクセス のクエリで...
-
ACCESSで条件によってフォーム...
-
Word差し込み印刷のハイフン(...
-
実行時エラー '3464': 抽出条件...
-
クエリーで、全角混じりデータ...
-
Accessのハイパーリンクをクリ...
-
「Access2007」でレポートが作...
-
datetime型のUpdate文
-
Null値を並べ替えで・・・
-
ACCESSでフィールド名の変更(...
-
sqlserverにはグループ集計のfi...
-
奇数・偶数ページごとに差し込...
-
Accessの日本語フィールド名
おすすめ情報