
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 が書き換えられていたと思います。
ヘルプ等参照してみてください

No.4
- 回答日時:
これは、VBAの領域ではないのでは?
データシートビューを開いて、
フィールド名を左右にドラッグではダメですか
No.2
- 回答日時:
普段、テーブルを直接いじることがほぼ無いので逆にお聞きしたいのですが・・
この「テーブルのフィールド順変更」をVBAでやる理由ってどこにあるのでしょう?
テーブルにフィールドを追加・削除するコードと言うものはありますが、
「フィールドの並び順を変える」と言うものは無いようですので、強引にVBAでやるなら
・テーブルを「希望の並び順で」作成
・元のテーブルから新規のテーブルにレコードを移動
・元のテーブルを削除
・新規テーブルの名前を変更
あるいは、
・テーブルに新規フィールドを追加
・元のフィールドから新規フィールドにデータをコピー
・元のフィールドを削除
・新規フィールドの名前を変更
と言うプロセスが必要です。
どちらにせよ、組んであるリレーションやクエリなどに影響が出ますので、
決してオススメ出来る手段ではありません。
テーブル構造をいじる(フィールド順を変える)なら
デザインビューで行った方が確実で早いです。
画面表示だけの問題であれば、順番を入れ替えたクエリを作る方が早いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
列を移動させるvbaコードを教えてください。
Access(アクセス)
-
ACCESSのフィールドの表示順が変更できない
その他(Microsoft Office)
-
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
-
4
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
5
希望の位置へフィールドを追加するには?
その他(Microsoft Office)
-
6
Accessにインポートしたら並び順が変わっちゃった
Access(アクセス)
-
7
Access2000 サブフォームのRecordSet取得法
Access(アクセス)
-
8
Access サブフォームでの選択行の取得
その他(データベース)
-
9
Access VBAから使用したExcelプロセスを閉じる方法について
Visual Basic(VBA)
-
10
入力した値をコンボボックスにすぐに反映させる方法
Excel(エクセル)
-
11
Accessの更新前処理について。DoCmd.GoToRecordが動かないのはなぜ?
その他(プログラミング・Web制作)
-
12
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
13
ACCESSのクエリー抽出条件にIIFを使用して
Access(アクセス)
-
14
Access 最後のレコードに到達するまでループ処理を行う方法
Access(アクセス)
-
15
【アクセス】クエリで、行と列を入れ替えるには?【access】
Access(アクセス)
-
16
「更新に必要なキー列の情報が足りません。」エラーメッセージの回避策を教えてください。
Visual Basic(VBA)
-
17
ACCESSのクエリで集計で、先頭・最後とは?
その他(データベース)
-
18
アクセスで サブフォームの表示について
その他(データベース)
-
19
Accessを使って日付を比較したい
その他(Microsoft Office)
-
20
Accessでデータを更新したらその日付を自動入力したい
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS検索★ある文字を複数のフ...
-
INSERT INTO ステートメントに...
-
【Access】フォームで自動計算...
-
SQLServer2005のSQL文での別名...
-
ACCESSで400以上のフィールドが...
-
Accessのフィールド数が255しか...
-
アクセス メモ型 255文字...
-
Accessでテーブルの値をテキス...
-
Accessで、固定アルファベット+...
-
ACCESSでの改行コード
-
ACCESS2000「定義されているフ...
-
アクセス VBAで列の入れ替...
-
ACCESSでテーブルのチェックを...
-
主キーはオートナンバー型のID...
-
アクセス エラーを数値「0」に...
-
ACCESSでオートナンバーを任意...
-
フィールドの平均の求め方について
-
Access 昇順・降順で並び替え...
-
ACCESS レーダーチャートのデー...
-
ACCESSでテーブルのフィールド...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Access】フォームで自動計算...
-
ACCESS検索★ある文字を複数のフ...
-
SQLServer2005のSQL文での別名...
-
ACCESSで400以上のフィールドが...
-
Accessのフィールド数が255しか...
-
INSERT INTO ステートメントに...
-
ACCESSでの改行コード
-
accessのレポートで元になるテ...
-
ACCESSでテーブルのチェックを...
-
ExcelのデータをコピーでACCESS...
-
Accessでテーブルの値をテキス...
-
主キーはオートナンバー型のID...
-
ACCESS VBAにてCSV...
-
ファイルメーカーでCountifの様...
-
アクセスのテーブルデータをCSV...
-
固有レコード識別子の選択とは??
-
ACCESSで和暦を西暦に・・・
-
Access 昇順・降順で並び替え...
-
アクセス A列コピー B列貼り...
-
フィールド数の多すぎる・フィ...
おすすめ情報