Accessのパラメータクエリがうまく動かなくて困ってます。
実はODBC経由でリンクテーブルを作っておりまして、そこからパラメータクエリで抽出を試みたのですが、パラメータは聞いてきますが抽出できません。
選択クエリ状態で直接抽出条件を入れてやれば何の問題もなく通常のテーブルと同様に抽出できるのですが、パラメータクエリにする、または同じ事ですが他のフォームのコントロールを参照させる状態ですと、エラーも出ずにノンデータとなります。
これって何故なんでしょうか?対処方法はありますか?
ちなみにリンク元のテーブルはオラクルですがデータ型とかが関係あるのでしょうか?

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

とは オラクル」に関するQ&A: オラクルとは?

A 回答 (1件)

抽出するデータ型は何ですか?


日付型じゃないですか?

おそらく、それがPointだと思います。

この回答への補足

やっぱりデータ型が怪しいですかね。
でも抽出するデータ型はテキスト型なんです。
選択クエリ状態だとちゃんと抽出するというのも理解できません。
なぜなんでしょう??

補足日時:2001/08/30 17:41
    • good
    • 0

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

関連するカテゴリからQ&Aを探す

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

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

QAccessからOrcleのODBCリンクテーブルへの挿入

OS:XPpro
Access:97,2000
Oracle:7

