• 締切済み

AccessでUTF-8のtxtデータを出力

Shift-JISの.xlsデータをAccessにリンクして、UTF-8・.txtでエクスポートすると、ある項目だけ0→00, 11704→0, 45218→A2 と出力されます。 不思議なのは同じように「0」と入力しても00ではなく0と、あるいは入力した数字そのまま正常に出力されている項目もあるのです。 また、いろんなデータ型関数をためしてみましたが(CLng,CInt,CStr,Len(文字数取得してその文字数で指定して表示),CByte)Access上の表示は正しくとも、出力すると必ず先述のような形になっています。 なんとかして入力した数字をそのまま出力する方法はないでしょうか? 使用環境は OS:win7 Ver:Access2003 です。

みんなの回答

回答No.1

Access,Excelどちらでもよいので VBAを使用して文字コード変換してみて テキストデータを出力してみてはどうでしょう 文字コードをS-JISからUTF-8に変換する http://cats.yuki-mura.net/sjisutf.html

参考URL:
http://cats.yuki-mura.net/sjisutf.html
KOUKOU73
質問者

お礼

すみません、自己解決してしまいました。 出力の設定を一からしなおすことで解決しましたが、こういう現象の理由はわかりませんでした。 また、txtの状態ですがコード変換も行った上での現象なので、本当によくわかりません。。 回答ありがとうございました。

