Access始めたばかりの初心者です。
現在Oracle10gのデータベースのとあるテーブルを
をAccess2000でリンクし、クエリで抽出したものをレポートに表示
しようとしています。
そのテーブル上に、
Oracle上ではVARCHAR2(6バイト)の日付データがあります。
例) 200806
これをAccessのクエリ上で変換し、 "6月" と表示させたいのですが、
なぜかうまくいきません。
Oracle上の項目名が YM だとすると、
Replace(Right([YM], 2), "0", "") & "月"
こういった関数でうまくいきそうなものですが・・
もしかしてOracleのVARCHAR2はリンクすると文字列型以外の型として
扱われるのでしょうか・・
どなたかご存じの方、ご教授くださいませ。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
access2000ではクエリのSQLで直接replace関数を使えなかった気がします。
MDBのモジュールで
Public Function myreplace(source, str1, str2)
myreplace = Replace(source, str1, str2)
End Function
という関数を定義して
myeplace(Right([YM], 2), "0", "") & "月"
でやってみてください。
この回答への補足
ご回答ありがとうございます!
>access2000ではクエリのSQLで直接replace関数を使えなかった気がします。
そ、そんな仕様があるのですね。。
了解しました。
ちょっとやってみます。
No.2
- 回答日時:
VARCHAR2は文字型です。
テーブルをデザイン・ビューで見てください。>なぜかうまくいきません。
何がどう上手くいかないのでしょう?
(1)クエリの実行時エラー
ア.Oracleのエラー
イ.Accessのエラー
(2)実行されるが、結果が期待したものと異なる。
ア.どのように異なっているか
これによって原因が分かるかも知れません。
すいません、
要は「何がわかっていないかわかっていない」
という超初心者状態です。。
ええと
(1)オラクルのリンクテーブルを作成(仮にTBLという名前にする)
(2) TBL からデータを抽出するクエリを作成
(3) クエリの結果をレポートで表示
その際、200806 を6月と表記したいため、
レポートにはりついているエディットボックス?
のようなものの中に関数を・・
それが
Replace(Right([YM], 2), "0", "") & "月"
です。実行するとその領域が #Error となります。
そうとうイライラされるかと思いますがご容赦ください。。
No.3
- 回答日時:
Oracle11gとAccess2000で試しました。
(1)オラクルデータ型
SQL> desc xxx
名前 NULL? 型
------ ------ ------------------------------------
XXX VARCHAR2(6)
(2)Accessリンクテーブル
XXX テキスト型
(3)SQLの実行結果
SELECT Replace(Right([xxx], 2), "0", "") & "月"
FROM SCOTT_XXX;
6月
提示されたSQLは通りましたよ。
上手くいかないとは、どういう事象が発生しているのでしょうか。
この回答への補足
自己解決致しました!
どうやらフォームのコントロール識別名とクエリの項目名
が同じだと、表示がうまくいかないようです。
テキストボックス名 :YM
クエリの項目名 :YM
↓
テキストボックス名 :日付
クエリの項目名 :YM
これでなんとかうまくいきました。
いろいろとお知恵を貸してくださいましてありがとうございました。
なるほど、SQLを発行して試すという手がありますね。。
とりあえずSQLをスマートに発行する方法が
よくわからなかったのでフォームをひとつ作り、
そこからボタンを押下した時のコールバック関数の中で
上記SQLを発行させてみたところ、
問題ありませんでした。
とすると表示上のエラーかなにかだと思います。
事象はQ2の方の返答で説明させていただきました。
分かりづらくてもうしわけございません。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Oracle sql(oracle)で質問です。 テーブルAのカラム名、日付(yyyymmdd)の値を テーブルB 2 2023/01/06 10:31
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- SQL Server SQL Oracle serverにって質問です。 会社テーブルがあり、そのテーブルから 社員名、給 4 2022/05/21 12:22
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Access(アクセス) Accessのリンクテーブルのパスを相対パスにする方法について教えて頂きたいです 1 2023/02/08 13:29
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- Access(アクセス) Accessクエリで年月フィールドを年のみで抽出する方法について 2 2022/08/29 18:10
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
batファイルでのSQL(oracle)...
-
SQLについて教えて下さい。 主...
-
sqlで質問です。 idを元にidに...
-
orace SQL文のエラー(ORA-0092...
-
Oracleでの登録するユーザーと...
-
Oracle SQRの正式名称は何ですか?
-
select for updateのロック
-
sqlで質問です。 Aテーブルは店...
-
質問です。 下記のテーブルとデ...
-
sqlで質問です。 Aテーブルの登...
-
sqlで質問です。 Aテーブルの情...
-
オラクルゴールドについて
-
ビットで表せる数値について
-
update文で質問です。 下記の条...
-
SQL update方法
-
テーブルやカラムの物理名のネ...
-
SQLで日付+時間で絞り込みたい
-
' シングルクォート " ダブルク...
-
続.ORACLEのSELECTのソートに...
-
子供向けプログラミングのスク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
不明なコマンドです("FROM")。...
-
Access2010 「演算子がありませ...
-
Access2007 DoCmd.ApplyFilter...
-
漢字名のテーブルとカラムのCRE...
-
スナップショット取得について...
-
AccessからOracleへのリンクテ...
-
【ExcelVBA】sheet作成時にマク...
-
オペランドが足りませんとコメ...
-
エクセル/マクロ Exit Subが実...
-
Excel2010でふりがなが漢字にな...
-
エクセルの文字間スペースを入...
-
VBA シートの切り替えができな...
-
pythonでrequestsが使えない
-
mfc42.dllファイルってなんです...
-
マクロ実行ボタンがコピー出来ない
-
VBAでシートコピー後、シート名...
-
貼り付けをマクロで禁止させたい。
-
WordPressをインストールしてい...
-
(int)キャストとintvalの違い
-
AUTOCAD 2010でdwlファイルの場...
おすすめ情報