AccessからOracleのODBCリンクテーブルに対して追加クエリを実行すると、
ODBC--リンクテーブル'テーブル名'への挿入に失敗しました。
[Oracle][ODBC Oracle Driver][Oracle OCI]ORA-01461:
can bind a LONG value only for insert into a LONG column.(#1461)
というエラーが発生します。

メモ型のフィールド'A'をvarchar2(4000)のフィールド'B'に追加する部分で、LeftB(A,4000)としている部分がうまく行かないようようなので、LeftB(A,3000)と丸めてあげると通ります。

質問を纏めますと、
1.varchar2(4000)となっていても、4000Byteのデータを挿入することはできないのでしょうか。
2.発生しているエラーは、私の考えとは別の問題なのでしょうか。

ご回答よろしくお願いします。

Aベストアンサー

LeftB 関数などは、正しい値を返しません。

http://okweb.jp/kotaeru.php3?q=1450574
こちらに回答しています。

Qサイベースには、オラクルのROWNUMと同様のカラムはないのでしょうか?

No.352155で質問をしたものです。
タイトルの通りのことを探しています。
(No.352155を読んで頂けると総合的にやりたいことがわかってもらえると思います)ROWの並び替えをしたいのですが、そのためROWの番号を取得したいのですが、何かオラクルのようにROWNUMのような便利なものはないでしょうか?
もしくは、ROWの番号を割り振りたいのですが、どのようにしたらできますでしょうか?

Aベストアンサー

ここらあたり、参考になるかも:

“6.2.12: Selecting rows N to M without Oracle's rownum?”

参考URL:http://www.faqs.org/faqs/databases/sybase-faq/part14/

Qパラメータクエリで抽出がうまくいきません。

選択クエリにて、ある日付から今日までの日付をdateiff関数で求め、
それを、DateDiff("m",[最終交換日],Date())という形で、何ヶ月経ったか表示しています。
そこまでは問題なかったのですが、
このクエリをパラメータで条件指定させようとするとうまくいきません。

たとえば、選択クエリのデザインビューで、抽出条件に、>=9、と直接入力すると、
9ヶ月以上のレコードを抽出するのですが、
>=[何ヶ月以上経ったものを探しますか?]と入力し、
パラメータ入力のウィンドウで9を入力すると、抽出されません。
どの数値を入力しても、直接入力ではうまくいくのですが、
パラメータウィンドウから入力するとダメのようです。

いろいろ参考になりそうサイト等見てはみましたが、
原因となりそうなものを見つけることができませんでした。
これが原因では?と、お分かりになる方、
是非教えていただきたく思い、質問いたしました。
よろしくお願いいたします。

Aベストアンサー

[何ヶ月以上経ったものを探しますか?]
の部分が文字型として扱われてしまっているみたいですね。( 文字型で比較すると "10" < "9" なので、9 を入力しても 10 ヶ月のレコードは表示されない。)

>= CInt([何ヶ月以上経ったものを探しますか?]

のようにするとうまくいくようです。

Q複数のテーブルから複数条件で新規テーブルへ抽出するには?

こんにちわ。

Windows2000、Access2000という環境下で、
住所録の統合をしようとしています。

簡単な構成は、前任者が、グループ関連会社別に住所録のmdbを作っており、各テーブルのフィールドで主要なものは、「通し番号(各mdbごと)」「氏名」「会社名」「住所」です。

ここで、最終的にテーブルを一つにまとめれば完了としたいところなのですが、
2002年夏の時点での住所録A.mdb
2003年冬の時点での住所録B.mdb
2003年春の時点での住所録C.mdb
とあり、それぞれにBの時点での新規入力・(住所等の)更新、Cの時点での新規入力・更新があるのです。
BはAを元に作られており、CはBを元に作られています。
ダブっている部分があるのです。

そこで、AとBを比較してAの中で「氏名」、「会社名」が同じもの以外と、Bのデータを新しいDBのテーブルへ、
新しくできたDBのテーブルとCのテーブルとを比較して、「氏名」「会社名」が同じものは、既存のレコードを消去してCのデータを追加するということをやりたいのです。
つまり、BやCでの更新・新規入力をうまく反映させた形の住所録にしたいのです。
Access自体の使い方に不慣れなもので、この作業がAccessのクエリ等の組み合わせでできるのか、それともSQLやVBAを駆使しないと無理なのかの判断もつきません。

どなたか参考になりそうな操作やSiteを知っていましたら、
教えてください。
よろしくお願いします。

こんにちわ。

Windows2000、Access2000という環境下で、
住所録の統合をしようとしています。

簡単な構成は、前任者が、グループ関連会社別に住所録のmdbを作っており、各テーブルのフィールドで主要なものは、「通し番号(各mdbごと)」「氏名」「会社名」「住所」です。

ここで、最終的にテーブルを一つにまとめれば完了としたいところなのですが、
2002年夏の時点での住所録A.mdb
2003年冬の時点での住所録B.mdb
2003年春の時点での住所録C.mdb
とあり、それぞれにBの時点での新規入力・(住所等...続きを読む

Aベストアンサー

その3つのテーブルはフィールド構造は一緒でしょうか?
一緒ならUNIONクエリーを作成したら良いのではないでしょうか。

例えばテーブルA、B、Cがあって、いずれも名前、住所というフィールドがあるとしたら
=操作方法=
1.クエリーをデザインビューで新規作成します。
2.テーブルの表示は、なにも選択せず閉じます。
3.画面左上のファイルメニューの下にSQLというボタンが出来ているはずです。
4.クリックするとSQLウインドが表示されます。SELECT;のみが表示されていると思います。
5.下記のようなSQL文を入力します。
===============================
SELECT A.名前,A.住所
FROM A
UNION SELECT B.名前,B.住所
FROM B
UNION SELECT C.名前,C.住所
FROM C;
===============================
重複データを省く述語DISTINCTを使用しなくても、おそらく重複データがある場合自動的に併合されると思います。
されなければHELPでDISTINCTの使い方を調べてSQL文を書き換えて見てください。

その3つのテーブルはフィールド構造は一緒でしょうか?
一緒ならUNIONクエリーを作成したら良いのではないでしょうか。

例えばテーブルA、B、Cがあって、いずれも名前、住所というフィールドがあるとしたら
=操作方法=
1.クエリーをデザインビューで新規作成します。
2.テーブルの表示は、なにも選択せず閉じます。
3.画面左上のファイルメニューの下にSQLというボタンが出来ているはずです。
4.クリックするとSQLウインドが表示されます。SELECT;のみが表示されていると思います。
5...続きを読む

QAccessから主キーの無いOracleテーブルにVBAで主キー設定付のODBC接続するには

Oracle7--------------- Access97
Workgroup Server
Release 7.3.2.2.1

TABLE_A----------------ODBC接続(リンクテーブル)    
項目1
項目2
項目3
項目4

項目1~項目4は
空白レコードがあり
主KEYが張れない

********************************************************************
主キーの作成出来ないオラクルテーブルがあります。

Access97からODBC接続を作成する時は

(1)マニュアルであれば
  対象テーブルに主キーが無ければ
任意の10項目を仮の主キーとして設定出来ますが

(2)VBA(自動?)で リンク張ると

Dim tab01 As TableDef
 Dim db01 As Database
 Dim strTABname As String

strTABname = TABLE名
Set db01 = CurrentDb
Set tab01 = db01.CreateTableDef(UserName & "_" & strTABname, dbAttachSavePWD)
tab01.SourceTableName = UserName & "." & strTABname
tab01.CONNECT = "ODBC;DSN=****;UID=" & UserName & ";PWD=" & Password & ";ConnectString=con;"
db01.TableDefs.Append tab01

主キー設定の無いODBC接続が出来て
  データの更新などが出来なくなります。

VBAでも仮の主キー設定付きのODBC接続は
 出来ないでしょうか?

Oracle7--------------- Access97
Workgroup Server
Release 7.3.2.2.1

TABLE_A----------------ODBC接続(リンクテーブル)    
項目1
項目2
項目3
項目4

項目1~項目4は
空白レコードがあり
主KEYが張れない

********************************************************************
主キーの作成出来ないオラクルテーブルがあります。

Access97からODBC接続を作成する時は

(1)マニュアルであれば
  対象テーブルに主キーが無ければ
任...続きを読む

Aベストアンサー

手元にACC97は無いのですが、擬似インデックスを作成すれば可能だったはず。

作成方法は通常のINDEX作成と変わりはありません。

db01.Execute "CREATE INDEX ・・・・;"


人気Q&Aランキング

おすすめ情報