関連するQ&A

  • ACCESS2003でのEXCEL出力について

    ACCESS2003を利用しています。OfficeLinksの「EXCELに出力」を実行した時に、出力項目の中に長文(約200文字)の項目があります。その項目(データ型:メモ型)は出力したEXCELファイルを見ると、文書が途中で切れてしまいました。どの様な操作で全て文字を出力させるには、どの様な操作が必要でしょうか。

  • ACCESSデータをEXCELに出力したい。

    ACCESSでフィルタを使って複数項目(空欄の箇所がある場合もあり)を抽出したデータ(サブフォームに表示)だけをEXCELに出力したいのですが、下記のコードではすべてのデータが出力されてしまいます。 ------------------------------- Private Sub 出力_Click() DoCmd.OutputTo acOutputQuery, "Q_出力", acFormatXLS End Sub ------------------------------- 情報が少なかったらすみません。 よろしくお願いいたします。

  • データ一部分の合計を求めたい

    環境:vb6,access97 質問内容: tableA (項目1,数字1,時間1) (項目2,数字2,時間2) (項目3,数字3,時間3) ・ ・ ・ (項目n,数字n,時間n) データ型: 項目は、テキスト 数字は、小数点2桁まで 時間は、hh:mm このテーブルに対し、一部分の合計を取りたいですが、 sql文の書き方を教えていただきませんか?、 別の方法なら、どんな方法がありますか? 要は、数字小数点以下の合計:       sum(cint(right(数字,2)) 時間mmのみの合計:        sum(cint(right(時間,2)) を求めたいです。よろしくお願いいたします。

  • AccessのレポートからのExcel出力

    当方、Access初級者です。 Access2000ですが、作成したクエリからレポートを表示させ、Excel出力をしたところ列の並びがレポートに表示されている順と変わってしまいます。 クエリの抽出結果からExcel出力すると問題ありません。 レポートはウイザードを使用して作成し、クエリの項目全てがクエリの項目順に表形式に並んでいる簡単なものです。 Excel出力は、「ツール」→「Office Links」→「Excelに出力」で行っております。 原因と解決方法をご教授下さい。

  • うまく出力できません

    下記のプログラムは、英語の文章をEOFが現れるまで繰り返し標準入力から読み込み、文字数(空白、コンマ・ピリオドなどの記号を含む)、「th」または「Th」の出現回数を出力し、テキスト中の「th」または「Th」をすべて「++」で書き換えたものを出力するプログラムです。(動作確認の際にはリダイレクションを用いてファイルから読み込むようにする) #include <stdlib.h> #include <stdio.h> #include <string.h>      void chomp(char *buf) {   int len = strlen(buf);   if (len > 0 && buf[len - 1] == '\n')   buf[len - 1] = '\0'; } int main(void) {   char buf[256], *p;   int len, count, count2;   count = count2 = 0;   printf("英文を入力して下さい.\n");   while(fgets(buf, 256, stdin)) {    chomp(buf);    len = strlen(buf);    count += len;    p = buf;    while(*p) {     if (strncmp(p, "th", 2) == 0 ||     strncmp(p, "Th", 2) == 0)     {      p[0] = p[1] = '+';      p++;      count2++;     }     p++;    }    printf("%s\n", buf);   }   printf("文字数:%d\n", count);  printf("thの出現回数:%d\n", count2);  return 0; } 下記は実行例です。 英文を入力してください。 We have seen o++er ++ings matter. But, ++at is ++e ++ing ++at matters. 文字数;69 thの出現回数:6 といったようになるのですが、これを下記のような実行例にしたいのですがどうすれば良いのかわかりません。どなたか教えていただけないでしょうか? 英文を入力してください。 We have seen other things matter. But, that is the thing that matters. ^D We have seen o++er ++ings matter. But, ++at is ++e ++ing ++at matters. 文字数;69 thの出現回数:6 (*注:「^D」はEOFのキーボードからの入力を意味し、「Ctrl」キーを押しながら「D」キーを押すことで入力される。)

  • Accessでの質問

    会社でAccessを使用して入力フォームを作成しております。未だ初心者故簡単なことが分かりません。組み込み関数Switchを使用して計算し、計算された数字はフォームには表示されますが、テーブルには表示されずデータとして使えません。どのようにしたらテーブルに表示されるのでしょうか。 また、数値で入力した際文字数の限定は出来ませんか。例えば5文字以上、以外もエラーとなり5文字のみ入力可としたいのです。 宜しくお願いいたします。

  • ACCESSで出力したCSVをSQL2005へ取り込む時

    いつもお世話になっております。 ACCESS(2003)から、クエリの内容をマクロの「区切り記号付きエクスポート」を利用して出力したCSVファイルを、SQL(2005)にインポートで取り込もうとする際なのですが、SQL(2000)の頃は問題なく取り込めた様式なのに、SQL(2005)になってからはエラーとなり取り込むことが出来なくなりました。 色々やってみて、文字列を囲う「””」が原因のようなのは分かったのですが、いちいち「””」取ってから取り込むのも手間で何とかできないかと考えています。 そこで質問なのですが、 (1)ACCESS(2003)からCSVを出力する際、「””」をうまく取る方法は無いでしょうか? (文字データの中には数値の頭に「0」を入れたくてわざと文字列に変換しているのもあるので、データの形はそのまま保持したく思います。) (データが大きくEXCELに貼り付けるのは無しです。また諸事情からリンクも無しです。) (2)或いはSQL(2005)の設定の方で上記のようなデータをうまく取り込めるように出来るものでしょうか? 以上、つたない文章で申し訳ありませんが、お知恵をお貸し下さい。 以上、よろしくお願い致します。

  • Accessのデータ変換方法

    かな漢字、カタカナ、アルファベット、数字の含まれるデータフィールドがあります。 カタカナは全角のままで、アルファベットと数字を半角に変更する方法はありますでしょうか。 データの文字数、カナ→数字などの順は統一性がありません。また、スペースも含まれていますがスペースも削除した状態が望ましいです。 ご存知の方がいましたら教えてください。

  • accessからのデータ参照について

    ご存知の方がいたら教えて下さい。 【動作環境】 OS:WINDOWS SERVER 2003,WINDOWS XP ACCESS:ACCESS2000 ORACLE:9i(9.2.0.1.0) 1つのACCESSファイルにシステム部分とデータ部分が存在しているACCESSのシステムを「システム部分はACCESS」「データ部分はORACLE」という形にしました。 ACCESSで管理していたデータをORACLEへ移行して、データ自体は簡単に移行が行え、ODBCでリンクをしてデータを参照できる状態にしました。 ここまでは、良かったのですが移行を行ったACCESSのテーブルに1レコード240ぐらい項目のあるテーブルが存在してリンクテーブルを開くことができません。 クエリーでも項目を選択した場合は参照できますが、全てを表示させようとするとダメです。 パススルークエリ等も試してみたのですが、いまいちうまくいきません。 どうにかして、1レコード240ほどのORACLEデータをACCESS側で参照することができないでしょうか? 説明が分かりずらく申し訳ありません。ご質問いただければ補足を致しますので、よろしくお願いします。

  • データベース入力システムについて(VB & ACCESS)

    業者にACCESSとVisual Basicを使った簡単なデータベース入力/修正/出力システムを作成してもらいましたが、現在、いくつかの改善要求をしているのですが、改造が大変と言われて困っています。 どの程度、大変なものなのか、手段等があれば教えて下さい。 なお、当方は、ACCESS、VBとも作成経験は多少あります。 メインフォームは、VBで作られており、いくつかのボタンとACCESSでいうデータシートフォームがついており、全データの表示を行っています。このデータシートのうちの1項目を選択して、あるボタンを押すと、単票入力フォームのようなものが表示され、1データの入力、修正ができます。 改善要求は下記です。 (1)メインフォームで修正できないか? ACCESSであれば、通常、修正することは、出来ると思うのですが、VBでは、簡単に行かないと言われていますが、そうなのでしょうか?設定を変えるだけで済まないのでしょうか? (2)メインフォームで、アイテム毎にソートしたい。 これも、ACCESSであれば、通常、できると思うのですが。 (3)メインフォームで、複数項目を選択する時、CTRLキーを押しながら、複数項目選択は可能ですが、SHIFTキーによる連続する項目の選択が出来ない。20項目あると、一つずつ、20個選択するのは大変。 (4)メインフォームで、項目を選択、ドラッグして、並びを変えたい。 現在は、各項目の左隣に、項目数分、ボタンを追加して、ボタンを押した順番に並ぶように考えています。 アイテムを一つ追加して、ボタンを押した順番に1,2,3、・・・と追加したアイテムに数値が入るようにして、 次に立ち上げた時、この数値の順に並ぶようにします。 何か良いアイデアはないですかね? 一つずつでも結構ですから、ご回答頂くとありがたいです。