Accessからのソケット通信について

このQ&Aのポイント
  • Access2010(VBA)+BASP21を利用して別のアプリに対してテキストデータをソケット通信で受け渡す際の文字コードについて教えて下さい。
  • Accessから送信する際は、あらかじめUTF-8で保存されたテキストファイルを変数に読み込み、それをBASP21から送信していますが、送信する時に文字コードが変わっている?のかただしくデータを受け取ってくれません。
  • Accessからデータを送信する際に、確実にUTF-8にてデータを送信したいのですが、どのような方法があるでしょうか。
回答を見る
  • ベストアンサー

Accessからのソケット通信について

Access2010(VBA)+BASP21を利用して 別のアプリに対してテキストデータをソケット通信で受け渡す際の 文字コードについて教えて下さい。 まず、受け取る側のアプリはUTF-8でないと 受け取れない仕様となっております。 Accessから送信する際は、あらかじめUTF-8で保存された テキストファイルを変数に読み込み、それをBASP21から送信しているのですが どうやら、送信する時に文字コードが変わっている?のか ただしくデータを受け取ってくれません。 (アプリの受信ログを見ると、受け取ったデータが 一部文字化けしておりました) Accessからデータを送信する際に、確実にUTF-8にて データを送信したいのですが、どのような方法があるでしょうか。 ご存じの方、教えて下さい。宜しくお願い致します。

  • SOU48
  • お礼率35% (51/144)

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

>テキストファイルを変数に読み込み VBのステートメントで文字型変数に 読み込むとShiftJisに変換されます。 というか、ShiftJisだと見て処理され、 変換できないものは字化けします。 文字型変数を経由した時点でアウト です。 1.バイナリ型のI/Oにする 2.BASP21のBinaryReadを使う 3.ADODB.StreamのReadを使う などでバイト型配列に読み込まないと 正常に動作しません。

SOU48
質問者

お礼

ご回答有り難うございました。 >VBのステートメントで文字型変数に読み込むとShiftJisに変換されます。 これで納得がいきました。 実はアプリに渡したいテキストデータというのはXMLなのですが XMLの文字コード宣言部分はUTF-8になっている為、 変数に入れたデータの文字コードと、中身の宣言の文字コードが矛盾し 受け取るアプリ側でエラーになっていたようです。 XML内の宣言をShiftJISに変えた所、ばっちり動きました。 本当に有り難うございます。

その他の回答 (1)

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.1

VBが利用するUnicode形式は、UTF-8ではなく、UTF-16だったと思います。 バイナリで処理する必要があるのでは?

