はじめての親子ハイキングに挑戦!! >>

会社で使っているAccessシステムについての質問です。
OSはWindows7、Officeのバージョンは2007です。

困っている現象は、とあるクエリを通すと抽出結果が文字化けされてしまうフィールドがあるということです。
このクエリをレコードソースとするレポートも同じように文字化けしています。
大元データのテーブルでは普通に見れています。

このシステムはテーブルはテーブルのみ1つのAccessにまとめられてネットワーク上に保存されており、ユーザーは各自自分のPCにテーブルにリンクされている操作用Accessファイルを持っていて操作を行っています。
大分前にも同じ現象が出たことがあったのですが翌日には直っておりその後も問題がなかったのでそのまま使っていましたが今日になってまたこのような現象が出ました。

説明が下手で恐縮ですがこれらのことから何かお分かりになることがありましたらお知恵をお貸しください。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

大元のテーブルに変更を加えられたのではないですか



文字化けの内容を説明してください
・判読不明ですか
・各レコードの文字化け結果は異なっていますか

この回答への補足

目を留めて頂きありがとうございます。
各レコードの文字化け結果は以下の様に漢字1文字ずつ表示されます。
 蜁
 蜂
 蜃
 蘄
 蘀
大元のデータ内容「備考」として使われているものでデータ型はメモ型です。

補足日時:2013/11/26 09:24
    • good
    • 0
この回答へのお礼

テーブルのデータ型をテキスト型に変更したらちゃんと表示されるようになりました。
255文字までしか入力出来なくはなりますがとりあえずこれでしばらくやっていこうと思います。
ありがとうございました。

お礼日時:2013/11/29 15:05

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QACCESSにCSVインポート時の文字化け

お世話になります。
あるCSVデータをアクセスの外部データの取り込み作業をする際、
例えば
レ003005 は Ś003005
レ003002 は ±003002
カ025002 は ¶025002
の様に文字化けをおこします。
なぜこのような文字化けが起こるのか、また対処法がおわかりの方、よろしくお願いします。
なおACCESS2000を使用しています。

Aベストアンサー

souta_nさん、こんにちは。

テキストインポートウィザードの最初の画面で、
左下に「設定」ボタンがないですか?

ここをクリックすると、
文字コードを設定できる画面に入れますので、
ここで適当な文字コードに設定してやってください。
(ShiftJISとかUnicodeとか。)

文字コードがわからないときは、
手当たり次第にやってみると、文字化けしないものが見つかると思います。

QACCESS IIF関数 複数条件の設定について

 選択クエリにおいて、あるフィールド「 X」 のレコード数値が
 
  0<[X]<=50   であれば A 
  50<[X]<=100  であれば B 
  100<[X]<=150  であれば C

 と表記させるフィールド「Y」を追加したいと考えています。
 この場合、Yのフィールド設定で指定する数式についてご教授願います。

 一応、
  IIf(0<[X]<=50,"A","") Or IIf(50<[X]<=100,"B","") Or IIf(100<[X]<=150,"C","")

  としましたが、実行すると、Yの列がすべて「-1」と表記されてしまいます。

 何卒よろしくお願いいたします。

Aベストアンサー

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A", [X]<=100, "B", [X]<=150, "C", True, "")


なお、数学あるいは一般生活では確かに「0<[X]<=50」という表記をしますが、
Accessの関数などではこれだと正しい結果が得られません。
正しく認識させるためには、等号・不等号を挟んだ式は、「左辺」と「右辺」の
2つの要素からなる形にする必要があります。
(「0<[X]<=50」は「[X]>0 And [X]>=50」と分割してやる、と)

但し、今回のご質問のような『連続した範囲』であれば、前(左)で既出となる
式の要素で「[X]<=0」が「真(=-1)」とならなかった時点で、「[X]>0」が保証
されますので、上記のように、「[X]>0」を省略して「[X]<=50」だけを条件として
指定すればOk、ということになります。
(「0<[X]<=50」の次が「80<[X]<120」などのように、「50~80」が欠けた
 場合は、省略ができない、と)


【参考】
「0<[X]<=50」は、このままだと「0 < ([X]<=50)」という式と解釈されます。
この場合、「[X]<=50」は、「真(=-1)」か「偽(=0)」か「Null」のいずれかに
なります。
何にせよ、「0<[X]<=50」全体として「正(=-1)」となることがないため、
ご質問の式では、IIF関数は常に第3引数に指定された値「""」を返す
ことになります。

