
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でフィールド名を変数(文字列)で・・・
Access(アクセス)
-
-
4
ACCESSのVBで、エクセルファイルの最終行を取得
Excel(エクセル)
-
5
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
6
ACCESS VBA でのエラー解決の根拠がわかりません エラー「イベントプロパティに指定した式・・
Access(アクセス)
-
7
カレントレコードが無い事を判定させる方法
Visual Basic(VBA)
-
8
Access レコード削除時に「カレントレコードがありません」エラーが表示されてしまう
Access(アクセス)
-
9
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
10
2つ目のレコードの値を取得するには?
Access(アクセス)
-
11
ACCESS側からEXCELの書式を設定するには?
Visual Basic(VBA)
-
12
Access サブフォームでの選択行の取得
その他(データベース)
-
13
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
14
Accessでテーブル名やクエリ名一覧の抜き出し
Access(アクセス)
-
15
アクセスのエラー「クエリには出力フィールドが1つ以上必要です。」
その他(Microsoft Office)
-
16
フォームの値をクエリーに反映したい
その他(Microsoft Office)
-
17
Access2010 Enterで次テキストへ移動
その他(Microsoft Office)
-
18
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
19
アクセス クエリのフィールド名が勝手に変わる
Access(アクセス)
-
20
ACCESSのBookmarkプロパティの使い方
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS 重複データを1...
-
差込印刷での全角表示について...
-
ファイルメーカーのCase関数で
-
エクセルデータをワードで差し...
-
ACCESSでの文字数カウント
-
Word差し込み印刷のハイフン(...
-
Access VBAでCSVファイルをイン...
-
【Access】レポートでテキスト...
-
クエリで割り算する方法を教え...
-
「Access2007」でレポートが作...
-
ACCESSでフィールド名の変更(...
-
sqlserverにはグループ集計のfi...
-
フィールドの更新がない
-
レコードの内容にハイフンをつ...
-
Acsess アクセス のクエリで...
-
Accessのハイパーリンクをクリ...
-
ワードファイルの文字数制限ロ...
-
アクセスの操作について
-
ACCESSのデータに自動で半角ス...
-
エクセルにおける「フィールド...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
差込印刷での全角表示について...
-
ACCESSでの文字数カウント
-
ファイルメーカーのCase関数で
-
エクセルデータをワードで差し...
-
Accessのハイパーリンクをクリ...
-
エクセルにおける「フィールド...
-
フィールドの更新がない
-
クエリで割り算する方法を教え...
-
ACCESS 重複データを1...
-
Acsess アクセス のクエリで...
-
ACCESSのデータに自動で半角ス...
-
Word差し込み印刷のハイフン(...
-
ACCESSで条件によってフォーム...
-
sqlserverにはグループ集計のfi...
-
クエリーで、全角混じりデータ...
-
「Access2007」でレポートが作...
-
実行時エラー '3464': 抽出条件...
-
アクセスの操作について
-
access2007のフォームウィザー...
-
Access クエリの編集について
おすすめ情報