ACCESSのテーブルのフィールドの型を、外部から変更したい
解決済
回答 3
投稿
- 評価
- クリップ 0
- VIEW 5,148
不真面目な質問に感じられるかもしれませんが、よろしくお願いします。
自分で作った「日報管理.accdb」というファイルがあります。
ただ、すでに自分の手元になく、使う人に渡してしまっています。
このファイルの中の「tblBasic」というテーブルの、「交通費詳細」というフィールドのデータ型を、本来はテキスト型にしなくてはならなかったのを、間違って通貨型にしてしまったことに気がつきました。
このままでも月末までは不具合が発生することはないのですが、早急に、使用者に気づかれずに、このフィールドのデータ型を修正したいです。
市販ソフトなどでよくある、「修正パッチ」のように、何らかの修正処理用のファイルを使用者に渡し、一度だけ実行してもらうことで、修正を完了させるようなことってできないでしょうか?
要約すると、やりたいこととその条件は ↓ の通りです。
- 対象ファイルは、日報管理.accdb
- 対象ファイルの場所は、おそらく、使用者のPC(WindowsのパージョンもPCの名前も不明)のデスクトップの上の何らかのフォルダ内(フォルダの名前不明)
- 対象テーブルは、tblBasic
- 対象フィールドは、 交通費詳細
- 修正したいのは 通貨型 → テキスト型
- 使用者には「ただのバージョンアップです」とだけ知らせ、こんなマヌケなミスの修正だとは知らせたくない
- 修正したいのはやまやまだけど、それ以上に、元のファイルを壊してしまうことは絶対に避けたい
- 使用者がその修正用ファイルを実行後に捨てず、後日違って再度実行しても問題ないようにしたい
以上です。
ACCESSファイルの中を編集する以上、VBAを使うべきなんでしょうか?
なにかこういう場合の定番スクリプトとかあるんでしょうか?
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+3
ALTER TABLE ステートメントを使用して修正はできます。
上記リンク先にはVBAのサンプルもありますので、vbsで行うとかの方法も考えられます
以下サンプル。
ALTER TABLE tblBasic ALTER COLUMN [交通費詳細] TEXT(255)
ですが、アクセスを開いてテーブルの属性を変更するだけなので、手順書を作成して使用者にお願いするのが一番労力が少ないし、誤りも少ないと思います。
それよりも、属性を変更した場合、型のアンマッチでエラーになる場合が多いですが、テスト済みですか?
そちらの方が気になります。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+1
「不真面目な質問に感じられる」ことはないですが、
不真面目な方法を1つ。
似たような経験があって、しかし旅費等の問題があるため
回収して改修できない”文章”があった。
私(およびの部下)の対応:
リモート操作ツール、確かWindowsサーバの
リモートPC操作ソフト(VNCソフトに相当)を
そのPCに入れてもらい、勝手な口実を作りアクセス。
そして本来の目的のブツを
改修or回収、交換していました。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+1
「マヌケなミス」をした自覚があるのに、怒られないためか恥をかきたくないのか知りませんが、誤魔化す方法を人に聞いているんですよね?
よく技術者のため質問板でこんな技術者として恥ずかしい質問ができたものです。
ネット上なら恥ずかしいとも思わないですか?技術者としての自覚はありますか?
目的としていることは、saziさんからのアドバイスで実現できると思います。
単にALTER TABLEを流すだけでは再利用された時にエラーがでてしまうので、エラートラップも必要でしょう。
※項目定義の変更なので繰り返してもエラーにはならないかも。
目的のものができたとして、それを「ただのバージョンアップ」と偽って実行させるのですよね。
それで怒られたり恥をかかずに済むのかもしれませんが、それが何を生むかわかりますか?
「マヌケなミスをしても誤魔化せる」という経験が積まれるだけですよ?
失敗したときにちゃんと苦水を飲まなければ、また安易に同じ失敗を繰り返します。
そもそも「ただのバージョンアップ」って何でしょう?
私なら訳のわからないバージョンアップ版がいきなり配布されたら、何が変わったのか気になって仕方ありません。
もし項目の型を変えたことで意図せず動作が変わっているところがあったらどう対応するつもりですか?
また嘘を重ねて「ただのバージョンアップ」で誤魔化しますか?
人間なのでミスをすることは誰にでもあると思います。
大事なのはミスとどう向き合うかです。
私なら誠実に謝罪して「バグフィックス」としてリリースします。
そんな恥は二度とかきたくないから次回から注意するようにもなると思うのですが、どう思われますか?
厳しい言い方になりましたが、技術者としては配布モジュールの改善だけでなく意識改善もされたほうがいいと思いましたのであえて言わせていただきました。
失礼な言動についてはお詫びいたします。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.22%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
defghi1977
2018/04/18 22:04
無駄なプライドは捨てて, 素直に瑕疵が有ったことを明かしてファイルを修正すれば(してもらえば)よかろうと. (もちろんバックアップを前提に)