この結果、式全体としては「"" Or "" Or ""」という形となり、「0かNull」
以外なので、「真(=-1)」という値が返された、ということです。

なお、Nullについては、以前、他の方の質問につけた回答も、併せて参考までに:
http://oshiete.goo.ne.jp/qa/4850675.html

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A"...続きを読む

QACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ

ACCESSで空白のデーターをクエリで判定/識別する方法を教えてください。
EXCELでは空白を""で判定/識別表していますがACCESSではどうなるのでしょうか。

下の例はフィールドに試験番号があればその番号を、空白なら”欠席”と表示しようとしています。
IIf(([試験番号]="空白の場合何を入れる?"),[試験番号],"欠席")

Aベストアンサー

もうひとつの書き方は
式1: IIf([試験番号] Is Not Null,[試験番号],"欠席")
第2、第3引数の、質問の順序にあわせるとこうなる。

QAccessのマクロでモジュールを実行させたい。

Access2002を勉強中の初心者です。

AccessでDB1という名前のデータベースを作成し、その中で、モジュール1というモジュールを作成しました。これを実行するマクロを作成したく、次のようにマクロを作成しました。
マクロのデザイン画面でアクションに「プロージャの実行」を選択、プロージャ名入力覧の右側の...のボタンを押して式ビルダ画面を表示、ここの「関数」フォルダを開いてDB1を選択、表示されたモジュール1を貼り付けてOK。
しかし、このマクロを実行すると、次のエラーとなります。「DB1 指定されたDB1が見つけることができない関数名が含まれています」

根本的に方法が間違っているのでしょうか?
アドバイスをよろしくお願いします。

Aベストアンサー

#1です。

ちょっと時間ができたので、Accessのヘルプで、
 "RunCode/プロシージャの実行" アクション
についてのトピックを見てみました。

結論から言うと、基本的な考え方が間違っているみたいです^^;。

「プロシージャの実行」アクションでは、「Function」プロシージャを指定するようです。
Subプロシージャではエラーになります。


つまりご質問の件では、
「Subプロシージャを呼び出すFnctionプロシージャ」をまず書かなけれえばならない。
そして、マクロのアクションでは、あらためてこのFunctionプロシージャを指定しなければいけません。

QAccessのRefresh・Requery・Repaintの違い

Requeryはもう一度ソースレコード(テーブル)を読み込むようです。このとき、テーブルの先頭レコードに移動してしまいます。
Refreshは最新のレコード(テーブル)を再表示するような気がします。レコードの移動は起こらない気がします。
Repaintは、VBAでキャプションなどを変更したとき使っています。
でも、よくわかっていません。
どんなときにどんなメソッドを使えばいいのでしょうか?
詳しい方、よろしくお願いいたします。

Aベストアンサー

たびたびすみません。
調べてたらこんなのがでてきました。
http://www.nurs.or.jp/~ppoy/access/access/acF007.html

参考URL:http://www.nurs.or.jp/~ppoy/access/access/acF007.html

QOfficeアクセス テーブル「テキスト型」⇒「日付型」への変換について

テーブルにデータが保管されており、そのフィールドの一つに「テキスト型」で”20080301”のようなデータを持っています。これを「日付/時刻型」”2008/03/01”のように変換したいのですが、どのようにすればよいのでしょうか。

※ちなみにこのオリジナルデータは毎日、自動的にテーブルにダウンロードされており、このテーブル自体の型を予め「日付/時刻型」に変換すると、日々のデータ取得時にエラーとなってしまいます。ですので、「日付/時刻型」のフィールドを持った新規のテーブルに、この”20080301”のデータを変換し格納したいのですがどのようにすればよろしいでしょうか。

テーブル⇒デザインより、該当のフィールドの型を「テキスト型」⇒「日付/時刻型」へ直接変換してしまうと、「データの変換中にエラーが発生しました。○○件のレコードのデータが失われました。」と表示されます。素人のため、なるべく追加クエリや更新クエリや簡単な関数のみでの方法を教えていただけたら幸いです。

Aベストアンサー

テーブルに日付時刻型フィールドを追加して、
更新クエリを使って、#1さんが提案されている
数式を使えばよいのでは?

