Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1631 / 2272 ツリー ←次へ | 前へ→

【6207】カラム名の変更 SE菊地 05/9/7(水) 15:08 質問[未読]
【6217】Re:カラム名の変更 小僧 05/9/7(水) 17:09 発言[未読]
【6220】Re:カラム名の変更 たん 05/9/8(木) 8:22 回答[未読]
【6222】Re:追記 たん 05/9/8(木) 9:16 発言[未読]

【6207】カラム名の変更
質問  SE菊地  - 05/9/7(水) 15:08 -

引用なし
パスワード
   いつも参考にさせていただいています。

ACCESSにて
OracleやSQLServer等のデータベースのテーブルを「テーブルのリンク」で読み込んだ場合、

読み込んだテーブルのカラム名を
こちらで作っておいたCSVファイル等に書き出したカラム名に
変更するという処理はアクセスVBで可能ですか?

【6217】Re:カラム名の変更
発言  小僧  - 05/9/7(水) 17:09 -

引用なし
パスワード
   ▼SE菊地 さん:
こんにちは。

結論から言うとリンクテーブルのフィールド名を変える事は
できないかと思われます。
(当方が知っている限りですので、やり方はあるかもしれませんが)

ですが、フィールド名を変えたい、という理由によっては
代換案があるかと思われます。

【6220】Re:カラム名の変更
回答  たん  - 05/9/8(木) 8:22 -

引用なし
パスワード
   小僧さん、SE菊地さん おはようございます。

>結論から言うとリンクテーブルのフィールド名を変える事は
>できないかと思われます。
>(当方が知っている限りですので、やり方はあるかもしれませんが)
>
>ですが、フィールド名を変えたい、という理由によっては
>代換案があるかと思われます。

昨日、一度書き込みしましたが、あまりに稚拙(な回答)だったので消しました。(^^;)

代替するのであれば、基本的にクエリを用意し、そのクエリ内で
フィールド単位で別名を記述するのが良いかと。

ただ、csvファイルにある内容ということになると、
csvファイルの内容に合わせた形で動的にクエリを作成するという形を
取るしかなく、それを実現するには、そのアクションを起こす為のフォーム及び
コマンドボタンが必要になると思われます。

つまり、フォーム上で、リンクテーブル名と、名前変更用csvファイルとを
選択、そしてファイル名表示する機能と、コマンドボタンを押し、
csvを読み込み、読み込んだ内容を元に、CreateQueryDef等でクエリを動的に
作成する所までを作りこまないとダメそうに思えます。

当然、csvファイルには、変更前フィールド名、変更後フィールド名が1対1で
表記されており、リンクテーブルにフィールド名がきちんとある事、
そして、csvファイルの記述内容が間違っていた場合のエラー処理を
どうするか等、きちんと決めておく必要があります。

毎回リンクテーブルの内容が違うのならいざしらず、1回こっきりの処理なら、
クエリ作成して、手動で別名付けている方が速いと思いますがね。

どちらにしても、名前変更はクエリ上で別名として処理させ、元テーブルは
一切いじってはいけません。
(当然、プログラム内で参照するのは別名設定したクエリ)

【6222】Re:追記
発言  たん  - 05/9/8(木) 9:16 -

引用なし
パスワード
   >当然、csvファイルには、変更前フィールド名、変更後フィールド名が1対1で
>表記されており、リンクテーブルにフィールド名がきちんとある事、
>そして、csvファイルの記述内容が間違っていた場合のエラー処理を
>どうするか等、きちんと決めておく必要があります。

当然、フィールド数に差が生じた場合や、CSVに記述してある、変更するフィールド
名がAccessの名前付け規則に沿っているかどうかのチェックも必要でしょう。

あと、CSVファイルの記述順と、テーブル自体のフィールド並び順が異なっている
場合の対応も必要でしょう。

1631 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078242
(SS)C-BOARD v3.8 is Free