

No.1ベストアンサー
- 回答日時:
私も、以前に同様の内容を調べたことがあるのですが、SQL文による位置の指定方法は見つかりませんでした。
SQL文以外の方法としては、下記のような方法が考えられます。
■方法1■
現テーブルのデータをエクスポート(CSV形式等)
↓
(新テーブルを現テーブルと同名にしたい場合、このタイミングで現テーブル削除)
↓
希望レイアウトで新テーブル作成
↓
新テーブルにデータをインポート
■方法2■
現テーブルをリネーム
↓
希望レイアウトで新テーブル作成
↓
INSERT~SELECT文で現テーブルから新テーブルにデータコピー
↓
現テーブル削除
■方法3■
EnterpriseManager(7以降?)のGUI操作により、希望位置に列追加
■方法4■
VIEW定義により代替
ざっくりした説明ですので、補足説明が必要でしたらおっしゃってください。
また、他のよい方法をご存知の方がいたら、ぜひ知りたいです..
この回答への補足
回答ありがとうございます。
VB6のソースコード上から実行したかったので、
とりあえず、■方法2■でやってみました。
ちなみにトランザクションをかけた状態で、
新テーブルを作成
↓
データコピー
↓
現テーブル削除
↓
新テーブルリネーム
だと実行時エラーが発生してしまいました。(分散トランザクションがどうとか...)
テーブルのリネームは最初にやらないとまずいのでしょうか。それとも、他の問題でしょうか。
あと、■方法4■はどういうことでしょうか。
お暇でしたらよろしくお願いします。

No.2
- 回答日時:
遅くなりすみません。
■方法2■ではエラーとなってしまったとのことですが、すみませんがちょっと原因はわからないです。トランザクション関連のエラーのようですね。エラーメッセージなど、詳しく教えていただければ調べられるかもしれません。
■方法4■ですが、ビューの使用方法はご存知でしょうか?
例を挙げて説明します。
pk, clm1,clm2 の3列をもつテーブルTbl1(既存。キーはpk)
↓
pk, clmAを持つ新テーブルTbl2(新規作成。キーはpk、clmAは追加したい項目)
↓
pk, clm1, clmA, clm2 の順のレイアウトでビューView1を定義
CREATE VIEW View1
AS
SELECT Tbl1.pk, Tbl1.clm1, Tbl2.clmA, Tbl1.clm2
FROM Tbl1, Tbl2
WHERE Tbl1.PK = Tbl2.PK
↓
View1に対してSELECT等を実行することで、列を追加したTbl1に対してSELECT等を行っているかのように見せることができる。
下手な説明ですみません。
さらに補足が必要でしたらおっしゃって下さい。
返答がだいぶ遅くなってしまい、すみません。
結局、■方法2■でうまくいったので、使用させてもらうことにしました。
エラーの原因は、ソースコードへのSQL埋め込み時に ";" で区切って多くのSQL文を実行しようとしていたため、エラーとなっていたみたいです。一文ずつ実行したら、とりあえずうまくいきました。
ビューの説明はわかりやすかったです。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- その他(Microsoft Office) ピボットテーブルへの集計フィールド挿入 1 2023/02/26 11:33
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Access(アクセス) Accessテキストボックス内に2つのフィールドの値を比較して大きい方の値を表示させる方法 1 2022/09/09 10:50
- Access(アクセス) Accessクエリで年月フィールドを年のみで抽出する方法について 2 2022/08/29 18:10
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クエリのキャンセルがいつにな...
-
PL/SQLでFROM句に変数を使いたい
-
SI Object Browserのテーブルス...
-
テーブルの権限 またはユーザの...
-
位置を指定してフィールドを追...
-
DBのCreate文スクリプト作成に...
-
入力された数字のうち、10台...
-
「マスタ」と「テーブル」の違...
-
accessのエクスポートエラーに...
-
AccessのテーブルをSQL Server...
-
ACCESS2007 フォーム 「バリア...
-
SELECT時の行ロックの必要性に...
-
VBAの実行時エラー'2522'について
-
データの二重表示の原因
-
phpmyadminで問い合わせた結果...
-
Google検索はなぜ早い?
-
【SQLServer】IS NULLのパフォ...
-
SQLServer 分散トランザクショ...
-
IFで条件を分岐させてのINSERT...
-
SELECT文でのデッドロックに対...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SI Object Browserのテーブルス...
-
クエリのキャンセルがいつにな...
-
accessテーブル作成クエリを実...
-
ユニオンクエリの結果をテーブ...
-
あるテーブルのデータを追加、...
-
エクセルでテーブルの最終行が...
-
UNIONなどで複数のテーブルから...
-
SQLサーバーのテーブルの値...
-
列サイズ変更時、DB停止は必要?
-
コンボボックスで入力したもの...
-
ストアドをまたがるローカル一...
-
レプリケーションしているテー...
-
VIEWしか読み取れないユーザの...
-
ACCESS-リンクテーブルの設定で...
-
ADOでSeekメッソッドが使えませ...
-
重複するレコードに対しフラグ...
-
AccessVBAで降順にするテーブル...
-
アクセスのテーブル作成クエリ...
-
Accessでバージョン違いのファ...
-
AccessでOracleのテーブルをリ...
おすすめ情報