- ベストアンサー
アクセスでデータ型を一括変換したいのですが。
アクセスで質問です。勤務表から給料計算を自動でしたいのですが、勤務内容を言葉で記載しているので(テキスト型なので)計算することが出来ません。更新クエリなどを利用して特定の言葉を数字に変換することは出来るのでしょうか?また手動で数字に変更してみたりしたのですが、結局データ型がテキストのままなので毎回データ型を指定しなおさないといけませんでした。もとのテーブルはテキスト型から変更する訳にはいかないので、給与計算用に再度テーブルを複製して、この新しいテーブルのデータ型のみ一括で数値に変換したいのですがどうしたらいいでしょうか。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
もし、「勤務内容」が「早番」「日勤」「遅番」といったモノなら、 SWITCH([勤務表テーブル]![勤務内容]="早番",1,[勤務表テーブル]![勤務内容]="日勤",2,[勤務表テーブル]![勤務内容]="遅番",3) などとすれば 早番→1 日勤→2 遅番→3 と変換可能です。 或いは、別テーブルに勤務内容とコードの対応表を作っておき、 勤務表テーブルとこのテーブルを金内容フィールドとリンクさせて 追加クエリかテーブル作成を作成すればできます。
その他の回答 (4)
#4です。入力ミスがありました。下から2行目です。 誤: 勤務表テーブルとこのテーブルを金内容フィールドとリンクさせて 正: 勤務表テーブルとこのテーブルを勤務内容フィールドでリンクさせて
- imogasi
- ベストアンサー率27% (4737/17069)
文字列(型)の数字を数値化するのではないのでしょう。 いわゆる「コード化」(分類)ということではなのではないのですか。 >特定の言葉を数字に変換することは出来るのでしょうか 例えば、社員ー>11、派遣ー>21 パートー>31といった。 もしそれなら。そのことが質問表現では、はっきりしませんよ。 >葉で記載している・・というが それと、「社員」だけがそのフィールドにあるのか、「社員」のほかに前後に、何か日本語がくっついているのか。それで処理の難しさがだいぶ変わると思う。
補足
なるほど。すみませんでした、回答いただくにも説明不足でしたね。ちょっとよくわからないのですが、勤務表には縦軸にスタッフの名前が並び、横軸が日付になっています。勤務内容が早番、遅番などと記載されている状態ですが、ちゃんと説明出来てなかったですね。
- CHRONOS_0
- ベストアンサー率54% (457/838)
元のテーブルを変更することが出来ないのであればクエリを作ればいいですね 元のテキストが数字だけのものなら関数で型変換できます(Clng,CInt) 数字の後ろに単位などの文字が付いているものでも大丈夫ですよ(Val)
補足
ありがとうございます。変換関数を利用すれば出来そうですね。まだアクセス素人なので関数やVBAが使いこなせないので難しそうですが、頑張ってみます。
Q、更新クエリなどを利用して特定の言葉を数字に変換することは出来るのでしょうか? A、出来ます。 「おい、こんな処理は可能かい」と支店の店長が時々電話してきます。 面倒だなー====>出来ません! 機嫌が良い日==>出きるとも! そりゃー、アクセスのクエリは自作関数を組み込めますので大抵のことはできます。 「するかしないか?」、「それが最善か否か?」を抜きにすりゃ、答えは「出来ます」。 しかし、多分、英語を日本語に翻訳するような関数を作成することになるでしょうね。 >この新しいテーブルのデータ型のみ一括で数値に変換したいのですがどうしたらいいでしょうか。 <英語を日本語に翻訳するような関数>も質問文のニュアンスからの仮定。 ですから、情報不足ですね。
補足
なるほど。すみませんでした、回答いただくにも説明不足でしたね。
お礼
ありがとうございます!この方法で出来そうです!難しい関数は必要ないみたいですね。頑張って作成してみます。ありがとうございました。