QUTF8のテーブルをODBCドライバ経由のMS Accessから開くと日本語が文字化けする

IIS5.1
MySQL 5.0.24a
PHP 5.2.2
phpMyAdmin 3.0.0

文字コードを全てUTF8に統一したよる簡単な会員管理DBの作り方を勉強しています。

このページを参考に、http://www.tryhp.net/ODBCMySQL.htm
ODBCドライバ(mysql-connector-odbc-3.51.27-win32.msi)をインストールし、
MS Access 2003で開いたところ、テーブルへのリンクはうまくいくのですが
日本語部分が文字化けしてしまいます。

テーブルをExcelに落としてリンクさせれば化けないのですけど、何か設定ミスを
してますでしょうか。

コントロールパネル→管理ツール→データソース(ODBC)→システムDSNタブ
→構成ボタン→Connect Optionsタブ→Chatacter Setは、UTF8にしてあります。

Aベストアンサー

Initial Statement に「set names cp932」をセットするとどうなりますか。

QACCESS 重複データを1つだけ表示したい(初心者です)

ACCESSで複数のフィールドに全く同じレコードが複数存在します
(例)
フィールド1  フィールド2  フィールド3
愛知      田中      12
愛知      田中      12
愛知      田中      12
三重      山本      23
三重      山本      23
岐阜      鈴木      33
岐阜      鈴木      33

もともと他のデーターベースからCSVで落としたものをインポートしているので、データの存在自体はどうしようもありませんが、これらの重複しているデータを1件だけ表示したいのです。つまり
(例)
フィールド1  フィールド2  フィールド3
愛知      田中      12
三重      山本      23
岐阜      鈴木      33

どのようにすればよいでしょうか。

Aベストアンサー

クエリにて[固有のレコード]プロパティーを[はい]にします

QAccessのクエリで、Left関数を使用して、7桁の数値を抜き出す方

Accessのクエリで、Left関数を使用して、7桁の数値を抜き出す方法。
IDが8桁で入力されているのですが、左から7桁だけを抜き出して、全てのレコードを表示させたかったのですが、誤って入力されている7桁のIDしか表示されませんでした。
いつもExcelを使用している感覚だったので、文字の左から7桁の数値や文字列を抽出して表示してくれるものと思っていました。
元のテーブルに入力されているIDを変更することなく、
クエリで、7桁だけにして、その取り出した7桁で区別し、グループとして認識し合計を出したいと考えているのですが、どうすればよいのでしょうか。
宜しくお願い致します。

Aベストアンサー

>Left関数をする前は、5000行程なのですが、関数を加えたとたん4300程度に減ってしまいます。

関数を加えるのでは無く、関数だけ(演算フィールドのみ)のクエリを作成をして実行させます
単にleft関数で左から何文字取れという演算フィールドしか持たないクエリを実効させれば、指定した桁数に満たない場合には実際にある桁数まで、一文字も入っていない場合には0を返して、全データ分のクエリ結果を返します

全件分のデータが帰って来ないという事は作成しているクエリに問題ありの可能性高いです

先の書き込みに書きましたが、手順は演算フィールドのみのクエリを作成し実行させ全データが取得出来る事を確認してから、この演算フィールドのみのクエリに必用なフィールドを追加してゆくって事してください

QACCESSでクエリで選択した行番号をつけたい

選択結果に1~順に番号をつけたいのですが、過去ログを見ると 番号: DCount("*","データ","[NO]<=" & [NO])とすればいいと書かれてありました。これはNOが昇順になっている場合にしか1~順になりません。
NOはユニークですが、他のフィールドで昇順にしたい場合はどうすればいいのですか?
例)
NO フリガナ
312 タナカ
322 イトウ
333 マツダ
・・・・
番号 フリガナ(昇順)
2 イトウ
1 タナカ
3 マツダ
となってしまうのです。
ACCESS2002

どうぞよろしくお願いします。

Aベストアンサー

 ん~多分、

番号: DCount("*","テーブル名","[フリガナ]&[NO]<='" & [フリガナ] & [NO] & "'")

でいけると思いますが、だめだったら、

番号: DCount("*","テーブル名","[フリガナ]<'" & [フリガナ] & "' OR ([フリガナ]='" & [フリガナ] & "' AND [NO] <= " & [NO] & ")")

かな?


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング