No.2
- 回答日時:
普段、テーブルを直接いじることがほぼ無いので逆にお聞きしたいのですが・・
この「テーブルのフィールド順変更」をVBAでやる理由ってどこにあるのでしょう?
テーブルにフィールドを追加・削除するコードと言うものはありますが、
「フィールドの並び順を変える」と言うものは無いようですので、強引にVBAでやるなら
・テーブルを「希望の並び順で」作成
・元のテーブルから新規のテーブルにレコードを移動
・元のテーブルを削除
・新規テーブルの名前を変更
あるいは、
・テーブルに新規フィールドを追加
・元のフィールドから新規フィールドにデータをコピー
・元のフィールドを削除
・新規フィールドの名前を変更
と言うプロセスが必要です。
どちらにせよ、組んであるリレーションやクエリなどに影響が出ますので、
決してオススメ出来る手段ではありません。
テーブル構造をいじる(フィールド順を変える)なら
デザインビューで行った方が確実で早いです。
画面表示だけの問題であれば、順番を入れ替えたクエリを作る方が早いです。
No.3ベストアンサー
- 回答日時:
フォームを作って、それをデータシート表示している中で・・・という事ですよね
詳細に表示しているテキストボックスの ColumnOrder を設定すれば良さそうです。
フォームをウィザードで表形式として作成すると帳票フォームが出来上がると思います。
これをデータシートに形式を変更すると、帳票フォームでのタブ移動順を元に
ColumnOrder が 1 ~ 連番で振られるようです。(初めてデータシート表示した時のもので)
現状の ColumnOrder は、日付=1、金額=2 となっていると思うので、
日付=2、金額=1 と設定してあげれば良いと思います。
以下、確認した環境を紹介しておきます。
フィールド「an」「F1」「F2」をもつテーブルを元に、ウィザードで表形式でフォーム作成
既定のビューをデータシートに変更
テキストボックス名をフィールド名と違うものにしたい(確認用)ので、名前先頭に「txt_」付加
このフォームをサブフォーム「FSUB」としてメインのフォームに組み込み
メインフォームでは、表示順切り替え用にオプショングループ設置
画面の雰囲気は画像を見てもらうとして、処理として記述したのは以下
Private Sub SetVal(iAn As Long, iF1 As Long, iF2 As Long)
Dim sS As String
With Me.FSUB.Form
.Painting = False
.txt_an.ColumnOrder = iAn
.txt_F1.ColumnOrder = iF1
.txt_F2.ColumnOrder = iF2
.Painting = True
sS = "ColumnOrder : " & vbCrLf
sS = sS & " txt_an = " & .txt_an.ColumnOrder
sS = sS & " txt_F1 = " & .txt_F1.ColumnOrder
sS = sS & " txt_F2 = " & .txt_F2.ColumnOrder
End With
Me.lab1.Caption = sS
End Sub
Private Sub Form_Load()
Me.op1 = 1
Call op1_Click
End Sub
Private Sub op1_Click()
Select Case Me.op1
Case 1: Call SetVal(1, 2, 3)
Case 2: Call SetVal(1, 3, 2)
Case 3: Call SetVal(3, 2, 1)
End Select
End Sub
※ データシートで表示される項目名部分は、
・テキストボックスにラベルがくっついていたら、そのラベルの Caption
・くっ付いていなかったら、テキストボックスの名前
が使われたと思います。
※ データシート表示中、項目部分をドラッグ&ドロップで順を変更できますが
その時にはこの ColumnOrder が書き換えられていたと思います。
ヘルプ等参照してみてください
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) ピボットテーブルへの集計フィールド挿入 1 2023/02/26 11:33
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) Access VBA を利用して、フォルダ内のファイルの名称を変更したい 1 2023/08/03 08:27
- Access(アクセス) Accessフォームで複数条件でフィールドの値を表示する方法 4 2022/07/21 10:47
- Access(アクセス) Accessフォーム 一部のレコードだけを抽出する方法について 1 2022/06/28 18:45
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
列を移動させるvbaコードを教えてください。
Access(アクセス)
-
希望の位置へフィールドを追加するには?
その他(Microsoft Office)
-
ACCESSのフィールドの表示順が変更できない
その他(Microsoft Office)
-
-
4
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
5
ACCESS VBAでテーブル内の特定のフィールドを削除 .Fields.Delete (*")"
その他(プログラミング・Web制作)
-
6
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
7
Access サブフォームでの選択行の取得
その他(データベース)
-
8
Accessでレコードを別テーブルへコピーするには
Access(アクセス)
-
9
Access終了時にマクロまたはVBAの実行したい
その他(Microsoft Office)
-
10
ACCESSでフィールド名の変更(VBA)
Access(アクセス)
-
11
ACCESS フォームをそのまま印刷について
その他(データベース)
-
12
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
13
Accessのテーブルデータを一気にVBAで追加したい・・
その他(データベース)
-
14
「RunSQL」と「Execute」の違い
Access(アクセス)
-
15
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
16
ACCESS──メインフォームでサブフォームのレコード件数をカウントしたい
Access(アクセス)
-
17
Accessでフィールド名を変数(文字列)で・・・
Access(アクセス)
-
18
位置を指定してフィールドを追加する
SQL Server
-
19
accessでフィールド追加のあとフォームに反映されない
Access(アクセス)
-
20
アクセスVBAのMe!と[ ]
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセス メモ型 255文字...
-
accessで重複を防ぎたい
-
INSERT INTO ステートメントに...
-
ACCESSで400以上のフィールドが...
-
Access 昇順・降順で並び替え...
-
アクセス エラーを数値「0」に...
-
IT用語について質問です。 以前...
-
Accessでテーブルの値をテキス...
-
Accessで、固定アルファベット+...
-
固有レコード識別子の選択とは??
-
通貨型で\\0の時、何も表示しな...
-
SQLServer2005のSQL文での別名...
-
アクセスで複数行の一括入力す...
-
ACCESS.ルックアップの値以外...
-
【Access】フォームで自動計算...
-
ACCESSでオートナンバーを任意...
-
アクセス A列コピー B列貼り...
-
フィールド数の多すぎる・フィ...
-
ACCESSDBで、NULLデータをすべ...
-
主キーの位置
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでテーブルの値をテキス...
-
Accessのフィールド数が255しか...
-
ACCESSで400以上のフィールドが...
-
ACCESSでの改行コード
-
INSERT INTO ステートメントに...
-
accessのレポートで元になるテ...
-
アクセス エラーを数値「0」に...
-
ExcelのデータをコピーでACCESS...
-
Access 昇順・降順で並び替え...
-
Accessで、固定アルファベット+...
-
accessで重複を防ぎたい
-
ACCESSで和暦を西暦に・・・
-
アクセス VBAで列の入れ替...
-
SQLServer2005のSQL文での別名...
-
ACCESS2000「定義されているフ...
-
主キーはオートナンバー型のID...
-
ACCESSでオートナンバーを任意...
-
ACCESSでテーブルのフィールド...
-
アクセス A列コピー B列貼り...
-
IT用語について質問です。 以前...
おすすめ情報