ベストアンサー vbaでクエリーしたら文字化けた 2014/09/10 18:46 画像を御覧ください、 データベースがutf8で、クエリーがvbaから投げるからunicodeになっているせいかな? 対策はどうすればよいでしょうか… 画像を拡大する みんなの回答 (1) 専門家の回答 質問者が選んだベストアンサー ベストアンサー kamikami30 ベストアンサー率24% (812/3335) 2014/09/10 22:43 回答No.1 データベースがutf8で、クエリーがvbaから投げるからunicodeになっているせいかな? まずはこれを自分で試してから質問したら良いと思います。 質問者 お礼 2014/09/11 10:24 自己解決しました。 「MySQL ODBC 5.2 ANSI Driver」を「MySQL ODBC 5.2 Unicode Driver」に変えたところ、問題が解消されました。 ありがとうございました。 質問者 補足 2014/09/11 09:12 kamikami30様 見てくれてありがとうございます。 実はいろいろ試しましたが、うまく行きませんでした。 試したことは: (1)ADODB.Streamでクエリー自体をUTF8に変換したり、クエリー結果をUnicodeに変換したり試しました。 (2)"SET NAMES = Unicode"を投げたり見ました (3)DB接続文字列に"CHARSET = Unicode;"とか追加して見ました。 どれもうまく行きませんでしたので、ここで質問出しましたわけです。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発Visual Basic 関連するQ&A アクセスVBAでテーブル作成クエリを作れる? アクセス97です。 テーブル作成クエリで 他のmdbに テーブルを作成してるのですが 他のmdbのフルパスが固定でなく可変です。 テーブル作成クエリの 他のデータベース名を VBAで変更出来るでしょうか? もしくは VBAでテーブル作成クエリを 作成出来るでしょうか? ACCESS2000 クエリをテーブル化するマクロ(VBA)おしえてください こんにちは。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1801262 の質問者です。コレの続きを教えてください。 まとめますと、クロス集計クエリや、ユニオンクエリをそのまま扱うと、データや計算式がからまってエラーになったり、処理が遅かったりするので、テーブル化してからいじりたいのです。 マクロは データベース変換 変換の種類…インポート データベースの種類…MS ACCESS データベース名…L:\パス\パス\ファイル名.MDB オブジェクトの種類…クエリ オブジェクト名…クエリ名 変換先名…テーブル名 テーブル構造のみ変換…いいえ としてみましたが、クエリとしてインポートされてしまいます。 いちどCSVか何かでエクスポートしてから、テキスト変換するという手もありますが、もっとスマートな方法がありましたら教えてください。 VBA も勉強中なので、VBAでお答えいただいてもけっこうです。 よろしくお願いします。 VBAからADOを使ってクエリのクエリを作成したい VBAからADOを使ってクエリのクエリを作成したい ADO初心者です。 VBA側で入力された引数を元に、ADOを使ってあるmdbファイルにあるクエリ(1)の抽出条件を変更した上で(抽出条件はVBA側の引数によって毎回変わります)、クエリ(1)の中から重複したレコードを抽出するクエリ(2)を作成したいと考えています。クエリ(1)並びにクエリ(2)をそれぞれ単独で作成する事は出来たのですが、クエリ(1)の結果を反映したクエリ(2)を作成する方法が分かりません。 なお、クエリ(1)の抽出条件変更は、RecordsetオブジェクトのOpenメソッドを使って行っています。何となくこれはレコードの更新は出来てもクエリの更新は出来ないような気がしており、それが原因のような気がしているのですが、クエリの更新をしたい場合はどうすればよろしいでしょうか? Access2002でクエリからVBAへの読み込み 10個程前の質問で「Access2000でテーブルをVBAからテーブルを読み込む方法・・・」というのがありますが、私も同じ状況で3日程悩んでいたのですが、この記事を見て指示通りで解決しました。 本題の私の質問ですが、テーブルをVBAに読み込めるのでしたらクエリもVBAへ読み込めるのでしょうか? (1)クエリ→VBA→クエリ (2)クエリ→VBA→テーブル 記述の仕方を教えてください。Access2002です。 VBAで文字列を抜き出す 添付画像左のデータベースを基にシートを追加して、そのシートに添付画像右のような結果をVBAで求めたいです。 ご教授宜しくお願い致します。 テーブルごとに文字コード指定 データベースの文字コードをUNICODEにしたいのですが、 レンタルサーバーを使っており、データベースはEUCのものしか使えません。 そこでテーブルごとに文字コードを指定して作成しようと思ったのですが、 うまくUNICODEのテーブルができません。 以下の記述でEUCのデータベースにUTF-8のテーブルを作成しています。 どこか間違っていますでしょうか? ------------------------------ create table テーブル名 ( id integer, name varchar(120) ) CHARACTER SET utf8; ----------------------------- お詳しい方がおられましたらご回答下さい。 宜しくお願い致します。 Access VBA 全クエリ 繰り返し Access VBAについてお尋ねさせていただきます。 Access VBAを利用して、以下の繰り返し処理を実行したいです。 (1):レコードの有無にかかわらず、すべてのクエリの名称だけを配列に取得する繰り返し処理 (2):レコードの有無にかかわらず、すべてのクエリを開き、各クエリのレコード件数を配列に取得する処理 どのように記述すればよろしいでしょうか? 文字化けです。 Windows Meです。 OCN翻訳サービスの画面で文字化けします。 唯一、読める部分に《ページが正しく表示されない場合は、Unicode()UTF-8)フォントをインストールしてご覧ください》とあります。 そこをクリックすると、《フォント表示に問題がある場合は、ページ上で右クリックをし、「エンコード」→(必要に応じてその他の項目)「Unicode(UTF8)」を選択します。それでも改善されない場合もしくはUnicodeが選択リストの中にない場合は、Unicodeフォントをインストールする必要があります。(ダウンロードもしくはOffice2000に付属)。》とありますが、Office2000をインストールしてあるのに文字化けがおきます。 また、画面上でエンコードを見ると、Unicode(UTF-8)となっています。 どなたか、解決法をお教えください。 VBAで取得した値を更新クエリーの値にしたい MS-Access2000を使っています。 下記の方法で、ファイルの最終保存日を取得しているのですが、その日時をクエリーを使ってデータベースに登録しようと考えています。 しかし、VBAで取得した値をどうやって、クエリーに反映させてよいか解りません。 すみませんが、方法を教えてください。よろしくお願い致します。 1:フォームに「Filename」というテキストボックスを作り、フルパスでファイル名を入力します。 2:VBAを起動して、内部で FileDateTime関数で日時を取得します。 jikan = FileDateTime(Filename) 3:更新クエリーを使って、この「jikan」の値を「T_main」テーブルの「時間」という項目に登録したいのです。 3番の方法が解りません。よろしくお願い致します。 Accessのクエリ画面のリクエリーの仕方について Access2003です。宜しくお願いします。 VBAでクエリを作成・削除しているのですが、 作成するとデータベースにはまだ表示されず、 F5(ファンクションキー)を押してリロードさせると表示されます。 (削除はVBAで処理するだけでデータベースからも消えています) 作成した時もVBAのみでちゃんと表示されるように リフレッシュ?リクエリー?させたいのですがやり方がわかりません。 ご存知の方宜しくお願いします。 phpMyAdminで文字化け MySQLを3.27→5.0にしました。 PHPからデータベースに書き込むと、3.27のときは普通に書き込めたのですが、 5.0になったら文字化けしてしまいます。 コードは全てUTF-8で統一しています。 phpMyAdminは $cfg['DefaultLang'] = 'utf-8'; $cfg['DefaultConnectionCollation'] = 'utf8_unicode_ci'; $cfg['Lang'] = 'utf-8'; $cfg['DefaultCharset'] = 'utf-8'; と設定をしています。 どのようにすれば文字化けがなくなるのでしょうか? VBAでUnicodeしか存在しない文字の判定について VBA初心者の質問ですが、宜しくお願いします。 エクセル上にUnicodeしか存在しない文字が含まれた文字列を入力するとします。 VBAでその文字列に、Unicodeしか存在しない文字が入力されているかどうかの判定をするにはどのようにしたらいいでしょうか? また、その文字列(Unicodeしか存在しない文字が含まれる)のバイト数を正しく取得するにはどうしたらいいでしょうか? アクセス2000でVBAを使ってクエリを実行したいのです Access2000でVBAを使っています。 Docmdでクエリを実行させたいのですが、 DoCmd.OpenQuery stDocName1, acNormal, acHidden とするとクエリの実行結果が表示されます。 クエリだけ実行されて実行結果を非表示にする方法は ありますでしょうか? Form1のコマンドボタンを押下後、クエリが実行されて 別のFormにデータ表示させたいので、なるべくクエリの実行結果を表示させたくないのです。 よろしくお願いいたします AccessのVBAで、パラメータを使用したクエリ お世話になります。 Access2000のVBAで質問させてください。 現在、下記の様な状況です。 ・「テーブルA」がある。 ・「テーブルA」の"番号"が"1"のものだけを抽出する「抽出」クエリを作成 ※クエリのデザインビューで"1"を指定するのでなく、 VBA上で、パラメータとして"1"を指定したい 1ではなく、2に変わる事もあるため、VBAで操作。 ・結果をExcelに書き出したい そこで、いろいろなサイトを見たのですが、 ・VBAでパラメータを使用したクエリを作成 ・Excelに書き出し の2つの内容が別々に記載されており、 私の力では、別々で作成はできるのですが、 ・VBAでパラメータを使用・設定したクエリをExcelに書き出し する事はできませんでした。 本当に勝手で申し訳ございませんが、 ・VBAでパラメータを使用・設定したクエリをExcelに書き出す ソースを頂けないでしょうか? 「××と○○を組合わせればよい」などの、一部を抽出したコメントは、 不要ですので、本当に申し訳ございませんが、 ソースレベルでご返信頂ければと思います。 ※一部を抽出したコメントは、ネットで見たのですが、結果、 目的を達成することはできませんでした。 お手数で申し訳ございませんが、なにとぞ宜しくお願い致します。 ※何度ひつこい・勝手ですみませんが、ソースレベルでの 回答のみお願いします。 WEBクエリを処理していくVBAについて 初めまして。 ExcelのVBAについての質問です。 WEBクエリを用いて、データを回収したいのですが まだVBAを勉強したてで、作りたいものがあるのに 作れず困っています。 sheet1 A列 B列 あああ http://aaaaa.co.jp/aaaa.html いいい http://aaaaa.co.jp/bbbb.html うううう http://aaaaa.co.jp/bbbb.html というものがあり このB列のURLを上から順番にWEBクエリによってデータを得て 「新しいシート」に貼り付け この新しいシートのシート名を、A列の対応する行の名前で順番に付けていきたいです。 aaaa.html → 「あああ」シート bbb.html → 「いいい」シート という感じです。 この処理を何回か続けていくVBAを教えていただきたいです。 宜しくお願い致します。 Access VBA内でのクエリの紐付け お世話になります。 Accessにて、ローカルに12個(月毎)にクエリを作成し、そのらのクエリを紐付けてテーブルを作成しようとしています。 しかし、できればローカルにクエリを作成したくないので、VBA内で仮想?にクエリを作成し、それらを紐付けて最終的にテーブルを作成したいと考えています。 VBAのイメージ的には以下のような感じです。 フォーム上のボタンがクリックされた際に、 MySQL1 = 1月分の選択クエリ MySQL2 = 2月分の選択クエリ MySQL3 = 3月分の選択クエリ ・ ・ MySQL11 = 11月分の選択クエリ MySQL12 = 12月分の選択クエリ MySQL13 = 上記12個の選択クエリを紐つけたテーブル作成クエリ(tempを作成) DoCmd.RunSQL MySQL13 'tempが作成されたら、そのテーブルをソースとしたレポートをOpen DoCmd.OpenReport "年間実績" 以上です。 それぞれの選択クエリを、 Set RS0 = DB.OpenRecordset(MySQL0) Set RS1 = DB.OpenRecordset(MySQL1) のようにして、MySQL13のテーブル作成クエリで、RS0、RS1を使用すればよいかと思ったのですが、『入力テーブルまたはクエリ”RS0”が見つかりませんでした。そのテーブルやクエリが存在していること、または名前が正しいことを確認してください。』と表示され、うまくいきません。 そもそも、上記のように仮想でクエリを作成し、それを紐付けてテーブルを作成することは可能なのでしょうか。よい方法がございましたらご教授願います。 以上、宜しくお願い致します。 Excel VBAでWebクエリ更新 VBA初心者です。 Excel VBAで、Webクエリを更新させ、取得したデータを同じBook内の別のSheetに コピーさせたうえで、データのソート等を行いたいと考えています。 上記の操作をマクロで記録し、走らせてみると、Webクエリのデータ更新(取得)が 完了する前に、それ以降の操作に進んでしまいます。 Webクエリのデータ更新(取得)が完了してから、次の操作に進ませるためには、 どのようにすれば良いでしょうか? よろしくお願いします。 Accessのパラメータクエリを他のクエリから呼ぶ VBAで日付を指定してSelectするクエリなのですが、同じ処理をたくさんつくるのが嫌なので、 パラメータクエリにしたいのですが、、、 例えば、 日別売上クエリ: Parameters pDate datetime; を持つ (VBAから直接呼ぶのはこれだけ) このクエリは、以下の2つのJoinからなる 日別レジ別売上クエリ: 下位クエリで、Parameters pDate datetime; を持つ (客数を得るクエリ) 日別部門別売上クエリ: 下位クエリで、Parameters pDate datetime; を持つ (金額を得るクエリ) 共に、Where を日付=pDateとしてます。 そうしておいて、VBAから set rs1=DB1.Openrecordset(”Select 、、、、From 日別売上クエリ(#” & strDate & ”#) ”) とやったのですが、ダメでした。 パラメータクエリを他のクエリから呼ぶ構文をお教え下さい。 尚、「パラメータクエリをクエリから呼」や「パラメータクエリをSQLから呼」でGoogleったのですが、 見つかりませんでした。 VBAで選択クエリを実行したらデータシートが表示されてしまう。 お世話になってます。 VBA初心者なのですが・・・。 Accessで選択クエリを作成してVBAモジュール内で その選択クエリを呼び出したところ、選択クエリの実行結果 (データシート?)が表示されてしまうのですが、 それを表示したくないのですが、何か方法はあるのでしょうか? 調べているのですがいまひとつ、調べ方がよく分からず ここで質問させて頂きました。 よろしくお願い致します。 VBA関数について 添付画像左側のデータベースから添付画像右側のように検索結果をVBAで求めたいのですが、なかなか上手くいきません。 回答よろしくお願いします。
お礼
自己解決しました。 「MySQL ODBC 5.2 ANSI Driver」を「MySQL ODBC 5.2 Unicode Driver」に変えたところ、問題が解消されました。 ありがとうございました。
補足
kamikami30様 見てくれてありがとうございます。 実はいろいろ試しましたが、うまく行きませんでした。 試したことは: (1)ADODB.Streamでクエリー自体をUTF8に変換したり、クエリー結果をUnicodeに変換したり試しました。 (2)"SET NAMES = Unicode"を投げたり見ました (3)DB接続文字列に"CHARSET = Unicode;"とか追加して見ました。 どれもうまく行きませんでしたので、ここで質問出しましたわけです。