
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
No.2です。
> テーブルを登録した時の初期値に戻せたらと思ったのですが、
テーブルでしたか・・・(汗)
対処法としては、
a)テーブル作成クエリで全レコードを新規テーブルに複製し、
これと元のテーブルとを差し替える
(新規テーブル側は、元のテーブルのデザインビューでの並び
順が反映される)
b)前回勘違いした(汗)フォームのコントロールでの「TabIndex」の
代わりに、テーブルのフィールドの「OrdinalPosition」を使用
の2種類が考えられます。
全体的な難易度としては「a)」の方が低い(簡単)ですが、もしも
テーブルにリレーションや主キー・インデックスなどが設定済みの
場合は、新規テーブルにこれらは反映されないため、再設定が
必要になる、という問題があります。
どちらを採られるかは、arisa5さんの判断にお任せします。
【テーブル差し替えによる対応法】
1)データベースウィンドウ(テーブルやクエリなどの一覧が表示される
画面)で、対象テーブルを選択
2)メニューで「挿入(I)→クエリ(Q)」を選択
3)『新しいクエリ』ダイアログが開くので、「デザインビュー」を選択して
『OK』ボタンをクリック
4)クエリのデザインビューで、画面上半分の領域に対象テーブルの
フィールド一覧が表示されているので、その最上部にある「*」を
ダブルクリックするなどして、下半分の『フィールド』に追加
5)メニューで「クエリ(Q)→テーブル作成(K)」を選択
6)『テーブルの作成』ダイアログが開くので、『テーブル名』欄に適当な
名前(→既存テーブルと同名にすると、既存テーブルが削除される
ので注意)を入力し、『OK』ボタンをクリック
7)『クエリ デザイン』ツールバーの「!」(実行)ボタンをクリックするか、
メニューで「クエリ(Q)→実行(R)」を選択して、テーブルを作成
8)旧テーブルの名前を変更し、新規作成したテーブルを、その名前に
書き換えて差し替え
【VBAによる対処法】
まず、以下のコードを、標準モジュールに貼り付けたら、適当な名前を
つけて保存して下さい:
(メニューで「挿入(I)→標準モジュール(M)」を選択すると、新規の標準
モジュールが表示されます)
'~~~~~~ここから貼り付け~~~~~~
Public Sub InitializeColumnOrders(TName As String)
On Error GoTo エラー処理
Dim dbs As DAO.Database, tdf As DAO.TableDef, fld As DAO.Field
Const strMsg As String = "以下のテーブルのフィールド表示順を初期化します:"
'MsgBoxで「キャンセル」を選択した場合は処理を中止
If MsgBox(strMsg & vbCrLf & vbCrLf & TName, vbOKCancel) = vbCancel Then GoTo 終了処理
'実行前に、対象テーブルを閉じる
DoCmd.Close acTable, TName, acSavePrompt
'並び順を初期化するテーブルを設定
Set dbs = CurrentDb
Set tdf = dbs.TableDefs(TName)
'各フィールドの並び順を、デザインビューでの並び順に合わせる
For Each fld In tdf.Fields
fld.Properties("ColumnOrder") = fld.OrdinalPosition + 1
Next
'テーブルを開いて結果を表示
MsgBox "初期化しました。"
DoCmd.OpenTable TName, acViewNormal
終了処理:
Set tdf = Nothing
Set dbs = Nothing
Exit Sub
エラー処理:
MsgBox Err & ":" & Error$, , "InitializeColumnOrders(Sub)"
Resume 終了処理
End Sub
'~~~~~~ここまで貼り付け~~~~~~
次に、キーボードでCtrl+Gキーを同時押しして、イミディエイト ウィンドウを
表示します。
そこに「InitializeColumnOrders("テーブル1")」と入力して、Enterキーを
押せば、処理は終了です。
Accessのウィンドウに戻って、テーブルのフィールド表示順を確認してみて
下さい。
No.2
- 回答日時:
> 元の並び順に一気に並び変える方法
この、「元の並び順」ですが、各コントロールのタブ移動順と
同じ順序になっている、と考えてよろしいでしょうか。
もしそうでしたら、フォームの「開く時」イベントに以下のような
記述をすると、タブ移動順と同じ順序にフィールドを並べ替え
できます。
(並べ替えたら、下記コードを削除して、フォームを保存:
コードを残しておくと、列の移動を次回に引き継げなくなります(汗))
Private Sub Form_Open(Cancel As Integer)
On Error GoTo エラー処理
Dim Cntl As Control
For Each Cntl In Me.Controls
'タブ移動順(TabIndex)を元に、列表示順(ColumnIndex)を設定
'(TabIndexは0から、ColumnIndexは1から開始なので、「+1」)
Cntl.ColumnOrder = Cntl.TabIndex + 1
Next
終了処理:
Set Cntl = Nothing
Exit Sub
エラー処理:
Select Case Err
Case 438 'TabIndexなどを持たないラベルコントロール等の場合
Resume Next
Case Else 'その他のエラー
MsgBox Err & ":" & Error$, , Me.Name
Resume 終了処理
End Select
End Sub
・・・一応、こちらでは6フィールドほどで動作確認済みですが、
元にしているタブ移動順が望んだ通りでなかった場合などを
考え、一旦mdbファイルをコピーした上で、そちらで動作確認
してみて下さい(汗)
回答ありがとうございます。
フォームを使っていない単なるテーブルなので、
テーブルを登録した時の初期値に戻せたらと思ったのですが、
そんな機能はやはり無いのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(ブラウザ) Vivaldiの、この部分を消したいのですが、どうしたらよいですか? 1 2023/02/13 18:28
- Excel(エクセル) エクセルの並び替えについて 5 2022/07/11 00:49
- 建設業・製造業 見積作成(エクセル)について教えて下さい。 2 2023/05/10 13:47
- Excel(エクセル) ピボットテーブルについて 列フィールドに複数横並びに項目を表示したい場合、階層毎に表示されてしまう現 2 2022/06/28 00:27
- その他(Microsoft Office) (至急)Googleのスプレッドシートの条件付き書式について 2 2022/09/11 08:50
- ドライブ・ストレージ CrystalDiskmarkの測定結果の判定をお願いします 1 2023/02/11 17:42
- 教えて!goo 教えて!gooの、PC版のTOPページは、変化しましたか。 1 2022/10/30 08:46
- Excel(エクセル) 範囲指定をした中で、住所の列をユーザー設定の並べ替えをしたい 3 2022/05/15 13:51
- Excel(エクセル) 【エクセル】並び替えからの並び替え方法 7 2022/07/22 09:46
- Visual Basic(VBA) 【VBA】データを入力後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。 3 2022/11/16 01:37
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルに表示されているもの...
-
Accessのテーブルで、リンク?...
-
ACCESSユニオンクエリから新テ...
-
ACCESSでテーブルをコピーしよ...
-
2つのテーブルに共通するレコ...
-
Accessのリンクされたテーブル...
-
Sum・クエリ・テーブルの特定の...
-
access vbaにてテンポラリーテ...
-
Acccessで2つのテーブルから1...
-
ユニオンクエリをデザインビュ...
-
Accessのテーブルで、不可解な...
-
AccessVBAで任意の複数リンクテ...
-
Accessで使用しているリンクテ...
-
accessのテーブルを閉じたとき...
-
AccessのフィールドにIPアドレ...
-
accessエラー回避について
-
アクセス2000でのリンク先...
-
access2000・・テーブルをデー...
-
ExcelVBAでACCESSのクエリに接...
-
Access2007を同時に複数名で使...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2つのテーブルに共通するレコ...
-
ACCESSユニオンクエリから新テ...
-
テーブルに表示されているもの...
-
Accessのリンクされたテーブル...
-
access vbaにてテンポラリーテ...
-
Acccessで2つのテーブルから1...
-
最新日のデータのみ抽出するク...
-
Accessのテーブルで、リンク?...
-
Accessでリストの並び順を変更...
-
アクセス 部分一致の抽出
-
ACCESS テーブルを見比...
-
ACCESSでテーブルをコピーしよ...
-
accessのテーブルを閉じたとき...
-
ACCESS テーブルを見比...
-
AccessでのリンクテーブルとADO...
-
クエリで同一テーブルの複数回...
-
accessエラー回避について
-
アクセス2016 チェックボックス...
-
Access 分割したテーブルを一対...
-
access2000・・テーブルをデー...
おすすめ情報