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も見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
希望の位置へフィールドを追加するには?
その他(Microsoft Office)
-
列を移動させるvbaコードを教えてください。
Access(アクセス)
-
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
-
4
「RunSQL」と「Execute」の違い
Access(アクセス)
-
5
ACCESSでフィールド名の変更(VBA)
Access(アクセス)
-
6
アクセス VBAで列の入れ替え データシートビュー
その他(Microsoft Office)
-
7
ACCESSのフィールドの表示順が変更できない
その他(Microsoft Office)
-
8
ACCESS VBAでテーブル内の特定のフィールドを削除 .Fields.Delete (*")"
その他(プログラミング・Web制作)
-
9
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
10
ACCESSでコントロールソースの変更
Access(アクセス)
-
11
Access サブフォームでの選択行の取得
その他(データベース)
-
12
アクセスVBAのMe!と[ ]
Access(アクセス)
-
13
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
14
Access2003 クエリで、空の列は作れますか?
Access(アクセス)
-
15
Accessで、1つの項目に複数の置換えを1度でするには?
Access(アクセス)
-
16
sqlに記述できない文字
PostgreSQL
-
17
アクセス VBAについて FROM句の構文エラー
Access(アクセス)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ストアドをまたがるローカル一...
-
コンボボックスで入力したもの...
-
管理シート上で、複数の別シー...
-
列サイズ変更時、DB停止は必要?
-
Access2000のテーブルのインポ...
-
accessテーブル作成クエリを実...
-
クエリのキャンセルがいつにな...
-
あるテーブルのデータを追加、...
-
エクセルでテーブルの最終行が...
-
AccessのテーブルをSQL文に...
-
SQLスクリプトを自動生成する方法
-
エクセル
-
「マスタ」と「テーブル」の違...
-
Accessにインポートしたら並び...
-
Access VBA Me.Requery レコー...
-
ACCESSのSQLで、NULLかNULLでな...
-
非連結サブフォームのレコード...
-
データの二重表示の原因
-
Accessでフィールドを比較した...
-
アクセスのテーブルからエクス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
accessテーブル作成クエリを実...
-
エクセル
-
エクセルでテーブルの最終行が...
-
クエリのキャンセルがいつにな...
-
SI Object Browserのテーブルス...
-
あるテーブルのデータを追加、...
-
ユニオンクエリの結果をテーブ...
-
Accessにインポートした複数の...
-
コンボボックスで入力したもの...
-
VIEWしか読み取れないユーザの...
-
レプリケーションしているテー...
-
テーブル作成クエリで新テーブ...
-
excel テーブル
-
SQLサーバーのテーブルの値...
-
UNIONなどで複数のテーブルから...
-
Access のリレーションシップで...
-
ストアドをまたがるローカル一...
-
アクセスのテーブル作成クエリ...
-
ADOでSeekメッソッドが使えませ...
-
SQLスクリプトを自動生成する方法
おすすめ情報