関連するQ&A

  • Access2010にてソケット通信

    Win7Pro+Access2010 にて業務システムを構築しています。 同一LAN内で10台~20台で使用しています。 Access2010から、別の業務アプリへソケット通信にて テキストデータを伝送したいと考えております。 (業務アプリはソケット通信でしかデータを受け取れないです) 2点質問があります。 (一つ目) Microsoft Winsock Control 6.0 (mswinsck.ocx) を 用いる方法が出てきたのですが、これはVB6Proが無いと ライセンス上使用できないのですよね・・・? この場合ライセンスが必要なのは開発者のPCだけでしょうか。 なお、他の端末はAccess2010ランタイムパッケージにて 稼働しております。 (二つ目) 上のmswinsck.ocxが使えない場合、他の方法としては 何があるのでしょうか。参考サイトなど含めて教えて頂けると 助かります。 ※VBAは理解できます。 宜しくお願い致します。

  • アクセス2007とアクセス2010について

    アクセスでテキストデータを取り込む際についてご質問がございます。 アクセス2010については、現在取り扱っている文字コードUTF8の テキストデータ及びCSVに関してはすべて取り込めるのですが アクセス2007に関してだけ取り込めないデータがあります。 その場合のエラーメッセージですが テキストインポートウィザード ExecuteTempImexSpec'メソッドは失敗しました'_WizHook'オブジェクト と表示され OKボタンを押すと インポートするときにエラーが発生しました。ファイルはインポートされませんでした と表示されます。 □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□ そのデータをそのままアクセス2010で対応するとインポート出来ます。 □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□ 話を整理させて頂きます アクセス2010 現在取り扱っている文字コードUTF8の テキストデータ及びCSVに関してはすべて取り込めます アクセス2007 現在取り扱っている文字コードUTF8の テキストデータ及びCSVに関して 取り込めないデータもあります ※因みにアクセス2007に関してはネット環境がありませんので ソフトやPCはアップデートはされません。 この現象についてなにか心当たりある方はいらっしゃいますか? どうぞよろしくお願いいたします。

  • ファイルを文字化けせずに開けるVBAコードを教えて

    アプリをダウンロードして、Excelファイルで開こうとすると文字化けします。 いろいろ調べたところ、一旦、テキストファイルで開き、 文字コードをUFT-8に設定して保存し、その後、Excelで開くと文字化けはしません。 毎週行いたい作業ですので、できればVBAコードで一発で文字化けせずに開けると ありがたいのです よろしくお願いします 補足:アプリはiphoneのCount Logというアプリです。 メールにファイルが添付されています。それを開くと文字化けしてしまうという話です。

  • メールの文字化けについて

    現在ACCESS2000(WIN98)で BASP21を利用してメールを受信して メールの内容を解析してデータベース化しているのですが、 メール本文が部分的に文字化けしてしまうことがあります。 BASP21に漢字コードを変換する命令があったのですが どのコードもうまく変換されませんでした。 ちなみにそのメール本文を新しいメールに貼り付けて 自分宛に送信して解析したら文字化けが起こりませんでした。 このように部分的に文字化けする原因はどのようなことが考えられるのですか。 またこの文字化けを直す方法を教えてください。 宜しくお願いしますm(_ _)m

  • mysqlのデータベースの文字コードの変換について

    mysqlのデータベースの文字コードの変換について教えてください。 テストサーバー環境で誤って文字コードUTF-8のデータベースを作成し、文字コードEUC-JPのデータを投入してしまいました。 それでもテストサーバー環境では文字化けせずにウェブアプリを表示できていましたが、テストサーバーのデータをエクスポートすると、テキストエディタで開いた時点で文字化けしています。 (文字コードはUTF-8、EUC-JPのいずれでも) もちろんそのデータを本番サーバーにインポートしても文字化けしてしまいます。 (データベース文字コードはUTF-8、EUC-JPのいずれでも) テストサーバーからデータをエクスポートする前に文字コードを変換することは可能でしょうか? もしくは他に問題を解決する方法はありますでしょうか? ご存知の方がいらっしゃいましたら教えてください。

    • ベストアンサー
    • MySQL
  • latin-1 (ISO-8859-1)への変換

    教えてください。 latin-1 (ISO-8859-1)への変換になると思いますが、Amazon等にテキストデータを送信するのですが、UTF-8では文字化けします。 artículosなどのaやiの上にダッシュがある文字です。 サーバ側はlatin-1 (ISO-8859-1)で送信するように言っているのですが、そのテキストを作るやり方が不明なので、ご教授願います。 artículosをUTF-8で送信するとartículosのように文字化けします。 アスキーコードが異なるからだと思いますが、どこかのサイトやエディタで変換できますでしょうか? さくらエディタなどは使えなかったので、出来ればWindows環境で変換できる方法をご教授頂きたいです。 よろしくお願いします。

  • アクセスのデータ取り込みについて

    UTF8のテキストデータを取り込みする際 データが10フィールドあるとします。 1レコード目の1フィールド目から9フィールド目までデータがあり、10フィールド目はNULL 2レコード目の1フィールド目から10フィールド目までデータがある場合 テキストデータ自体9フィールド目までしか取り込めない場合がございます。 こういったレコード終端がNULLの場合とNULLでない場合に取り込む際 注意することはありますでしょうか?? 因みにデータを取り込む際、文字コードを指定しフィールドの データ型を変更する際 存在するフィールドに比べアクセス上ではフィールド数が足らなくなるのですが・・・ どうぞよろしくお願いします。

  • VBAでUTF-8テキストファイル作成したい

    VBA,文字コードなどにあかるくない初心者です。 VBAを利用して、エクセルのとあるセルに記載されている文字を UTF-8形式でテキストファイルに出力させたいと考えています。 (多言語対応のため・・・、韓国語や中国語でセルに記載された文字を  UTF-8形式でテキストファイルに文字化けしないよう出力させたいためです。) どのように実現が可能か、いくつか検索をしてみましたが 難しくてわかりませんでした。 VBAのサンプルコードを教えていただけないでしょうか。 もしくは、初心者でもわかりやすい実現方法が記載されたサイトを教えていただけないでしょうか。 よろしくお願い致します。 ※今文字コードを意識せずに下記のようなVBAを書いています。(簡略化して記載しています。) Sub test() Open "C:\Sample\Data.txt" For Output As #1 'ファイルを新規作成 'データ書き込み Print #1, Cells(1, 1) Close #1 End Sub

  • Access97の文字化けについて

    Access97で作成したテーブル名、フィールド名、データ型(テキスト、メモ、数値・・・)の日本語部分が突然、 文字化けしてしまいました。 書き込んでいるデータは文字化けしていません。 このDBにアクセスしているアプリは正常に動作しているので、使用しているパソコンのAccess97の表示の問題だと思いますが原因がよくわかりません。 Access97のツール--->オプションでFONTを変更しても直りません。 Access97の再インストールも行いましたが直りませんでした。 どなたか原因がわかるかた、ご教授願います。

  • ACCESSから、メール送信を行いたいです

    ACCESS(2007)から、新規にデータが登録された際に、そのタイトルと 本文の内容を含めた、メールを送信したいです。 BASP21を組み込み、それ自体メールを送信することはできたのですが、 登録フォームの内容と、送信内容をどう組み合わせればいいのか、わかりません。 記述方法など教えていただけないでしょうか

専門家に質問してみよう